public Building(BuildingSdo sdo) { if (sdo == null) { return; } Height = sdo.Height; Width = sdo.Width; FloorTiles = new GameObject[Height, Width]; WallTiles = new GameObject[Height, Width]; WallTypeIndex = sdo.WallTypeIndex; FloorTypeIndex = sdo.FloorTypeIndex; _wallTilePrefabs = BuildingPrefabStore.GetWallTileTypeAt(WallTypeIndex); _floorTilePrefabs = BuildingPrefabStore.GetFloorTileTypeAt(FloorTypeIndex); Blueprint = BuildingSdo.ConvertBlueprintForLoading(Height, Width, sdo.Blueprint); Props = BuildingSdo.ConvertPropsForPlaying(Height, Width, sdo.PropSdos); AddedDoorLocations = BuildingSdo.ConvertBlueprintForLoading(Height, Width, sdo.AddedDoorLocations); //todo need room sdo -- maybe Build(); }
public static void AssignBuildingToStartingArea(SettlementPrefab prefab) { var lot = prefab.Lots[Random.Range(0, prefab.Lots.Count)]; var building = BuildingPrefabStore.GetBuildingPrefab("starting_building_1"); lot.AssignedBuilding = new Building(building, true); }
public static void AssignBuildingToLots(SettlementPrefab prefab) { foreach (var lot in prefab.Lots) { var buildingPrefab = BuildingPrefabStore.GetBuildingPrefabForLot(lot); lot.AssignedBuilding = new Building(buildingPrefab); } }
private void PickTilePrefabs() { WallTypeIndex = BuildingPrefabStore.GetRandomWallTypeIndex(); _wallTilePrefabs = BuildingPrefabStore.GetWallTileTypeAt(WallTypeIndex); FloorTypeIndex = BuildingPrefabStore.GetRandomFloorTypeIndex(); _floorTilePrefabs = BuildingPrefabStore.GetFloorTileTypeAt(FloorTypeIndex); }
public Chest(ChestSdo sdo) : base("0", BuildingPrefabStore.GetChestPrefab(), true) { _contents = new Dictionary <Guid, Item>(); foreach (var itemId in sdo.ContentIds) { var item = WorldData.Instance.Items[itemId]; _contents.Add(item.Id, item); } }
private void Furnish(bool isStartingBuilding = false) { var maxFurniture = Height * Width / 20; var minFurniture = Height * Width / 40; if (minFurniture < 4) { minFurniture = 4; } var numFurnitureToPlace = Random.Range(minFurniture, maxFurniture); var tilesAdjacentToWall = FindAllTilesAdjacentToWall(); for (var i = 0; i < numFurnitureToPlace; i++) { for (var numTries = 0; numTries < MaxTriesToPlaceObject; numTries++) { var row = Random.Range(0, Height); var column = Random.Range(0, Width); if (isStartingBuilding) { if ((row == 2 || row == 1) && (column == 1 || column == 2)) { continue; } } if (tilesAdjacentToWall[row, column] && Props[row, column] == null) { //todo pick furniture based on room type var roll = Random.Range(0, 100); if (roll < 58) { var furniturePrefab = BuildingPrefabStore.GetRandomBasicFurniturePrefab(); Props[row, column] = new Furniture(furniturePrefab.Key, furniturePrefab.Value); } else { var chestPrefab = BuildingPrefabStore.GetChestPrefab(); Props[row, column] = new Chest("0", chestPrefab); } break; } } } }
public Furniture(FurnitureSdo sdo) { PrefabKey = sdo.PrefabKey; Prefab = BuildingPrefabStore.GetPrefabByName(PrefabKey); }