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

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