Beispiel #1
0
    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
              } },
        });
    }
Beispiel #2
0
        /// <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);
        }