From 42fbffd3065d52f90f89f39a8c6efaf847b509b2 Mon Sep 17 00:00:00 2001 From: Felix Boucher Date: Fri, 19 Jan 2024 15:30:54 -0500 Subject: [PATCH] working delete feature + placeholder refactor --- Assets/Prefabs/UI/DeleteShovel.prefab | 133 ++++++++++++++ Assets/Prefabs/UI/DeleteShovel.prefab.meta | 7 + Assets/Scenes/Game.unity | 164 +++++++++--------- Assets/Scripts/DeleteButton.cs | 12 -- Assets/Scripts/Drag&Drop/DeleteButton.cs | 37 ++++ .../{ => Drag&Drop}/DeleteButton.cs.meta | 0 Assets/Scripts/Drag&Drop/DeleteShovel.cs | 17 ++ Assets/Scripts/Drag&Drop/DeleteShovel.cs.meta | 11 ++ .../Scripts/Drag&Drop/DraggablePlaceholder.cs | 27 ++- Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs | 4 +- Assets/Scripts/Drag&Drop/UnitPlaceholder.cs | 16 ++ .../Scripts/Drag&Drop/UnitPlaceholder.cs.meta | 11 ++ .../Scripts/Drag&Drop/UnitPlacementButton.cs | 6 +- 13 files changed, 333 insertions(+), 112 deletions(-) create mode 100644 Assets/Prefabs/UI/DeleteShovel.prefab create mode 100644 Assets/Prefabs/UI/DeleteShovel.prefab.meta delete mode 100644 Assets/Scripts/DeleteButton.cs create mode 100644 Assets/Scripts/Drag&Drop/DeleteButton.cs rename Assets/Scripts/{ => Drag&Drop}/DeleteButton.cs.meta (100%) create mode 100644 Assets/Scripts/Drag&Drop/DeleteShovel.cs create mode 100644 Assets/Scripts/Drag&Drop/DeleteShovel.cs.meta create mode 100644 Assets/Scripts/Drag&Drop/UnitPlaceholder.cs create mode 100644 Assets/Scripts/Drag&Drop/UnitPlaceholder.cs.meta diff --git a/Assets/Prefabs/UI/DeleteShovel.prefab b/Assets/Prefabs/UI/DeleteShovel.prefab new file mode 100644 index 0000000..f308ed8 --- /dev/null +++ b/Assets/Prefabs/UI/DeleteShovel.prefab @@ -0,0 +1,133 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4504030131911750787 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4504030131911750786} + - component: {fileID: 2841308699909071456} + m_Layer: 0 + m_Name: DeleteShovel + m_TagString: Untagged + m_Icon: {fileID: -5442936267250999957, guid: 0000000000000000d000000000000000, type: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4504030131911750786 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4504030131911750787} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4504030132336179630} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2841308699909071456 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4504030131911750787} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 764223f248039ad4f91de22f479da2e5, type: 3} + m_Name: + m_EditorClassIdentifier: + _validColor: {r: 0, g: 1, b: 0, a: 1} + _invalidColor: {r: 1, g: 0, b: 0, a: 1} +--- !u!1 &4504030132336179628 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4504030132336179630} + - component: {fileID: 4504030132336179631} + m_Layer: 0 + m_Name: delete_shovel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4504030132336179630 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4504030132336179628} + m_LocalRotation: {x: 0, y: 0, z: 0.92387956, w: 0.38268343} + m_LocalPosition: {x: 0.25, y: 0.25, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4504030131911750786} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 135} +--- !u!212 &4504030132336179631 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4504030132336179628} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 364159097 + m_SortingLayer: 1 + m_SortingOrder: 2 + m_Sprite: {fileID: 21300000, guid: 613be35a1cee65344a778923f4b20bec, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.67, y: 1.32} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 diff --git a/Assets/Prefabs/UI/DeleteShovel.prefab.meta b/Assets/Prefabs/UI/DeleteShovel.prefab.meta new file mode 100644 index 0000000..19846a1 --- /dev/null +++ b/Assets/Prefabs/UI/DeleteShovel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e1e8c5d6f8d96ba42946fc4cd76c8825 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity index 6d445ee..853b502 100644 --- a/Assets/Scenes/Game.unity +++ b/Assets/Scenes/Game.unity @@ -830,6 +830,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: bd64ba32c0dc69d40a067bbeb7f1b8f0, type: 3} m_Name: m_EditorClassIdentifier: + _outlineMaterial: {fileID: 2100000, guid: 7f87c7d6b4237a34ea92984757e5c269, type: 2} + _prefab: {fileID: 4504030131911750787, guid: e1e8c5d6f8d96ba42946fc4cd76c8825, type: 3} --- !u!114 &180485348 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 217791848456698108, guid: 5497dc5adfbe67341980c9d946816424, type: 3} @@ -1044,11 +1046,11 @@ PrefabInstance: objectReference: {fileID: 21300000, guid: 02ca532612c0cbf4a93c2c0924622b8b, type: 3} - target: {fileID: 5139721979244350189, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5139721979244350189, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5139721979244350189, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} propertyPath: m_AnchoredPosition.x @@ -1056,15 +1058,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 5139721979244350189, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -47.711605 objectReference: {fileID: 0} - target: {fileID: 7106892478383455582, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7106892478383455582, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7106892478383455582, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} propertyPath: m_AnchoredPosition.x @@ -1072,15 +1074,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7106892478383455582, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -26.874405 objectReference: {fileID: 0} - target: {fileID: 7112938880036038065, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7112938880036038065, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7112938880036038065, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} propertyPath: m_AnchoredPosition.x @@ -1088,7 +1090,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7112938880036038065, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -6.0372024 objectReference: {fileID: 0} - target: {fileID: 8434244523906479734, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} propertyPath: _food @@ -2590,11 +2592,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 400568530076150058, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 400568530076150058, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 400568530076150058, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -2602,7 +2604,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 400568530076150058, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -47.711605 objectReference: {fileID: 0} - target: {fileID: 400568530256114997, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y @@ -2622,11 +2624,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 400568530484276529, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 400568530484276529, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 400568530484276529, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -2634,15 +2636,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 400568530484276529, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -47.711605 objectReference: {fileID: 0} - target: {fileID: 400568531361238196, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 400568531361238196, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 400568531361238196, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -2650,15 +2652,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 400568531361238196, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -47.711605 objectReference: {fileID: 0} - target: {fileID: 1144883118211503064, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 1144883118211503064, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 1144883118211503064, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -2666,15 +2668,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1144883118211503064, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -47.711605 objectReference: {fileID: 0} - target: {fileID: 1361171379191865150, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 1361171379191865150, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 1361171379191865150, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -2682,15 +2684,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1361171379191865150, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -6.0372024 objectReference: {fileID: 0} - target: {fileID: 1366041080306649041, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 1366041080306649041, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 1366041080306649041, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -2698,7 +2700,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1366041080306649041, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -26.874405 objectReference: {fileID: 0} - target: {fileID: 2335911515542116969, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y @@ -2734,11 +2736,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2335911515764278902, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2335911515764278902, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2335911515764278902, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -2746,15 +2748,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2335911515764278902, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -6.0372024 objectReference: {fileID: 0} - target: {fileID: 2335911516153004653, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2335911516153004653, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2335911516153004653, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -2762,15 +2764,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2335911516153004653, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -6.0372024 objectReference: {fileID: 0} - target: {fileID: 2335911516626281448, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2335911516626281448, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2335911516626281448, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -2778,7 +2780,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2335911516626281448, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -6.0372024 objectReference: {fileID: 0} - target: {fileID: 2340796561267475078, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y @@ -2798,11 +2800,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2340796561450327705, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2340796561450327705, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2340796561450327705, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -2810,7 +2812,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2340796561450327705, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -26.874405 objectReference: {fileID: 0} - target: {fileID: 2340796561610837739, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y @@ -2830,11 +2832,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2340796562313902855, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2340796562313902855, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2340796562313902855, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -2842,15 +2844,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2340796562313902855, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -26.874405 objectReference: {fileID: 0} - target: {fileID: 2340796563190143618, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2340796563190143618, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2340796563190143618, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -2858,15 +2860,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2340796563190143618, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -26.874405 objectReference: {fileID: 0} - target: {fileID: 3028311141574704260, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3028311141574704260, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3028311141574704260, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -2874,15 +2876,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 3028311141574704260, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -6.0372024 objectReference: {fileID: 0} - target: {fileID: 3030999274206192747, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3030999274206192747, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3030999274206192747, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -2890,15 +2892,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 3030999274206192747, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -26.874405 objectReference: {fileID: 0} - target: {fileID: 3964878483247902818, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3964878483247902818, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3964878483247902818, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -2906,7 +2908,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 3964878483247902818, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -47.711605 objectReference: {fileID: 0} - target: {fileID: 4021885618914922922, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: _food @@ -3002,11 +3004,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4911214996900807424, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4911214996900807424, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4911214996900807424, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -3014,15 +3016,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4911214996900807424, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -299.90002 objectReference: {fileID: 0} - target: {fileID: 5316389173819650276, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5316389173819650276, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5316389173819650276, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -3030,15 +3032,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 5316389173819650276, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -26.874405 objectReference: {fileID: 0} - target: {fileID: 5319145879937787915, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5319145879937787915, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5319145879937787915, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -3046,15 +3048,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 5319145879937787915, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -6.0372024 objectReference: {fileID: 0} - target: {fileID: 5639720393060989426, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5639720393060989426, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5639720393060989426, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -3062,7 +3064,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 5639720393060989426, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -201.6 objectReference: {fileID: 0} - target: {fileID: 5639720393215043968, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y @@ -3098,11 +3100,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 5639720393720315369, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5639720393720315369, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5639720393720315369, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -3110,15 +3112,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 5639720393720315369, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -5 objectReference: {fileID: 0} - target: {fileID: 5639720394252960041, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5639720394252960041, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5639720394252960041, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -3126,15 +3128,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 5639720394252960041, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -5 objectReference: {fileID: 0} - target: {fileID: 5639720394327989356, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5639720394327989356, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5639720394327989356, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -3142,15 +3144,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 5639720394327989356, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -103.3 objectReference: {fileID: 0} - target: {fileID: 7797049475554395991, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7797049475554395991, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7797049475554395991, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -3158,15 +3160,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7797049475554395991, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -47.711605 objectReference: {fileID: 0} - target: {fileID: 8992921944992653498, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 8992921944992653498, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 8992921944992653498, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.x @@ -3174,7 +3176,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 8992921944992653498, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -103.3 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 306211cf6348ac747a78d89bd72fca3e, type: 3} diff --git a/Assets/Scripts/DeleteButton.cs b/Assets/Scripts/DeleteButton.cs deleted file mode 100644 index 77a5a11..0000000 --- a/Assets/Scripts/DeleteButton.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.EventSystems; - -public class DeleteButton : PlacementButton -{ - protected override DraggablePlaceholder Place() - { - throw new System.NotImplementedException(); - } -} diff --git a/Assets/Scripts/Drag&Drop/DeleteButton.cs b/Assets/Scripts/Drag&Drop/DeleteButton.cs new file mode 100644 index 0000000..f2691d3 --- /dev/null +++ b/Assets/Scripts/Drag&Drop/DeleteButton.cs @@ -0,0 +1,37 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +public class DeleteButton : PlacementButton +{ + [SerializeField] + private GameObject _prefab; + protected override DraggablePlaceholder Place() + { + var instance = Instantiate(_prefab); + + //strip the object + foreach (var r_body in instance.transform.GetAllComponents()) + Destroy(r_body); + foreach (var coll in instance.transform.GetAllComponents()) + Destroy(coll); + foreach (var script in instance.transform.GetAllComponents()) + Destroy(script); + + var placeholder = instance.AddComponent(); + + //assign outline material to all renderers of the placeholder + foreach (var rend in instance.transform.GetAllComponents()) + { + var color = rend.color; + color.a = 0.6f; + rend.color = color; + + rend.material = OutlineMaterial; + placeholder.OutlineRenderers.Add(rend); + } + + return placeholder; + } +} diff --git a/Assets/Scripts/DeleteButton.cs.meta b/Assets/Scripts/Drag&Drop/DeleteButton.cs.meta similarity index 100% rename from Assets/Scripts/DeleteButton.cs.meta rename to Assets/Scripts/Drag&Drop/DeleteButton.cs.meta diff --git a/Assets/Scripts/Drag&Drop/DeleteShovel.cs b/Assets/Scripts/Drag&Drop/DeleteShovel.cs new file mode 100644 index 0000000..9288b40 --- /dev/null +++ b/Assets/Scripts/Drag&Drop/DeleteShovel.cs @@ -0,0 +1,17 @@ +using Codice.CM.Client.Differences; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class DeleteShovel : DraggablePlaceholder +{ + public override void Place() + { + var hit = LevelManager.Instance.Get(x => x.Position.IsContainedIn(transform.position)); + if (hit) Destroy(hit.gameObject); + } + public override bool CanBePlacedHere() + { + return LevelBoundCache.Contains(transform.position) && LevelManager.Instance.Has(x => x.Position.IsContainedIn(transform.position)); + } +} diff --git a/Assets/Scripts/Drag&Drop/DeleteShovel.cs.meta b/Assets/Scripts/Drag&Drop/DeleteShovel.cs.meta new file mode 100644 index 0000000..36dd5ed --- /dev/null +++ b/Assets/Scripts/Drag&Drop/DeleteShovel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 764223f248039ad4f91de22f479da2e5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Drag&Drop/DraggablePlaceholder.cs b/Assets/Scripts/Drag&Drop/DraggablePlaceholder.cs index a7c0898..7746e87 100644 --- a/Assets/Scripts/Drag&Drop/DraggablePlaceholder.cs +++ b/Assets/Scripts/Drag&Drop/DraggablePlaceholder.cs @@ -5,22 +5,24 @@ using UnityEngine; public abstract class DraggablePlaceholder : MonoBehaviour { - public int Food { get; set; } - public int Rock { get; set; } - public int Wood { get; set; } - protected const string OutlineColor = "_OutlineColor"; [SerializeField] - protected Color _validColor = Color.green; + private Color _validColor = Color.green; [SerializeField] - protected Color _invalidColor = Color.red; - - protected Camera _mainCamCache; - protected Rect _lvlBoundsCache; - protected bool _canBePlacedHere; + private Color _invalidColor = Color.red; + private Camera _mainCamCache; + private Rect _lvlBoundsCache; + private bool _canBePlacedHere; private List _outlineRenderers = new List(); + + public Color ValidColor => _validColor; + public Color InvalidColor => _invalidColor; + public Camera MainCamCache => _mainCamCache; + public Rect LevelBoundCache => _lvlBoundsCache; + public bool PlaceableHere => _canBePlacedHere; + public List OutlineRenderers { get => _outlineRenderers; @@ -52,7 +54,6 @@ public abstract class DraggablePlaceholder : MonoBehaviour { if (_canBePlacedHere) { - ResourceManager.Instance.Remove(Rock, Wood, Food); Place(); } Destroy(gameObject); @@ -91,9 +92,7 @@ public abstract class DraggablePlaceholder : MonoBehaviour /// public virtual bool CanBePlacedHere() { - return !LevelManager.Instance.Has(obj => obj.Position.IsContainedIn(transform.position)) - && _lvlBoundsCache.Contains(transform.position) - && ResourceManager.Instance.EnoughFor(Rock, Wood, Food); + return _lvlBoundsCache.Contains(transform.position); } /// diff --git a/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs b/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs index 9fbe0b7..a049554 100644 --- a/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs +++ b/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs @@ -1,6 +1,6 @@ using UnityEngine; -public class ObjectPlaceholder : DraggablePlaceholder +public class ObjectPlaceholder : UnitPlaceholder { public GameObject Prefab { get; set; } public override void Place() @@ -14,7 +14,7 @@ public class ObjectPlaceholder : DraggablePlaceholder var defaultUnitCost = GlobalConfig.Instance.Current.populationCostPerUnit; return !positionIsCollidable - && _lvlBoundsCache.Contains(transform.position) + && LevelBoundCache.Contains(transform.position) && ResourceManager.Instance.EnoughFor(Rock, Wood, Food) && (Prefab.GetComponent() || ResourceManager.Instance.EnoughPopulationFor(defaultUnitCost)); diff --git a/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs b/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs new file mode 100644 index 0000000..fa649a6 --- /dev/null +++ b/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs @@ -0,0 +1,16 @@ +public abstract class UnitPlaceholder : DraggablePlaceholder +{ + public int Food { get; set; } + public int Rock { get; set; } + public int Wood { get; set; } + + public override void Place() + { + ResourceManager.Instance.Remove(Rock, Wood, Food); + } + public override bool CanBePlacedHere() + { + return base.CanBePlacedHere() && ResourceManager.Instance.EnoughFor(Rock, Wood, Food) + && !LevelManager.Instance.Has(obj => obj.Position.IsContainedIn(transform.position)); + } +} \ No newline at end of file diff --git a/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs.meta b/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs.meta new file mode 100644 index 0000000..2a19d2b --- /dev/null +++ b/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3ea33adc7f9b27c40940e626a70e26a7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Drag&Drop/UnitPlacementButton.cs b/Assets/Scripts/Drag&Drop/UnitPlacementButton.cs index a72d91b..d77761d 100644 --- a/Assets/Scripts/Drag&Drop/UnitPlacementButton.cs +++ b/Assets/Scripts/Drag&Drop/UnitPlacementButton.cs @@ -39,8 +39,8 @@ public abstract class UnitPlacementButton : PlacementButton public override void OnPointerDown(PointerEventData eventData) { base.OnPointerDown(eventData); - Placeholder.Rock = _rock; - Placeholder.Wood = _wood; - Placeholder.Food = _food; + (Placeholder as UnitPlaceholder).Rock = _rock; + (Placeholder as UnitPlaceholder).Wood = _wood; + (Placeholder as UnitPlaceholder).Food = _food; } }