public bool Construct(IBuildable buildable) { if (CanBuild(buildable.GridPosition, buildable.BuildSize)) { for (int i = 0; i < bufferBuildCoordinates.Count; i++) { Coordinate coor = bufferBuildCoordinates [i]; BuildGridNode buildNode = Grid [coor.x, coor.y]; buildNode.RegisteredBuilding = buildable; } return(true); } return(false); }
public IEnumerable <IBuildable> GetOccupyingBuildables(IBuildable buildable) { if (!CanBuild(buildable.GridPosition, buildable.BuildSize)) { for (int i = 0; i < bufferBuildCoordinates.Count; i++) { Coordinate coor = bufferBuildCoordinates[i]; BuildGridNode buildNode = Grid[coor.x, coor.y]; if (buildNode.Occupied) { yield return(buildNode.RegisteredBuilding); } } } }
public void Unbuild(IBuildable buildable) { if (TryGetBuildCoordinates(buildable.GridPosition, buildable.BuildSize, bufferBuildCoordinates)) { for (int i = 0; i < bufferBuildCoordinates.Count; i++) { Coordinate coor = bufferBuildCoordinates [i]; BuildGridNode buildNode = Grid [coor.x, coor.y]; /* * if (buildNode.Occupied == false) * Debug.Log("Not built");*/ buildNode.RegisteredBuilding = null; } } else { throw new System.Exception("Specified area to unbuild is invalid"); } }
public void Unbuild(Coordinate position, int size) { if (TryGetBuildCoordinates(position, size, bufferBuildCoordinates)) { for (int i = 0; i < bufferBuildCoordinates.Count; i++) { Coordinate coor = bufferBuildCoordinates [i]; BuildGridNode buildNode = Grid [coor.x, coor.y]; if (buildNode.Occupied == false) { Debug.Log("Not built"); } buildNode.Occupied = false; } } else { throw new System.Exception("Specified area to unbuild is invalid"); } }