diff --git a/Assets/Prefabs/Buildings/FanBuilding.prefab b/Assets/Prefabs/Buildings/FanBuilding.prefab index d040975..609a3f4 100644 --- a/Assets/Prefabs/Buildings/FanBuilding.prefab +++ b/Assets/Prefabs/Buildings/FanBuilding.prefab @@ -12,6 +12,7 @@ GameObject: - component: {fileID: 3321531399837876958} - component: {fileID: 512124502862012575} - component: {fileID: 2938597077917375806} + - component: {fileID: -6667291122109179156} m_Layer: 0 m_Name: FanBuilding m_TagString: Untagged @@ -90,3 +91,48 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!61 &-6667291122109179156 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8624048914473773482} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 40, y: 120} + m_EdgeRadius: 0 diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 8c25f3e..7aeb041 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -1304,9 +1304,9 @@ RectTransform: - {fileID: 2112507919} - {fileID: 2026916298} - {fileID: 96288173} + - {fileID: 2005593404} - {fileID: 1330313875} - {fileID: 1194686691} - - {fileID: 2005593404} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -1641,7 +1641,7 @@ MonoBehaviour: RectTransform: {fileID: 1330313875} BuildingPreview: {fileID: 1194686692} CursorImage: {fileID: 1330313876} - BuildingManager: {fileID: 0} + BuildingManager: {fileID: 2005593405} BuildingPrefab: {fileID: 8624048914473773482, guid: 1b5c88b3f8d08674a9b15155d6ba9a36, type: 3} CurrentMouseClickStrength: 0 diff --git a/Assets/Scripts/Game/Buildings/BuildingManager.cs b/Assets/Scripts/Game/Buildings/BuildingManager.cs index 7d6e0da..3e018c5 100644 --- a/Assets/Scripts/Game/Buildings/BuildingManager.cs +++ b/Assets/Scripts/Game/Buildings/BuildingManager.cs @@ -23,6 +23,7 @@ namespace Fruitomation.Game public bool AddBuildingAt(Vector2Int position, GameObject prefab, bool updateCellMap = false) { + // GameObject go = Instantiate(prefab, transform); BuildingInfo info = new ( @@ -33,11 +34,33 @@ namespace Fruitomation.Game Vector2Int p0 = position * 40; Vector2Int p1 = p0 + new Vector2Int(20, 100); + Vector2Int g0 = position + new Vector2Int(48, 24); + Vector2 off0 = info.Building.SizeOnGrid - Vector2.one; Vector2 off1 = off0 * 20; info.Rect.sizeDelta = info.Building.SizeOnGrid * 40; info.Rect.anchoredPosition = p1 + off1; + + Debug.Log(g0); + + // + for (int x = g0.x; x < g0.x + info.Building.SizeOnGrid.x; x++) + for (int y = g0.y; y < g0.y + info.Building.SizeOnGrid.y; y++) + { + if (InhabitedCells[x, y]) + { + DestroyImmediate(go); + return false; + } + } + + // + for (int x = g0.x; x < g0.x + info.Building.SizeOnGrid.x; x++) + for (int y = g0.y; y < g0.y + info.Building.SizeOnGrid.y; y++) + { + InhabitedCells[x, y] = true; + } Buildings.Add(info); return true;