Made buildings unable to overlap

This commit is contained in:
2026-03-31 16:11:29 +01:00
parent e3b7716d7d
commit dc68787e9f
3 changed files with 71 additions and 2 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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;