public static void Postfix(GameObject __result) { GasAndLiquidConsumerMonitor.Def def = __result.AddOrGetDef <GasAndLiquidConsumerMonitor.Def>(); List <string> vanillasSlickstersIds = new List <string> { "Oilfloater", "OilfloaterBaby", "OilfloaterDecor", "OilfloaterDecorBaby", "OilfloaterHighTemp", "OilfloaterHighTempBaby" }; KPrefabID kId = __result.AddOrGet <KPrefabID>(); // If the slickster is a vanilla slickster, I check the options if (vanillasSlickstersIds.Contains(kId.PrefabTag.Name)) { if (Patches.Settings.IncreasesVanillaSlickstersConsumption) { def.consumptionRate = 5f; } } else { if (def.consumptionRate <= 0.5f) { def.consumptionRate = 5f * Patches.Settings.ConsumptionMultiplier; } } }
public static GameObject SetupDiet(GameObject prefab, Diet.Info[] diet_infos, float caloriesPerKg, float minPoopSizeInKg) { Diet diet = new Diet(diet_infos); CreatureCalorieMonitor.Def def = prefab.AddOrGetDef <CreatureCalorieMonitor.Def>(); def.diet = diet; def.minPoopSizeInCalories = minPoopSizeInKg * caloriesPerKg; GasAndLiquidConsumerMonitor.Def def2 = prefab.AddOrGetDef <GasAndLiquidConsumerMonitor.Def>(); def2.diet = diet; return(prefab); }
public static GameObject SetupDiet(GameObject prefab, List <Diet.Info> diet_infos, float CALORIES_PER_KG_OF_ORE, float minPoopSizeInKg, float consumptionRate = 5f) { Diet diet = new Diet(diet_infos.ToArray()); CreatureCalorieMonitor.Def def = prefab.AddOrGetDef <CreatureCalorieMonitor.Def>(); def.diet = diet; def.minPoopSizeInCalories = CALORIES_PER_KG_OF_ORE * minPoopSizeInKg; GasAndLiquidConsumerMonitor.Def def2 = prefab.AddOrGetDef <GasAndLiquidConsumerMonitor.Def>(); def2.diet = diet; def2.consumptionRate = consumptionRate; return(prefab); }
public static GameObject SetupDiet(GameObject prefab, Tag consumed_tag, Tag producedTag, float caloriesPerKg, float producedConversionRate, string diseaseId, float diseasePerKgProduced, float minPoopSizeInKg) { HashSet <Tag> hashSet = new HashSet <Tag>(); hashSet.Add(consumed_tag); Diet.Info[] infos = new Diet.Info[1] { new Diet.Info(hashSet, producedTag, caloriesPerKg, producedConversionRate, diseaseId, diseasePerKgProduced, false, false) }; Diet diet = new Diet(infos); CreatureCalorieMonitor.Def def = prefab.AddOrGetDef <CreatureCalorieMonitor.Def>(); def.diet = diet; def.minPoopSizeInCalories = minPoopSizeInKg * caloriesPerKg; GasAndLiquidConsumerMonitor.Def def2 = prefab.AddOrGetDef <GasAndLiquidConsumerMonitor.Def>(); def2.diet = diet; return(prefab); }
public static GameObject CreateLivingCrystal() { GameObject placedEntity = GeneratePlacedEntity(); EntityTemplates.ExtendEntityToWildCreature(placedEntity, PenSizePerCreature, Lifespan); Diet diet = new Diet(new Diet.Info[1] { new Diet.Info(new HashSet <Tag>() { ElementLoader.FindElementByHash(Elements.MineralWaterElement.SimHash).tag }, ElementLoader.FindElementByHash(Elements.MineralWaterElement.SimHash).tag, CaloriesPerKg, ProducedConversionRate, null, 0.0f, false) }); CreatureCalorieMonitor.Def calorieMonitor = placedEntity.AddOrGetDef <CreatureCalorieMonitor.Def>(); calorieMonitor.diet = diet; calorieMonitor.minPoopSizeInCalories = MinPoopSizeInKg * CaloriesPerKg; GasAndLiquidConsumerMonitor.Def consumerMonitor = placedEntity.AddOrGetDef <GasAndLiquidConsumerMonitor.Def>(); consumerMonitor.diet = diet; consumerMonitor.consumptionRate = KgEatenPerCycle / EatTimesPerCycle; placedEntity.AddOrGet <LivingCrystal>().Initialize(); return(placedEntity); }