From 63e8f2c5f682f98613f418ad4ca1973020fd5cd8 Mon Sep 17 00:00:00 2001 From: klemek Date: Fri, 18 Dec 2020 19:09:42 +0100 Subject: [PATCH] gate sub-categories --- Assets/Prefabs/Gates/NAND gate.prefab | 2 +- Assets/Prefabs/Gates/NOR gate.prefab | 2 +- Assets/Prefabs/Gates/NOT gate.prefab | 2 +- Assets/Prefabs/Gates/XNOR gate.prefab | 2 +- Assets/Prefabs/UI.meta | 8 + .../Base UI Button.prefab} | 100 ++++---- .../Base UI Button.prefab.meta} | 2 +- Assets/Prefabs/UI/Delete UI Button.prefab | 127 ++++++++++ .../Prefabs/UI/Delete UI Button.prefab.meta | 7 + Assets/Prefabs/UI/Folder UI Button.prefab | 127 ++++++++++ .../Prefabs/UI/Folder UI Button.prefab.meta | 7 + Assets/Prefabs/UI/Gate UI Button.prefab | 121 ++++++++++ Assets/Prefabs/UI/Gate UI Button.prefab.meta | 7 + Assets/SVG Assets/UI/arrow-left-circle.svg | 1 + .../SVG Assets/UI/arrow-left-circle.svg.meta | 55 +++++ Assets/SVG Assets/UI/delete-empty.svg.meta | 4 +- Assets/SVG Assets/UI/delete.svg.meta | 4 +- Assets/SVG Assets/UI/folder-open.svg | 1 + Assets/SVG Assets/UI/folder-open.svg.meta | 55 +++++ Assets/Scenes/Workspace.unity | 226 ++++++++---------- Assets/Scripts/UI/UIDelete.cs | 41 ++-- Assets/Scripts/UI/UIFolder.cs | 56 +++++ Assets/Scripts/UI/UIFolder.cs.meta | 11 + Assets/Scripts/UI/UIGate.cs | 53 ++-- Assets/Scripts/UI/UIManager.cs | 112 +++++++-- Assets/Scripts/UI/UIToolbarButton.cs | 78 ++++++ Assets/Scripts/UI/UIToolbarButton.cs.meta | 11 + .../Scripts/Workspace/Gates/GateDefinition.cs | 15 +- Assets/Scripts/Workspace/Gates/GateType.cs | 19 +- TODO.txt | 1 - 30 files changed, 999 insertions(+), 258 deletions(-) create mode 100755 Assets/Prefabs/UI.meta rename Assets/Prefabs/{UI Gate.prefab => UI/Base UI Button.prefab} (82%) rename Assets/Prefabs/{UI Gate.prefab.meta => UI/Base UI Button.prefab.meta} (74%) create mode 100755 Assets/Prefabs/UI/Delete UI Button.prefab create mode 100755 Assets/Prefabs/UI/Delete UI Button.prefab.meta create mode 100755 Assets/Prefabs/UI/Folder UI Button.prefab create mode 100755 Assets/Prefabs/UI/Folder UI Button.prefab.meta create mode 100755 Assets/Prefabs/UI/Gate UI Button.prefab create mode 100755 Assets/Prefabs/UI/Gate UI Button.prefab.meta create mode 100755 Assets/SVG Assets/UI/arrow-left-circle.svg create mode 100755 Assets/SVG Assets/UI/arrow-left-circle.svg.meta create mode 100755 Assets/SVG Assets/UI/folder-open.svg create mode 100755 Assets/SVG Assets/UI/folder-open.svg.meta create mode 100755 Assets/Scripts/UI/UIFolder.cs create mode 100755 Assets/Scripts/UI/UIFolder.cs.meta create mode 100755 Assets/Scripts/UI/UIToolbarButton.cs create mode 100755 Assets/Scripts/UI/UIToolbarButton.cs.meta diff --git a/Assets/Prefabs/Gates/NAND gate.prefab b/Assets/Prefabs/Gates/NAND gate.prefab index 90a119c..fd56d3b 100755 --- a/Assets/Prefabs/Gates/NAND gate.prefab +++ b/Assets/Prefabs/Gates/NAND gate.prefab @@ -122,7 +122,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2637797866570093762, guid: e13798a14679ee74fa71d11caea77e78, type: 3} propertyPath: GateType - value: 310 + value: 250 objectReference: {fileID: 0} - target: {fileID: 4542802031506979094, guid: e13798a14679ee74fa71d11caea77e78, type: 3} propertyPath: m_SpriteTilingProperty.pivot.y diff --git a/Assets/Prefabs/Gates/NOR gate.prefab b/Assets/Prefabs/Gates/NOR gate.prefab index 8caa71d..78fca7d 100755 --- a/Assets/Prefabs/Gates/NOR gate.prefab +++ b/Assets/Prefabs/Gates/NOR gate.prefab @@ -191,7 +191,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2637797866570093762, guid: e13798a14679ee74fa71d11caea77e78, type: 3} propertyPath: GateType - value: 320 + value: 260 objectReference: {fileID: 0} - target: {fileID: 4542802031506979094, guid: e13798a14679ee74fa71d11caea77e78, type: 3} propertyPath: m_SpriteTilingProperty.pivot.y diff --git a/Assets/Prefabs/Gates/NOT gate.prefab b/Assets/Prefabs/Gates/NOT gate.prefab index 8ac02a1..30efcd9 100755 --- a/Assets/Prefabs/Gates/NOT gate.prefab +++ b/Assets/Prefabs/Gates/NOT gate.prefab @@ -207,7 +207,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2637797866570093762, guid: e13798a14679ee74fa71d11caea77e78, type: 3} propertyPath: GateType - value: 300 + value: 240 objectReference: {fileID: 0} - target: {fileID: 4542802031506979094, guid: e13798a14679ee74fa71d11caea77e78, type: 3} propertyPath: m_SpriteTilingProperty.pivot.y diff --git a/Assets/Prefabs/Gates/XNOR gate.prefab b/Assets/Prefabs/Gates/XNOR gate.prefab index 44b08a0..8e9dc3b 100755 --- a/Assets/Prefabs/Gates/XNOR gate.prefab +++ b/Assets/Prefabs/Gates/XNOR gate.prefab @@ -65,7 +65,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2637797866570093762, guid: e13798a14679ee74fa71d11caea77e78, type: 3} propertyPath: GateType - value: 330 + value: 270 objectReference: {fileID: 0} - target: {fileID: 4542802031506979094, guid: e13798a14679ee74fa71d11caea77e78, type: 3} propertyPath: m_Points.m_Paths.Array.size diff --git a/Assets/Prefabs/UI.meta b/Assets/Prefabs/UI.meta new file mode 100755 index 0000000..641a762 --- /dev/null +++ b/Assets/Prefabs/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8cf844d26c3d61944aacb01171e796b5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI Gate.prefab b/Assets/Prefabs/UI/Base UI Button.prefab similarity index 82% rename from Assets/Prefabs/UI Gate.prefab rename to Assets/Prefabs/UI/Base UI Button.prefab index 52d35c8..d60ad04 100755 --- a/Assets/Prefabs/UI Gate.prefab +++ b/Assets/Prefabs/UI/Base UI Button.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &6825649466500466189 +--- !u!1 &6078285856315254244 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,9 +8,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 9084398533040904477} - - component: {fileID: 5994250396071637877} - - component: {fileID: 8834685220061619091} + - component: {fileID: 8426719354704394996} + - component: {fileID: 6470588784042037404} + - component: {fileID: 8104482241897382010} m_Layer: 5 m_Name: Text (TMP) m_TagString: Untagged @@ -18,18 +18,18 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &9084398533040904477 +--- !u!224 &8426719354704394996 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6825649466500466189} + m_GameObject: {fileID: 6078285856315254244} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] - m_Father: {fileID: 5054996421416600339} + m_Father: {fileID: 5531837307679908090} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -37,21 +37,21 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5994250396071637877 +--- !u!222 &6470588784042037404 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6825649466500466189} + m_GameObject: {fileID: 6078285856315254244} m_CullTransparentMesh: 0 ---- !u!114 &8834685220061619091 +--- !u!114 &8104482241897382010 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6825649466500466189} + m_GameObject: {fileID: 6078285856315254244} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} @@ -65,7 +65,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: ERR + m_text: m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -134,7 +134,7 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &7367961467617278756 +--- !u!1 &7828308541579204813 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -142,9 +142,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1855025166475898400} - - component: {fileID: 3334121815938707092} - - component: {fileID: 7950865274633076520} + - component: {fileID: 1395450959556988361} + - component: {fileID: 2641030155237313917} + - component: {fileID: 7256663604883479745} m_Layer: 0 m_Name: SVG Image m_TagString: Untagged @@ -152,18 +152,18 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1855025166475898400 +--- !u!224 &1395450959556988361 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7367961467617278756} + m_GameObject: {fileID: 7828308541579204813} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] - m_Father: {fileID: 5054996421416600339} + m_Father: {fileID: 5531837307679908090} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} @@ -171,21 +171,21 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3334121815938707092 +--- !u!222 &2641030155237313917 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7367961467617278756} + m_GameObject: {fileID: 7828308541579204813} m_CullTransparentMesh: 0 ---- !u!114 &7950865274633076520 +--- !u!114 &7256663604883479745 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7367961467617278756} + m_GameObject: {fileID: 7828308541579204813} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: ef8b96895a0ec4ba685178a052544251, type: 3} @@ -201,7 +201,7 @@ MonoBehaviour: m_Calls: [] m_Sprite: {fileID: 0} m_PreserveAspect: 1 ---- !u!1 &8191254068802735817 +--- !u!1 &8885270990253075744 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -209,30 +209,30 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 5054996421416600339} - - component: {fileID: 8291313148610507964} - - component: {fileID: 8191254068802735818} - - component: {fileID: 6852081589597974490} + - component: {fileID: 5531837307679908090} + - component: {fileID: 8787461511135074133} + - component: {fileID: 6193723994601999411} + - component: {fileID: 7560111696290614717} m_Layer: 5 - m_Name: UI Gate + m_Name: Base UI Button m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &5054996421416600339 +--- !u!224 &5531837307679908090 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8191254068802735817} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_GameObject: {fileID: 8885270990253075744} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 1855025166475898400} - - {fileID: 9084398533040904477} + - {fileID: 1395450959556988361} + - {fileID: 8426719354704394996} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -241,33 +241,21 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0, y: 0.5} ---- !u!222 &8291313148610507964 +--- !u!222 &8787461511135074133 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8191254068802735817} + m_GameObject: {fileID: 8885270990253075744} m_CullTransparentMesh: 0 ---- !u!114 &8191254068802735818 +--- !u!114 &6193723994601999411 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8191254068802735817} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6a451c18bcd06994d8ac3b549cff313d, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &6852081589597974490 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8191254068802735817} + m_GameObject: {fileID: 8885270990253075744} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} @@ -304,3 +292,15 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!114 &7560111696290614717 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8885270990253075744} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3ba7b67ac81cbb241bf0184566a7d00b, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Prefabs/UI Gate.prefab.meta b/Assets/Prefabs/UI/Base UI Button.prefab.meta similarity index 74% rename from Assets/Prefabs/UI Gate.prefab.meta rename to Assets/Prefabs/UI/Base UI Button.prefab.meta index d059c6f..45eea5f 100755 --- a/Assets/Prefabs/UI Gate.prefab.meta +++ b/Assets/Prefabs/UI/Base UI Button.prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: eccdec2d2494caa4ba1b906d71a760f8 +guid: f7f0fe83d2fb22d44b7dc6efb019acae PrefabImporter: externalObjects: {} userData: diff --git a/Assets/Prefabs/UI/Delete UI Button.prefab b/Assets/Prefabs/UI/Delete UI Button.prefab new file mode 100755 index 0000000..0158b8e --- /dev/null +++ b/Assets/Prefabs/UI/Delete UI Button.prefab @@ -0,0 +1,127 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &4570013102799505419 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6003105996227115787} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 07b6ed78fbbf4124794530c3e8451329, type: 3} + m_Name: + m_EditorClassIdentifier: + closedImage: {fileID: 4171914137072684936, guid: ac6a92b2185049c489e96cdddf0efb50, type: 3} + openImage: {fileID: 1718401066980627502, guid: 2b0bec83cb4bdfa4082ea5a275e8ae55, type: 3} +--- !u!1001 &2882730349299521067 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6078285856315254244, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7256663604883479745, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 3286163911610860551, guid: ac6a92b2185049c489e96cdddf0efb50, type: 3} + - target: {fileID: 8885270990253075744, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_Name + value: Delete UI Button + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 7560111696290614717, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} +--- !u!1 &6003105996227115787 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8885270990253075744, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + m_PrefabInstance: {fileID: 2882730349299521067} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Prefabs/UI/Delete UI Button.prefab.meta b/Assets/Prefabs/UI/Delete UI Button.prefab.meta new file mode 100755 index 0000000..fba5623 --- /dev/null +++ b/Assets/Prefabs/UI/Delete UI Button.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 738997ae05f1eab49bdf5cfab58649b7 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Folder UI Button.prefab b/Assets/Prefabs/UI/Folder UI Button.prefab new file mode 100755 index 0000000..271accc --- /dev/null +++ b/Assets/Prefabs/UI/Folder UI Button.prefab @@ -0,0 +1,127 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &163791623525366651 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4408210007407408657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc88317bf8def394099cd222acc35347, type: 3} + m_Name: + m_EditorClassIdentifier: + folderImage: {fileID: -2096247744014415210, guid: fd65d4ae500ab124db6385ee24d0ee29, type: 3} + backImage: {fileID: 1066741472340853131, guid: fd715c8c2bc33bc4eb0a51a82bfc92d5, type: 3} +--- !u!1001 &5072118911353822001 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7256663604883479745, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 0} + - target: {fileID: 8104482241897382010, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_text + value: ERR + objectReference: {fileID: 0} + - target: {fileID: 8885270990253075744, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_Name + value: Folder UI Button + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 7560111696290614717, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} +--- !u!1 &4408210007407408657 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8885270990253075744, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + m_PrefabInstance: {fileID: 5072118911353822001} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Prefabs/UI/Folder UI Button.prefab.meta b/Assets/Prefabs/UI/Folder UI Button.prefab.meta new file mode 100755 index 0000000..523d58a --- /dev/null +++ b/Assets/Prefabs/UI/Folder UI Button.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0a772a64fe95a314da2ce2928e240044 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Gate UI Button.prefab b/Assets/Prefabs/UI/Gate UI Button.prefab new file mode 100755 index 0000000..cc30742 --- /dev/null +++ b/Assets/Prefabs/UI/Gate UI Button.prefab @@ -0,0 +1,121 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &4115614846617266998 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6073600482375203164} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6a451c18bcd06994d8ac3b549cff313d, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &3388696581242049660 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5531837307679908090, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8104482241897382010, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_text + value: ERR + objectReference: {fileID: 0} + - target: {fileID: 8885270990253075744, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + propertyPath: m_Name + value: Gate UI Button + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 7560111696290614717, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} +--- !u!1 &6073600482375203164 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8885270990253075744, guid: f7f0fe83d2fb22d44b7dc6efb019acae, type: 3} + m_PrefabInstance: {fileID: 3388696581242049660} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Prefabs/UI/Gate UI Button.prefab.meta b/Assets/Prefabs/UI/Gate UI Button.prefab.meta new file mode 100755 index 0000000..5213f12 --- /dev/null +++ b/Assets/Prefabs/UI/Gate UI Button.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 42484f6a6981d384b90ba0beb53c20e5 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SVG Assets/UI/arrow-left-circle.svg b/Assets/SVG Assets/UI/arrow-left-circle.svg new file mode 100755 index 0000000..812eaeb --- /dev/null +++ b/Assets/SVG Assets/UI/arrow-left-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/SVG Assets/UI/arrow-left-circle.svg.meta b/Assets/SVG Assets/UI/arrow-left-circle.svg.meta new file mode 100755 index 0000000..e75cf3d --- /dev/null +++ b/Assets/SVG Assets/UI/arrow-left-circle.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: fd715c8c2bc33bc4eb0a51a82bfc92d5 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3} + svgType: 4 + texturedSpriteMeshType: 0 + svgPixelsPerUnit: 100 + gradientResolution: 64 + alignment: 0 + customPivot: {x: 0, y: 0} + generatePhysicsShape: 0 + viewportOptions: 1 + preserveViewport: 0 + advancedMode: 0 + predefinedResolutionIndex: 0 + targetResolution: 2160 + resolutionMultiplier: 1 + stepDistance: 10 + samplingStepDistance: 100 + maxCordDeviationEnabled: 0 + maxCordDeviation: 1 + maxTangentAngleEnabled: 0 + maxTangentAngle: 5 + keepTextureAspectRatio: 1 + textureSize: 256 + textureWidth: 256 + textureHeight: 256 + wrapMode: 0 + filterMode: 1 + sampleCount: 4 + preserveSVGImageAspect: 1 + useSVGPixelsPerUnit: 0 + spriteData: + TessellationDetail: 0 + SpriteRect: + name: + originalName: + pivot: {x: 0, y: 0} + alignment: 0 + border: {x: 0, y: 0, z: 0, w: 0} + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + spriteID: 030d4e96554ed0b409c39d6d96a5acb6 + internalID: 0 + PhysicsOutlines: [] diff --git a/Assets/SVG Assets/UI/delete-empty.svg.meta b/Assets/SVG Assets/UI/delete-empty.svg.meta index db525f6..157f04f 100755 --- a/Assets/SVG Assets/UI/delete-empty.svg.meta +++ b/Assets/SVG Assets/UI/delete-empty.svg.meta @@ -18,8 +18,8 @@ ScriptedImporter: viewportOptions: 1 preserveViewport: 0 advancedMode: 0 - predefinedResolutionIndex: 1 - targetResolution: 1080 + predefinedResolutionIndex: 0 + targetResolution: 2160 resolutionMultiplier: 1 stepDistance: 10 samplingStepDistance: 100 diff --git a/Assets/SVG Assets/UI/delete.svg.meta b/Assets/SVG Assets/UI/delete.svg.meta index 834f319..cb4e8f9 100755 --- a/Assets/SVG Assets/UI/delete.svg.meta +++ b/Assets/SVG Assets/UI/delete.svg.meta @@ -18,8 +18,8 @@ ScriptedImporter: viewportOptions: 1 preserveViewport: 0 advancedMode: 0 - predefinedResolutionIndex: 1 - targetResolution: 1080 + predefinedResolutionIndex: 0 + targetResolution: 2160 resolutionMultiplier: 1 stepDistance: 10 samplingStepDistance: 100 diff --git a/Assets/SVG Assets/UI/folder-open.svg b/Assets/SVG Assets/UI/folder-open.svg new file mode 100755 index 0000000..615db17 --- /dev/null +++ b/Assets/SVG Assets/UI/folder-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/SVG Assets/UI/folder-open.svg.meta b/Assets/SVG Assets/UI/folder-open.svg.meta new file mode 100755 index 0000000..ba1e290 --- /dev/null +++ b/Assets/SVG Assets/UI/folder-open.svg.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: fd65d4ae500ab124db6385ee24d0ee29 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3} + svgType: 4 + texturedSpriteMeshType: 0 + svgPixelsPerUnit: 100 + gradientResolution: 64 + alignment: 0 + customPivot: {x: 0, y: 0} + generatePhysicsShape: 0 + viewportOptions: 1 + preserveViewport: 0 + advancedMode: 0 + predefinedResolutionIndex: 0 + targetResolution: 2160 + resolutionMultiplier: 1 + stepDistance: 10 + samplingStepDistance: 100 + maxCordDeviationEnabled: 0 + maxCordDeviation: 1 + maxTangentAngleEnabled: 0 + maxTangentAngle: 5 + keepTextureAspectRatio: 1 + textureSize: 256 + textureWidth: 256 + textureHeight: 256 + wrapMode: 0 + filterMode: 1 + sampleCount: 4 + preserveSVGImageAspect: 1 + useSVGPixelsPerUnit: 0 + spriteData: + TessellationDetail: 0 + SpriteRect: + name: + originalName: + pivot: {x: 0, y: 0} + alignment: 0 + border: {x: 0, y: 0, z: 0, w: 0} + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + spriteID: 75df7aadcc2417947be79288c94cf62e + internalID: 0 + PhysicsOutlines: [] diff --git a/Assets/Scenes/Workspace.unity b/Assets/Scenes/Workspace.unity index 456361e..c236f0d 100755 --- a/Assets/Scenes/Workspace.unity +++ b/Assets/Scenes/Workspace.unity @@ -232,7 +232,7 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 8894090343327815917} + - {fileID: 6486110952785630553} m_Father: {fileID: 431027840} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -386,7 +386,8 @@ MonoBehaviour: m_EditorClassIdentifier: GateBar: {fileID: 881209084} MovingBar: {fileID: 186568831} - UIGatePrefab: {fileID: 8191254068802735818, guid: eccdec2d2494caa4ba1b906d71a760f8, type: 3} + UIGatePrefab: {fileID: 4115614846617266998, guid: 42484f6a6981d384b90ba0beb53c20e5, type: 3} + UIFolderPrefab: {fileID: 163791623525366651, guid: 0a772a64fe95a314da2ce2928e240044, type: 3} --- !u!1 &519420028 GameObject: m_ObjectHideFlags: 0 @@ -872,128 +873,105 @@ Transform: m_Father: {fileID: 1741727034} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3254705316304510337 -GameObject: +--- !u!1001 &6486110952785630552 +PrefabInstance: m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8894090343327815917} - - component: {fileID: 8982662505155081090} - - component: {fileID: 5045999820264220717} - - component: {fileID: 3254705316304510339} - - component: {fileID: 3254705316304510338} - m_Layer: 0 - m_Name: DeleteTool - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &3254705316304510338 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3254705316304510337} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 07b6ed78fbbf4124794530c3e8451329, type: 3} - m_Name: - m_EditorClassIdentifier: - openImage: {fileID: 1718401066980627502, guid: 2b0bec83cb4bdfa4082ea5a275e8ae55, type: 3} ---- !u!114 &3254705316304510339 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3254705316304510337} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 0 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 5045999820264220717} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &5045999820264220717 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3254705316304510337} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ef8b96895a0ec4ba685178a052544251, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 2100000, guid: 8d66e65c66e29504199ed664979682cd, type: 2} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 3286163911610860551, guid: ac6a92b2185049c489e96cdddf0efb50, type: 3} - m_PreserveAspect: 1 ---- !u!224 &8894090343327815917 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 186568832} + m_Modifications: + - target: {fileID: 6003105996227115787, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_Name + value: Delete UI Button + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} +--- !u!224 &6486110952785630553 stripped RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 7261081616334714577, guid: 738997ae05f1eab49bdf5cfab58649b7, type: 3} + m_PrefabInstance: {fileID: 6486110952785630552} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3254705316304510337} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 186568832} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 100, y: 0} - m_Pivot: {x: 1, y: 0.5} ---- !u!222 &8982662505155081090 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3254705316304510337} - m_CullTransparentMesh: 0 diff --git a/Assets/Scripts/UI/UIDelete.cs b/Assets/Scripts/UI/UIDelete.cs index c63e1e6..f0f811c 100755 --- a/Assets/Scripts/UI/UIDelete.cs +++ b/Assets/Scripts/UI/UIDelete.cs @@ -8,8 +8,9 @@ namespace UntitledLogicGame.UI { public class UIDelete : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler { - #region Unity Properties + #region Unity Properties + public SVGImage closedImage; public SVGImage openImage; #endregion @@ -20,39 +21,47 @@ namespace UntitledLogicGame.UI #region Private Properties + private SVGImage Image + { + get + { + if(_image == null) + _image = GetComponentInChildren(); + return _image; + } + } + private SVGImage _image; - private Sprite _closedSprite; #endregion #region Unity Methods - private void Start() - { - _image = GetComponent(); - _closedSprite = _image.sprite; - } - public void OnPointerEnter(PointerEventData eventData) { - _image.sprite = openImage.sprite; + Image.sprite = openImage.sprite; PointerManager.Instance.DeleteOnRelease = true; } public void OnPointerExit(PointerEventData eventData) { - _image.sprite = _closedSprite; + Image.sprite = closedImage.sprite; PointerManager.Instance.DeleteOnRelease = false; } - #endregion + private void OnEnable() + { + Image.sprite = closedImage.sprite; + } - #region Public Methods + #endregion - #endregion + #region Public Methods - #region Private Methods + #endregion - #endregion - } + #region Private Methods + + #endregion + } } \ No newline at end of file diff --git a/Assets/Scripts/UI/UIFolder.cs b/Assets/Scripts/UI/UIFolder.cs new file mode 100755 index 0000000..8870225 --- /dev/null +++ b/Assets/Scripts/UI/UIFolder.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using Unity.VectorGraphics; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace UntitledLogicGame.UI +{ + public class UIFolder : UIToolbarButton + { + #region Unity Properties + + public SVGImage folderImage; + public SVGImage backImage; + + #endregion + + #region Public Properties + + public bool IsBack { get; set; } + public string Name + { + set + { + Text.text = value; + } + } + + + #endregion + + #region Private Properties + + #endregion + + #region Unity Methods + + private void OnEnable() + { + Image.sprite = IsBack ? backImage.sprite : folderImage.sprite; + } + + #endregion + + #region Public Methods + + #endregion + + #region Private Methods + + #endregion + } + +} diff --git a/Assets/Scripts/UI/UIFolder.cs.meta b/Assets/Scripts/UI/UIFolder.cs.meta new file mode 100755 index 0000000..d2d527b --- /dev/null +++ b/Assets/Scripts/UI/UIFolder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dc88317bf8def394099cd222acc35347 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UI/UIGate.cs b/Assets/Scripts/UI/UIGate.cs index c881c7c..b0ce4c2 100755 --- a/Assets/Scripts/UI/UIGate.cs +++ b/Assets/Scripts/UI/UIGate.cs @@ -1,4 +1,5 @@ -using System.Collections; +using System; +using System.Collections; using System.Collections.Generic; using TMPro; using Unity.VectorGraphics; @@ -9,48 +10,34 @@ using UntitledLogicGame.Workspace; namespace UntitledLogicGame.UI { - public class UIGate : MonoBehaviour, IPointerDownHandler - { - #region Unity Properties + public class UIGate : UIToolbarButton + { + #region Unity Properties - #endregion + #endregion - #region Public Properties + #region Public Properties - public Gate GatePrefab - { - set - { - _gatePrefab = value; - var sprite = _gatePrefab.GetComponentInChildren().sprite; - var subimage = GetComponentInChildren(); - subimage.sprite = sprite; - subimage.GetComponent().sizeDelta = new Vector2(100f, 100 * sprite.rect.width / 700f); // TODO get max width from UIManager - gameObject.name = "UI_" + _gatePrefab.Definition.Name; - GetComponentInChildren().text = _gatePrefab.Definition.Name; - } - } + public Gate GatePrefab + { + set + { + var sprite = value.GetComponentInChildren().sprite; + Image.sprite = sprite; + Image.GetComponent().sizeDelta = new Vector2(100f, 100 * sprite.rect.width / 700f); // TODO get max width from UIManager + gameObject.name = "UI_" + value.Definition.Name; + Text.text = value.Definition.Name; + } + } - #endregion + #endregion - #region Private Properties - - private Gate _gatePrefab; + #region Private Properties #endregion #region Unity Methods - private void Start() - { - - } - - public void OnPointerDown(PointerEventData eventData) - { - GameManager.Instance.CreateGate(_gatePrefab); - } - #endregion #region Public Methods diff --git a/Assets/Scripts/UI/UIManager.cs b/Assets/Scripts/UI/UIManager.cs index c1b2bcf..76fb5ff 100755 --- a/Assets/Scripts/UI/UIManager.cs +++ b/Assets/Scripts/UI/UIManager.cs @@ -1,7 +1,9 @@ -using System.Collections; +using System; +using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; +using UntitledLogicGame.Workspace.Gates; namespace UntitledLogicGame.UI { @@ -15,41 +17,45 @@ namespace UntitledLogicGame.UI [Header("Prefabs")] public UIGate UIGatePrefab; + public UIFolder UIFolderPrefab; - #endregion + #endregion - #region Public Properties + #region Public Properties + + public GateCategory GateBarState + { + get => _gateBarState; + set + { + _gateBarState = value; + UpdateGateBar(); + } + } #endregion #region Private Properties private bool _lastMouseInteracting; + private GateCategory _gateBarState; + private Dictionary _gateBarSateList; - #endregion + #endregion - #region Unity Methods + #region Unity Methods - private IEnumerator Start() + private IEnumerator Start() { yield return new WaitUntil(() => GameManager.Instance != null); - // TODO calculate max width - var currentPos = 0f; - foreach(var gatePrefab in GameManager.Instance.GatePrefabs) - { - var uiGate = Instantiate(UIGatePrefab, GateBar.transform); - uiGate.GatePrefab = gatePrefab; - uiGate.GetComponent().anchoredPosition = new Vector2(currentPos, 0); - currentPos += 100f; - } - - MovingBar.SetActive(false); - } + CreateGateBar(); + UpdateUI(); + } private void FixedUpdate() { UpdateUI(); - } + } #endregion @@ -70,6 +76,74 @@ namespace UntitledLogicGame.UI } } + private void CreateGateBar() + { + _gateBarSateList = new Dictionary(); + + var allCategories = Enum.GetValues(typeof(GateCategory)).Cast(); + + foreach (var category in allCategories) + { + var parent = new GameObject(category.ToString(), typeof(RectTransform)); + parent.transform.parent = GateBar.transform; + var rect = parent.GetComponent(); + rect.anchorMin = Vector2.zero; + rect.anchorMax = new Vector2(1, 1); + rect.position = Vector2.zero; + rect.offsetMin = Vector2.zero; + parent.SetActive(false); + if(category == GateCategory.None) + { + var currentPos = 0f; + foreach (var subCategory in allCategories) + { + if(subCategory != GateCategory.None) + { + var uiFolder = Instantiate(UIFolderPrefab, parent.transform); + uiFolder.Rect.anchoredPosition = new Vector2(currentPos, 0); + uiFolder.Name = subCategory.ToString(); + uiFolder.OnClick = () => + { + GateBarState = subCategory; + }; + currentPos += 100f; + } + } + } + else + { + var uiFolder = Instantiate(UIFolderPrefab, parent.transform); + uiFolder.Name = "Back"; + uiFolder.IsBack = true; + uiFolder.OnClick = () => + { + GateBarState = GateCategory.None; + }; + var currentPos = 100f; + var possibleGateTypes = GateDefinition.TypeCategoryList[category]; + foreach (var gatePrefab in GameManager.Instance.GatePrefabs.Where(g => possibleGateTypes.Contains(g.GateType))) + { + var uiGate = Instantiate(UIGatePrefab, parent.transform); + uiGate.GatePrefab = gatePrefab; + uiGate.Rect.anchoredPosition = new Vector2(currentPos, 0); + uiGate.OnClick = () => { + GameManager.Instance.CreateGate(gatePrefab); + }; + currentPos += 100f; + } + } + _gateBarSateList[category] = parent; + } + UpdateGateBar(); + } + + private void UpdateGateBar() + { + //TODO animate ? + foreach (var category in Enum.GetValues(typeof(GateCategory)).Cast()) + _gateBarSateList[category].SetActive(category == GateBarState); + } + #endregion } } \ No newline at end of file diff --git a/Assets/Scripts/UI/UIToolbarButton.cs b/Assets/Scripts/UI/UIToolbarButton.cs new file mode 100755 index 0000000..862f985 --- /dev/null +++ b/Assets/Scripts/UI/UIToolbarButton.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using TMPro; +using Unity.VectorGraphics; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace UntitledLogicGame.UI +{ + public class UIToolbarButton : MonoBehaviour, IPointerDownHandler + { + #region Unity Properties + + #endregion + + #region Public Properties + + public SVGImage Image + { + get + { + if (_image == null) + _image = GetComponentInChildren(); + return _image; + } + } + public TextMeshProUGUI Text + { + get + { + if (_text == null) + _text = GetComponentInChildren(); + return _text; + } + } + public RectTransform Rect + { + get + { + if (_rect == null) + _rect = GetComponent(); + return _rect; + } + } + public Action OnClick { get; set; } + + + #endregion + + #region Private Properties + + + private SVGImage _image; + private TextMeshProUGUI _text; + private RectTransform _rect; + + #endregion + + #region Unity Methods + + public void OnPointerDown(PointerEventData eventData) + { + if (OnClick != null) + OnClick(); + } + + #endregion + + #region Public Methods + + #endregion + + #region Private Methods + + #endregion + } +} \ No newline at end of file diff --git a/Assets/Scripts/UI/UIToolbarButton.cs.meta b/Assets/Scripts/UI/UIToolbarButton.cs.meta new file mode 100755 index 0000000..62afef7 --- /dev/null +++ b/Assets/Scripts/UI/UIToolbarButton.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3ba7b67ac81cbb241bf0184566a7d00b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Workspace/Gates/GateDefinition.cs b/Assets/Scripts/Workspace/Gates/GateDefinition.cs index 79ad69c..d24f968 100755 --- a/Assets/Scripts/Workspace/Gates/GateDefinition.cs +++ b/Assets/Scripts/Workspace/Gates/GateDefinition.cs @@ -8,9 +8,18 @@ namespace UntitledLogicGame.Workspace.Gates { // Static properties private static Dictionary Definitions; + public static Dictionary> TypeCategoryList => + Enum.GetValues(typeof(GateCategory)).Cast() + .ToDictionary( + c => c, + c => Enum.GetValues(typeof(GateType)).Cast() + .Where(t => (GateCategory)((int)t / 100) == c).ToList() + ); // Public properties - public string Name { get; internal set; } + public GateType Type { get; private set; } + public GateCategory Category => (GateCategory)((int)Type / 100); + public string Name => Type.ToString(); public bool HasState => false; public Dictionary TruthTable { get; private set; } = new Dictionary(); @@ -27,9 +36,9 @@ namespace UntitledLogicGame.Workspace.Gates Definitions = new Dictionary(); foreach (var gateType in Enum.GetValues(typeof(GateType)).Cast()) { - var t = Type.GetType($"{typeof(GateDefinition).Namespace}.{gateType}Gate", true); + var t = System.Type.GetType($"{typeof(GateDefinition).Namespace}.{gateType}Gate", true); Definitions[gateType] = (GateDefinition)t.GetConstructor(new Type[0]).Invoke(new object[0]); - Definitions[gateType].Name = gateType.ToString(); + Definitions[gateType].Type = gateType; } } diff --git a/Assets/Scripts/Workspace/Gates/GateType.cs b/Assets/Scripts/Workspace/Gates/GateType.cs index 06d3574..aa11dd0 100755 --- a/Assets/Scripts/Workspace/Gates/GateType.cs +++ b/Assets/Scripts/Workspace/Gates/GateType.cs @@ -3,8 +3,8 @@ public enum GateType { // 000 - Technical - NONE = 000, - // 100 - Special + None = 000, + // 100 - I/O IN = 100, OUT = 110, // 200 - Basic @@ -28,7 +28,7 @@ // 500 - Arithmetic HalfAdd = 500, FullAdd = 510, - HalSub = 520, + HalfSub = 520, FullSub = 530, // 600 - Data Mux = 610, @@ -45,4 +45,17 @@ Counter2b = 800, Counter4b = 810 } + + public enum GateCategory + { + None = 00, + IO = 01, + Basic = 02, + Latches = 03, + FlipFlops = 04, + Arithmetic = 05, + Data = 06, + Registers = 07, + Counters = 08 + } } diff --git a/TODO.txt b/TODO.txt index e0771a4..ca40739 100755 --- a/TODO.txt +++ b/TODO.txt @@ -1,5 +1,4 @@ TODO --(2) gate bar sub categories -(2) named anchors (dezoom hide ?) -(3) clocks (1Hz, 5Hz, 10Hz, etc.) -(3) generic rect gates