private static void Place(Tile[,] tiles, bool further_placement = false) { EntranceBuilding eb = building as EntranceBuilding; for (int i = 0; i < building.countZ; i++) { for (int j = 0; j < building.countX; j++) { Road road = Extract(tiles[i, j]); if (road != null && eb != null) { if (road.north != null) { eb.entrance.north = road.north; road.north.south = eb.entrance; } if (road.south != null) { eb.entrance.south = road.south; road.south.north = eb.entrance; } if (road.east != null) { eb.entrance.east = road.east; road.east.west = eb.entrance; } if (road.west != null) { eb.entrance.west = road.west; road.west.east = eb.entrance; } Object.Destroy(road.gameObject); } tiles[i, j].Owner = building; } } if (building.GetType() == typeof(Depot)) { building.transform.position = new Vector3(building.transform.position.x, -0.0825f, building.transform.position.z); } building = null; rotated = false; //Debug.Log("MTPos = " + mouseTilePosition); if (!further_placement) { Enabled = false; ToolBar.Components.EnableButtons(); } }
private static void DestroyBuilding(Building building) { if (building.GetType().IsSubclassOf(typeof(EntranceBuilding))) { EntranceBuilding entrBuilding = building as EntranceBuilding; Road entrance = entrBuilding.entrance; if (entrance.north != null || entrance.south != null || entrance.east != null || entrance.west != null) { DestroyRoad(entrance); } } WorldMap.ClearArea(building.UpLeft, building.countX, building.countZ); Object.Destroy(building.gameObject); }