public override ResourceContainerDictionary GetStartingDataContainers() { print("Getting new habitat data"); HabitatData = new HabitatExtraData() { EnergyContainer = new EnergyContainer() { TotalCapacity = ElectricityConstants.WattHoursPerBatteryBlock * 5f }, HeatContainer = new EnergyContainer(ChemistryConstants.CToKelvin + 20) { EnergyType = Energy.Thermal, TotalCapacity = ChemistryConstants.CToKelvin + 30 } }; return(new ResourceContainerDictionary() { { Matter.Water, new ResourceContainer(2f) { MatterType = Matter.Water, TotalCapacity = 5f } }, { Matter.Oxygen, new ResourceContainer(3f) { MatterType = Matter.Oxygen, TotalCapacity = 3f } }, { Matter.Biomass, new ResourceContainer(0f) { MatterType = Matter.Biomass, TotalCapacity = 1f } }, { Matter.OrganicMeals, new ResourceContainer(0f) { MatterType = Matter.OrganicMeals, TotalCapacity = 1f } }, { Matter.RationMeals, new ResourceContainer(Matter.RationMeals.CubicMetersPerUnit() * 6) { MatterType = Matter.RationMeals, TotalCapacity = 1f } }, { Matter.MealPowders, new ResourceContainer(Matter.RationMeals.CubicMetersPerUnit() * 12) { MatterType = Matter.MealPowders, TotalCapacity = 1f } }, { Matter.MealShakes, new ResourceContainer(0f) { MatterType = Matter.MealShakes, TotalCapacity = 1f } }, }); }
/// <summary> /// Given a habitat module data and a list of all inscene habs /// Finds the matching habitat and the matching hab extra data /// And sets both data objects to the habitat script /// </summary> /// <param name="allHabs"></param> /// <param name="data"></param> private void SyncToHabitat(Habitat[] allHabs, MultipleResourceModuleData data, Dictionary <string, ModuleGameplay> moduleMap, Dictionary <string, IPowerable> powerableMap) { HabitatExtraData matchingHabData = Habitats.FirstOrDefault(x => x.ModuleInstanceID == data.ModuleInstanceID); Habitat matchingHab = allHabs.FirstOrDefault(x => x.name == data.ModuleInstanceID); matchingHab.Data = data; matchingHab.HabitatData = matchingHabData; if (matchingHab.OnResourceChange != null) { matchingHab.OnResourceChange(Simulation.Matter.Biomass, Simulation.Matter.OrganicMeals, Simulation.Matter.MealShakes, Simulation.Matter.RationMeals, Simulation.Matter.MealPowders); } moduleMap.Add(data.ModuleInstanceID, matchingHab); powerableMap.Add(data.PowerableInstanceID, matchingHab); }