public static GameObject CreateArtifact(string id, string name, string desc, string initial_anim, string ui_anim, ArtifactTier artifact_tier, PostInitFn postInitFn = null, SimHashes element = SimHashes.Creature) { GameObject gameObject = EntityTemplates.CreateLooseEntity("artifact_" + id.ToLower(), name, desc, 25f, true, Assets.GetAnim("artifacts_kanim"), initial_anim, Grid.SceneLayer.Ore, EntityTemplates.CollisionShape.RECTANGLE, 1f, 1f, true, SORTORDER.BUILDINGELEMENTS, element, new List <Tag> { GameTags.MiscPickupable }); OccupyArea occupyArea = gameObject.AddOrGet <OccupyArea>(); occupyArea.OccupiedCellsOffsets = EntityTemplates.GenerateOffsets(1, 1); DecorProvider decorProvider = gameObject.AddOrGet <DecorProvider>(); decorProvider.SetValues(artifact_tier.decorValues); decorProvider.overrideName = gameObject.name; SpaceArtifact spaceArtifact = gameObject.AddOrGet <SpaceArtifact>(); spaceArtifact.SetUIAnim(ui_anim); spaceArtifact.SetArtifactTier(artifact_tier); gameObject.AddOrGet <KSelectable>(); gameObject.GetComponent <KBatchedAnimController>().initialMode = KAnim.PlayMode.Loop; postInitFn?.Invoke(gameObject); KPrefabID component = gameObject.GetComponent <KPrefabID>(); component.AddTag(GameTags.PedestalDisplayable, false); component.AddTag(GameTags.Artifact, false); return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = HatchVeggieConfig.CreateHatch("HatchVeggieBaby", CREATURES.SPECIES.HATCH.VARIANT_VEGGIE.BABY.NAME, CREATURES.SPECIES.HATCH.VARIANT_VEGGIE.BABY.DESC, "baby_hatch_kanim", true); EntityTemplates.ExtendEntityToBeingABaby(gameObject, "HatchVeggie", null); return(gameObject); }
public GameObject CreatePrefab() { string id = "ShockWorm"; string name = STRINGS.CREATURES.SPECIES.SHOCKWORM.NAME; string desc = STRINGS.CREATURES.SPECIES.SHOCKWORM.DESC; float mass = 50f; KAnimFile anim = Assets.GetAnim("shockworm_kanim"); string initialAnim = "idle"; EffectorValues tIER = DECOR.BONUS.TIER0; GameObject gameObject = EntityTemplates.CreatePlacedEntity(id, name, desc, mass, anim, initialAnim, Grid.SceneLayer.Creatures, 1, 2, tIER, default(EffectorValues), SimHashes.Creature, null, 293f); GameObject template = gameObject; FactionManager.FactionID faction = FactionManager.FactionID.Hostile; initialAnim = null; desc = "FlyerNavGrid1x2"; NavType navType = NavType.Hover; mass = 2f; name = "Meat"; int onDeathDropCount = 3; float fREEZING_ = TUNING.CREATURES.TEMPERATURE.FREEZING_1; float hOT_ = TUNING.CREATURES.TEMPERATURE.HOT_1; EntityTemplates.ExtendEntityToBasicCreature(template, faction, initialAnim, desc, navType, 32, mass, name, onDeathDropCount, true, true, fREEZING_, hOT_, TUNING.CREATURES.TEMPERATURE.FREEZING_2, TUNING.CREATURES.TEMPERATURE.HOT_2); gameObject.AddOrGet <LoopingSounds>(); Weapon weapon = gameObject.AddWeapon(3f, 6f, AttackProperties.DamageType.Standard, AttackProperties.TargetType.AreaOfEffect, 10, 4f); weapon.AddEffect("WasAttacked", 1f); SoundEventVolumeCache.instance.AddVolume("shockworm_kanim", "Shockworm_attack_arc", NOISE_POLLUTION.CREATURES.TIER6); return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = RobotOilfloaterConfig.CreateOilfloater(ID, PHO_STRINGS.VARIANT_ROBOT.BABY.NAME, PHO_STRINGS.VARIANT_ROBOT.BABY.DESC, "custom_baby_oilfloater_kanim", true); EntityTemplates.ExtendEntityToBeingABaby(gameObject, "RobotOilfloater"); return(gameObject); }
public static GameObject CreateOilfloater(string id, string name, string desc, string anim_file, bool is_baby) { GameObject prefab = BaseOilFloaterConfig.BaseOilFloater(id, name, desc, anim_file, BASE_TRAIT_ID, 523.15f, 743.15f, is_baby, variantSprite); EntityTemplates.ExtendEntityToWildCreature(prefab, OilFloaterTuning.PEN_SIZE_PER_CREATURE); int count = (int)prefab.AddOrGet <PrimaryElement>().Mass; string[] loot = new string[count]; for (int i = 0; i < count; i++) { loot[i] = "Steel"; } prefab.AddOrGet <Butcherable>().SetDrops(loot); DiseaseDropper.Def def = prefab.AddOrGetDef <DiseaseDropper.Def>(); def.diseaseIdx = Db.Get().Diseases.GetIndex(Db.Get().Diseases.ZombieSpores.id); def.emitFrequency = 1f; def.averageEmitPerSecond = 200; def.singleEmitQuantity = 10000; Trait trait = Db.Get().CreateTrait(BASE_TRAIT_ID, name, name, null, false, null, true, true); trait.Add(new AttributeModifier(Db.Get().Amounts.Calories.maxAttribute.Id, OilFloaterTuning.STANDARD_STOMACH_SIZE, name, false, false, true)); trait.Add(new AttributeModifier(Db.Get().Amounts.Calories.deltaAttribute.Id, -OilFloaterTuning.STANDARD_CALORIES_PER_CYCLE / 600f, name, false, false, true)); trait.Add(new AttributeModifier(Db.Get().Amounts.HitPoints.maxAttribute.Id, HITPOINTS.TIER1, name, false, false, true)); trait.Add(new AttributeModifier(Db.Get().Amounts.Age.maxAttribute.Id, LIFESPAN.TIER3, name, false, false, true)); List <Diet.Info> diet_infos = DietInfo(GameTags.Steel, CALORIES_PER_KG_OF_ORE, CONVERSION_EFFICIENCY.GOOD_1, null, 0f); return(OilFloaters.SetupDiet(prefab, diet_infos, CALORIES_PER_KG_OF_ORE, MIN_POOP_SIZE_IN_KG, 5 * Patches.Settings.ConsumptionMultiplier)); }
public GameObject CreatePrefab() { GameObject looseEntity = EntityTemplates.CreateLooseEntity(ID, Name, Description, 1f, true, Assets.GetAnim((HashedString)"mending_serum_kanim"), "object", Grid.SceneLayer.Front, EntityTemplates.CollisionShape.RECTANGLE, 0.8f, 0.4f, true, 0, SimHashes.Creature, (List <Tag>)null); MedicineInfo medicine_info = new MedicineInfo(ID.ToLower(), Effect_, MedicineInfo.MedicineType.Booster, "AdvancedDoctorStation", (string[])null); EntityTemplates.ExtendEntityToMedicine(looseEntity, medicine_info); looseEntity.GetComponent <KPrefabID>().AddTag(GameTags.MedicalSupplies, false); ComplexRecipe.RecipeElement[] ingredients = new ComplexRecipe.RecipeElement[3] { new ComplexRecipe.RecipeElement((Tag)RawEggConfig.ID, 3f), new ComplexRecipe.RecipeElement((Tag)NectarConfig.Id, 10f), new ComplexRecipe.RecipeElement((Tag)SwampLilyFlowerConfig.ID, 1f) }; ComplexRecipe.RecipeElement[] results = new ComplexRecipe.RecipeElement[1] { new ComplexRecipe.RecipeElement((Tag)ID, 1f) }; MendingSerumConfig.recipe = new ComplexRecipe(ComplexRecipeManager.MakeRecipeID("Apothecary", (IList <ComplexRecipe.RecipeElement>)ingredients, (IList <ComplexRecipe.RecipeElement>)results), ingredients, results, 0) { time = 200f, description = (string)Description, nameDisplay = ComplexRecipe.RecipeNameDisplay.Result, fabricators = new List <Tag>() { (Tag)"Apothecary" }, sortOrder = 20, requiredTech = AdvancedCureConfig.recipe.requiredTech// "MedicineIV" }; return(looseEntity); }
public GameObject CreatePrefab() { GameObject gameObject = PacuTropicalConfig.CreatePacu("PacuTropicalBaby", CREATURES.SPECIES.PACU.VARIANT_TROPICAL.BABY.NAME, CREATURES.SPECIES.PACU.VARIANT_TROPICAL.BABY.DESC, "baby_pacu_kanim", true); EntityTemplates.ExtendEntityToBeingABaby(gameObject, "PacuTropical", null); return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = LightBugPurpleConfig.CreateLightBug("LightBugPurpleBaby", CREATURES.SPECIES.LIGHTBUG.VARIANT_PURPLE.BABY.NAME, CREATURES.SPECIES.LIGHTBUG.VARIANT_PURPLE.BABY.DESC, "baby_lightbug_kanim", true); EntityTemplates.ExtendEntityToBeingABaby(gameObject, "LightBugPurple", null); return(gameObject); }
public static GameObject CreateHatch( string id, string name, string desc, string anim_file, bool is_baby) { GameObject wildCreature = EntityTemplates.ExtendEntityToWildCreature( BaseHatchConfig.BaseHatch( id, name, desc, anim_file, BaseTraitId, is_baby, SymbolOverride ), HatchTuning.PEN_SIZE_PER_CREATURE, MaxAge); CreateTrait(name); List <Diet.Info> diet_infos = SturdyDiet( poopTag: EmitElement.CreateTag(), caloriesPerKg: CaloriesPerKgOfFood, producedConversionRate: TUNING.CREATURES.CONVERSION_EFFICIENCY.NORMAL);//nerfed effiendy from 3 to normal wildCreature.AddOrGet <DecorProvider>()?.SetValues(tier); return(BaseHatchConfig.SetupDiet(wildCreature, diet_infos, CaloriesPerKgOfFood, MinPoopSizeKg)); }
public GameObject CreatePrefab() { string id = "BabyCrabShell"; string name = ITEMS.INDUSTRIAL_PRODUCTS.CRAB_SHELL.NAME; string desc = ITEMS.INDUSTRIAL_PRODUCTS.CRAB_SHELL.DESC; float mass = 5f; bool unitMass = true; KAnimFile anim = Assets.GetAnim("crabshells_small_kanim"); string initialAnim = "object"; Grid.SceneLayer sceneLayer = Grid.SceneLayer.Front; EntityTemplates.CollisionShape collisionShape = EntityTemplates.CollisionShape.RECTANGLE; float width = 0.9f; float height = 0.6f; bool isPickupable = true; List <Tag> list = new List <Tag>(); list.Add(GameTags.IndustrialIngredient); list.Add(GameTags.Organics); list = list; GameObject gameObject = EntityTemplates.CreateLooseEntity(id, name, desc, mass, unitMass, anim, initialAnim, sceneLayer, collisionShape, width, height, isPickupable, 0, SimHashes.Creature, list); gameObject.AddOrGet <EntitySplitter>(); gameObject.AddOrGet <SimpleMassStatusItem>(); EntityTemplates.CreateAndRegisterCompostableFromPrefab(gameObject); return(gameObject); }
public GameObject CreatePrefab() { return(EntityTemplates.ExtendEntityToFertileCreature( EntityTemplates.ExtendEntityToWildCreature( CreatePacu(ID, NAME, DESCRIPTION, "custompacu_kanim", false), PacuTuning.PEN_SIZE_PER_CREATURE, 25f), EGG_ID, EGG_NAME, DESCRIPTION, "egg_custompacu_kanim", PacuTuning.EGG_MASS, BabyBetaPacuConfig.ID, 15f, 5f, CustomPacuTuning.EGG_CHANCES_BETA, EGG_SORT_ORDER, false, true, false, 0.75f)); }
public GameObject CreatePrefab() { var looseEntity = EntityTemplates.CreateLooseEntity( id: Id, name: Name, desc: Description, mass: 1f, unitMass: false, anim: Assets.GetAnim("cactusflower_kanim"), initialAnim: "object", sceneLayer: Grid.SceneLayer.Front, collisionShape: EntityTemplates.CollisionShape.RECTANGLE, width: 0.6f, height: 0.4f, isPickupable: true); var foodInfo = new EdiblesManager.FoodInfo( id: Id, caloriesPerUnit: 1200000f, quality: TUNING.FOOD.FOOD_QUALITY_GOOD, preserveTemperatue: 255.15f, rotTemperature: 277.15f, spoilTime: 3600f, can_rot: true); var foodEntity = EntityTemplates.ExtendEntityToFood( template: looseEntity, foodInfo: foodInfo); return(foodEntity); }
public GameObject CreatePrefab() { GameObject gameObject = EntityTemplates.CreatePlacedEntity("GeneShuffler", STRINGS.BUILDINGS.PREFABS.GENESHUFFLER.NAME, STRINGS.BUILDINGS.PREFABS.GENESHUFFLER.DESC, 2000f, Assets.GetAnim("geneshuffler_kanim"), "on", Grid.SceneLayer.Building, 4, 3, TUNING.BUILDINGS.DECOR.BONUS.TIER0, NOISE_POLLUTION.NOISY.TIER0, SimHashes.Creature, null, 293f); gameObject.AddTag(GameTags.NotRoomAssignable); PrimaryElement component = gameObject.GetComponent <PrimaryElement>(); component.SetElement(SimHashes.Unobtanium); component.Temperature = 294.15f; gameObject.AddOrGet <Operational>(); gameObject.AddOrGet <Notifier>(); gameObject.AddOrGet <GeneShuffler>(); gameObject.AddOrGet <LoreBearer>(); gameObject.AddOrGet <LoopingSounds>(); gameObject.AddOrGet <Ownable>(); gameObject.AddOrGet <Prioritizable>(); Storage storage = gameObject.AddOrGet <Storage>(); storage.dropOnLoad = true; ManualDeliveryKG manualDeliveryKG = gameObject.AddOrGet <ManualDeliveryKG>(); manualDeliveryKG.SetStorage(storage); manualDeliveryKG.choreTypeIDHash = Db.Get().ChoreTypes.MachineFetch.IdHash; manualDeliveryKG.requestedItemTag = new Tag("GeneShufflerRecharge"); manualDeliveryKG.refillMass = 1f; manualDeliveryKG.minimumMass = 1f; manualDeliveryKG.capacity = 1f; KBatchedAnimController kBatchedAnimController = gameObject.AddOrGet <KBatchedAnimController>(); kBatchedAnimController.sceneLayer = Grid.SceneLayer.BuildingBack; kBatchedAnimController.fgLayer = Grid.SceneLayer.BuildingFront; return(gameObject); }
public static GameObject CreateMole(string id, string name, string desc, string anim_file, bool is_baby = false) { GameObject gameObject = BaseMoleConfig.BaseMole(id, name, STRINGS.CREATURES.SPECIES.MOLE.DESC, "MoleBaseTrait", anim_file, is_baby); gameObject.AddTag(GameTags.Creatures.Digger); EntityTemplates.ExtendEntityToWildCreature(gameObject, MoleTuning.PEN_SIZE_PER_CREATURE, 100f); Trait trait = Db.Get().CreateTrait("MoleBaseTrait", name, name, null, false, null, true, true); trait.Add(new AttributeModifier(Db.Get().Amounts.Calories.maxAttribute.Id, MoleTuning.STANDARD_STOMACH_SIZE, name, false, false, true)); trait.Add(new AttributeModifier(Db.Get().Amounts.Calories.deltaAttribute.Id, (0f - MoleTuning.STANDARD_CALORIES_PER_CYCLE) / 600f, name, false, false, true)); trait.Add(new AttributeModifier(Db.Get().Amounts.HitPoints.maxAttribute.Id, 25f, name, false, false, true)); trait.Add(new AttributeModifier(Db.Get().Amounts.Age.maxAttribute.Id, 100f, name, false, false, true)); List <Tag> list = new List <Tag>(); list.Add(SimHashes.Regolith.CreateTag()); list.Add(SimHashes.Dirt.CreateTag()); list.Add(SimHashes.IronOre.CreateTag()); List <Diet.Info> list2 = BaseMoleConfig.SimpleOreDiet(list, CALORIES_PER_KG_OF_DIRT, TUNING.CREATURES.CONVERSION_EFFICIENCY.NORMAL); Diet diet = new Diet(list2.ToArray()); CreatureCalorieMonitor.Def def = gameObject.AddOrGetDef <CreatureCalorieMonitor.Def>(); def.diet = diet; def.minPoopSizeInCalories = MIN_POOP_SIZE_IN_CALORIES; SolidConsumerMonitor.Def def2 = gameObject.AddOrGetDef <SolidConsumerMonitor.Def>(); def2.diet = diet; OvercrowdingMonitor.Def def3 = gameObject.AddOrGetDef <OvercrowdingMonitor.Def>(); def3.spaceRequiredPerCreature = 0; gameObject.AddOrGet <LoopingSounds>(); return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = CrabConfig.CreateCrab("CrabBaby", CREATURES.SPECIES.CRAB.BABY.NAME, CREATURES.SPECIES.CRAB.BABY.DESC, "baby_pincher_kanim", true, "BabyCrabShell"); EntityTemplates.ExtendEntityToBeingABaby(gameObject, "Crab", "BabyCrabShell"); return(gameObject); }
public void Generate(EntityOutputStream snapshotOutputStream) { snapshotOutputStream.WriteEntity( entityIdGenerator.getNextId(), EntityTemplates.CreateCentralEntity(CENTRE_LAT, CENTRE_LON) ); }
public GameObject CreatePrefab() { GameObject gameObject = EthanolOilfloaterConfig.CreateOilfloater(ID, PHO_STRINGS.VARIANT_ETHANOL.BABY.NAME, PHO_STRINGS.VARIANT_ETHANOL.BABY.DESC, "custom_baby_oilfloater_kanim", true); EntityTemplates.ExtendEntityToBeingABaby(gameObject, "EthanolOilfloater", null); return(gameObject); }
public static GameObject CreateCritter( string id, string name, string desc, string anim_file, bool is_baby) { GameObject wildCreature = EntityTemplates.ExtendEntityToWildCreature(BaseDreckoConfig.BaseDrecko(id, name, desc, anim_file, BASE_TRAIT_ID, is_baby, (string)null, 308.15f, 363.15f), DreckoTuning.PEN_SIZE_PER_CREATURE); CreateTrait(name); Diet diet = new Diet(new Diet.Info[1] { new Diet.Info(new HashSet <Tag>() { (Tag)SeaLettuceConfig.ID }, AlgaeDrecko.POOP_ELEMENT, AlgaeDrecko.CALORIES_PER_DAY_OF_PLANT_EATEN, AlgaeDrecko.KG_POOP_PER_DAY_OF_PLANT, (string)null, 0.0f, false, true) }); CreatureCalorieMonitor.Def def1 = wildCreature.AddOrGetDef <CreatureCalorieMonitor.Def>(); def1.diet = diet; def1.minPoopSizeInCalories = AlgaeDrecko.MIN_POOP_SIZE_IN_CALORIES; wildCreature.AddOrGetDef <SolidConsumerMonitor.Def>().diet = diet; ScaleGrowthMonitor.Def def2 = wildCreature.AddOrGetDef <ScaleGrowthMonitor.Def>(); def2.defaultGrowthRate = (float)(1.0 / (double)AlgaeDrecko.SCALE_GROWTH_TIME_IN_CYCLES / 600.0); def2.dropMass = AlgaeDrecko.FIBER_PER_CYCLE * AlgaeDrecko.SCALE_GROWTH_TIME_IN_CYCLES; def2.itemDroppedOnShear = AlgaeDrecko.EMIT_ELEMENT; def2.levelCount = 6; def2.targetAtmosphere = SimHashes.CarbonDioxide; return(wildCreature); }
public GameObject CreatePrefab() { GameObject prefab = CreatePacu("PacuCleaner", STRINGS.CREATURES.SPECIES.PACU.VARIANT_CLEANER.NAME, STRINGS.CREATURES.SPECIES.PACU.VARIANT_CLEANER.DESC, "pacu_kanim", false); prefab = EntityTemplates.ExtendEntityToWildCreature(prefab, PacuTuning.PEN_SIZE_PER_CREATURE, 25f); return(EntityTemplates.ExtendEntityToFertileCreature(prefab, "PacuCleanerEgg", STRINGS.CREATURES.SPECIES.PACU.VARIANT_CLEANER.EGG_NAME, STRINGS.CREATURES.SPECIES.PACU.VARIANT_CLEANER.DESC, "egg_pacu_kanim", PacuTuning.EGG_MASS, "PacuCleanerBaby", 15.000001f, 5f, PacuTuning.EGG_CHANCES_CLEANER, 501, false, true, false, 0.75f)); }
public GameObject CreatePrefab() { GameObject gameObject = FrozenOilfloaterConfig.CreateOilfloater(ID, PHO_STRINGS.VARIANT_FROZEN.BABY.NAME, PHO_STRINGS.VARIANT_FROZEN.BABY.DESC, kanim_id, true); EntityTemplates.ExtendEntityToBeingABaby(gameObject, "FrozenOilfloater"); return(gameObject); }
public GameObject CreatePrefab() { string id = "BasicForagePlantPlanted"; string name = STRINGS.CREATURES.SPECIES.BASICFORAGEPLANTPLANTED.NAME; string desc = STRINGS.CREATURES.SPECIES.BASICFORAGEPLANTPLANTED.DESC; float mass = 100f; KAnimFile anim = Assets.GetAnim("muckroot_kanim"); string initialAnim = "idle"; EffectorValues tIER = DECOR.BONUS.TIER1; GameObject gameObject = EntityTemplates.CreatePlacedEntity(id, name, desc, mass, anim, initialAnim, Grid.SceneLayer.BuildingBack, 1, 1, tIER, default(EffectorValues), SimHashes.Creature, null, 293f); gameObject.AddOrGet <SimTemperatureTransfer>(); OccupyArea occupyArea = gameObject.AddOrGet <OccupyArea>(); occupyArea.objectLayers = new ObjectLayer[1] { ObjectLayer.Building }; gameObject.AddOrGet <EntombVulnerable>(); gameObject.AddOrGet <DrowningMonitor>(); gameObject.AddOrGet <Prioritizable>(); gameObject.AddOrGet <Uprootable>(); gameObject.AddOrGet <UprootedMonitor>(); gameObject.AddOrGet <Harvestable>(); gameObject.AddOrGet <HarvestDesignatable>(); SeedProducer seedProducer = gameObject.AddOrGet <SeedProducer>(); seedProducer.Configure("BasicForagePlant", SeedProducer.ProductionType.DigOnly, 1); gameObject.AddOrGet <BasicForagePlantPlanted>(); gameObject.AddOrGet <KBatchedAnimController>().randomiseLoopedOffset = true; return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = AquaOilfloaterConfig.CreateOilfloater(ID, PHO_STRINGS.VARIANT_AQUA.BABY.NAME, PHO_STRINGS.VARIANT_AQUA.BABY.DESC, "baby_aqua_oilfloater_kanim", true); EntityTemplates.ExtendEntityToBeingABaby(gameObject, "AquaOilfloater"); return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = EntityTemplates.CreatePlacedEntity("SetLocker", STRINGS.BUILDINGS.PREFABS.SETLOCKER.NAME, STRINGS.BUILDINGS.PREFABS.SETLOCKER.DESC, 100f, Assets.GetAnim("setpiece_locker_kanim"), "on", Grid.SceneLayer.Building, 1, 2, TUNING.BUILDINGS.DECOR.BONUS.TIER0, NOISE_POLLUTION.NOISY.TIER0, SimHashes.Creature, null, 293f); PrimaryElement component = gameObject.GetComponent <PrimaryElement>(); component.SetElement(SimHashes.Unobtanium); component.Temperature = 294.15f; Workable workable = gameObject.AddOrGet <Workable>(); workable.synchronizeAnims = false; workable.resetProgressOnStop = true; SetLocker setLocker = gameObject.AddOrGet <SetLocker>(); setLocker.overrideAnim = "anim_interacts_clothingfactory_kanim"; setLocker.dropOffset = new Vector2I(0, 1); setLocker.possible_contents_ids = new string[3] { "Warm_Vest", "Cool_Vest", "Funky_Vest" }; gameObject.AddOrGet <LoreBearer>(); OccupyArea occupyArea = gameObject.AddOrGet <OccupyArea>(); occupyArea.objectLayers = new ObjectLayer[1] { ObjectLayer.Building }; return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = EntityTemplates.CreatePlacedEntity("Geyser", STRINGS.CREATURES.SPECIES.GEYSER.NAME, STRINGS.CREATURES.SPECIES.GEYSER.DESC, 2000f, Assets.GetAnim("geyser_side_steam_kanim"), "inactive", Grid.SceneLayer.BuildingBack, 4, 2, TUNING.BUILDINGS.DECOR.BONUS.TIER1, NOISE_POLLUTION.NOISY.TIER6, SimHashes.Creature, null, 293f); gameObject.GetComponent <KPrefabID>().AddTag(GameTags.DeprecatedContent, false); PrimaryElement component = gameObject.GetComponent <PrimaryElement>(); component.SetElement(SimHashes.IgneousRock); component.Temperature = 372.15f; Geyser geyser = gameObject.AddOrGet <Geyser>(); geyser.outputOffset = new Vector2I(0, 1); GeyserConfigurator geyserConfigurator = gameObject.AddOrGet <GeyserConfigurator>(); geyserConfigurator.presetType = "steam"; geyserConfigurator.presetMin = 0.5f; geyserConfigurator.presetMax = 0.75f; Studyable studyable = gameObject.AddOrGet <Studyable>(); studyable.meterTrackerSymbol = "geotracker_target"; studyable.meterAnim = "tracker"; gameObject.AddOrGet <LoopingSounds>(); SoundEventVolumeCache.instance.AddVolume("geyser_side_steam_kanim", "Geyser_shake_LP", NOISE_POLLUTION.NOISY.TIER5); SoundEventVolumeCache.instance.AddVolume("geyser_side_steam_kanim", "Geyser_erupt_LP", NOISE_POLLUTION.NOISY.TIER6); return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = CreateOilFloater(ID, PHO_STRINGS.VARIANT_OWO.NAME, PHO_STRINGS.VARIANT_OWO.DESC, base_kanim_id, false); DecorProvider decorProvider = gameObject.AddOrGet <DecorProvider>(); decorProvider.SetValues(TUNING.DECOR.BONUS.TIER5); EffectArea owoEffect = gameObject.AddComponent <EffectArea>(); owoEffect.EffectName = "OwO_effect"; owoEffect.Area = 5; EntityTemplates.ExtendEntityToFertileCreature(gameObject, EGG_ID, PHO_STRINGS.VARIANT_OWO.EGG_NAME, PHO_STRINGS.VARIANT_OWO.DESC, egg_kanim_id, OilFloaterTuning.EGG_MASS, ID + "Baby", 60.0000038f, 20f, EGG_CHANCES_OWO, EGG_SORT_ORDER, true, false, true, 1f); return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = CreateOilFloater("Oilfloater", STRINGS.CREATURES.SPECIES.OILFLOATER.NAME, STRINGS.CREATURES.SPECIES.OILFLOATER.DESC, "oilfloater_kanim", false); EntityTemplates.ExtendEntityToFertileCreature(gameObject, "OilfloaterEgg", STRINGS.CREATURES.SPECIES.OILFLOATER.EGG_NAME, STRINGS.CREATURES.SPECIES.OILFLOATER.DESC, "egg_oilfloater_kanim", OilFloaterTuning.EGG_MASS, "OilfloaterBaby", 60.0000038f, 20f, OilFloaterTuning.EGG_CHANCES_BASE, EGG_SORT_ORDER, true, false, true, 1f); return(gameObject); }
/// <summary> /// Gets a blank file for the save file. Adapts it to the save file. /// </summary> /// <param name="sav">Save File to fetch a template for</param> /// <returns>Template if it exists, or a blank <see cref="PKM"/> from the <see cref="sav"/></returns> private static PKM LoadTemplateInternal(this SaveFile sav) { var pk = sav.BlankPKM; EntityTemplates.TemplateFields(pk, sav); return(pk); }
public GameObject CreatePrefab() { GameObject gameObject = CreateLightBug("LightBugPurple", STRINGS.CREATURES.SPECIES.LIGHTBUG.VARIANT_PURPLE.NAME, STRINGS.CREATURES.SPECIES.LIGHTBUG.VARIANT_PURPLE.DESC, "lightbug_kanim", false); EntityTemplates.ExtendEntityToFertileCreature(gameObject, "LightBugPurpleEgg", STRINGS.CREATURES.SPECIES.LIGHTBUG.VARIANT_PURPLE.EGG_NAME, STRINGS.CREATURES.SPECIES.LIGHTBUG.VARIANT_PURPLE.DESC, "egg_lightbug_kanim", LightBugTuning.EGG_MASS, "LightBugPurpleBaby", 15.000001f, 5f, LightBugTuning.EGG_CHANCES_PURPLE, EGG_SORT_ORDER, true, false, true, 1f); return(gameObject); }
public GameObject CreatePrefab() { var entity = EntityTemplates.CreateLooseEntity( id: Id, name: NameWithLink, desc: Description, mass: 1f, unitMass: false, anim: Assets.GetAnim("kukumelon_kanim"), initialAnim: "object", sceneLayer: Grid.SceneLayer.Front, collisionShape: EntityTemplates.CollisionShape.RECTANGLE, width: 0.8f, height: 0.7f, isPickupable: true); var foodInfo = new EdiblesManager.FoodInfo( id: Id, caloriesPerUnit: 2000000f, quality: 6, preserveTemperatue: 255.15f, rotTemperature: 277.15f, spoilTime: TUNING.FOOD.SPOIL_TIME.SLOW, can_rot: true); var food = EntityTemplates.ExtendEntityToFood(entity, foodInfo); new Recipe(Id, 1f, 0, null, RecipeDescription, 25) .SetFabricator(CookingStationConfig.ID, 100f) .AddIngredient(new Recipe.Ingredient(PalmeraBerryConfig.Id, 1f)); return(food); }
public static GameObject CreatePuftAlpha(string id, string name, string desc, string anim_file, bool is_baby) { string symbol_override_prefix = "alp_"; GameObject prefab = BasePuftConfig.BasePuft(id, name, desc, "PuftAlphaBaseTrait", anim_file, is_baby, symbol_override_prefix, 258.15f, 338.15f); EntityTemplates.ExtendEntityToWildCreature(prefab, PuftTuning.PEN_SIZE_PER_CREATURE, 75f); Trait trait = Db.Get().CreateTrait("PuftAlphaBaseTrait", name, name, null, false, null, true, true); trait.Add(new AttributeModifier(Db.Get().Amounts.Calories.maxAttribute.Id, PuftTuning.STANDARD_STOMACH_SIZE, name, false, false, true)); trait.Add(new AttributeModifier(Db.Get().Amounts.Calories.deltaAttribute.Id, (0f - PuftTuning.STANDARD_CALORIES_PER_CYCLE) / 600f, name, false, false, true)); trait.Add(new AttributeModifier(Db.Get().Amounts.HitPoints.maxAttribute.Id, 25f, name, false, false, true)); trait.Add(new AttributeModifier(Db.Get().Amounts.Age.maxAttribute.Id, 75f, name, false, false, true)); List <Diet.Info> list = new List <Diet.Info>(); list.Add(new Diet.Info(new HashSet <Tag>(new Tag[1] { SimHashes.ContaminatedOxygen.CreateTag() }), SimHashes.SlimeMold.CreateTag(), CALORIES_PER_KG_OF_ORE, TUNING.CREATURES.CONVERSION_EFFICIENCY.BAD_2, "SlimeLung", 1000f, false, false)); list.Add(new Diet.Info(new HashSet <Tag>(new Tag[1] { SimHashes.ChlorineGas.CreateTag() }), SimHashes.BleachStone.CreateTag(), CALORIES_PER_KG_OF_ORE, TUNING.CREATURES.CONVERSION_EFFICIENCY.BAD_2, "SlimeLung", 1000f, false, false)); list.Add(new Diet.Info(new HashSet <Tag>(new Tag[1] { SimHashes.Oxygen.CreateTag() }), SimHashes.OxyRock.CreateTag(), CALORIES_PER_KG_OF_ORE, TUNING.CREATURES.CONVERSION_EFFICIENCY.BAD_2, "SlimeLung", 1000f, false, false)); prefab = BasePuftConfig.SetupDiet(prefab, list.ToArray(), CALORIES_PER_KG_OF_ORE, MIN_POOP_SIZE_IN_KG); DiseaseSourceVisualizer diseaseSourceVisualizer = prefab.AddOrGet <DiseaseSourceVisualizer>(); diseaseSourceVisualizer.alwaysShowDisease = "SlimeLung"; return(prefab); }