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