public GameObject CreatePrefab() { GameObject gameObject = EntityTemplates.CreateEntity(ID, ID, true); gameObject.AddOrGet <Storage>(); gameObject.AddTag(GameTags.NotConversationTopic); return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = EntityTemplates.CreateEntity(ID, ID, false); gameObject.AddTag(GameTags.NotConversationTopic); gameObject.AddOrGet <OneshotReactableHost>(); return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = EntityTemplates.CreateEntity(ID, ID, false); gameObject.AddTag(GameTags.NotConversationTopic); gameObject.AddOrGet <Approachable>(); return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = EntityTemplates.CreateEntity(ID, ID, false); gameObject.AddOrGet <KBatchedAnimController>(); gameObject.AddOrGet <KBatchedAnimTracker>(); return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = EntityTemplates.CreateEntity(ID, ID, true); gameObject.AddOrGet <SaveLoadRoot>(); gameObject.AddOrGet <Ownables>(); gameObject.AddOrGet <Equipment>(); gameObject.AddOrGet <MinionAssignablesProxy>(); return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = EntityTemplates.CreateEntity(ID, ID, false); KBatchedAnimController kBatchedAnimController = gameObject.AddOrGet <KBatchedAnimController>(); kBatchedAnimController.AnimFiles = new KAnimFile[1] { Assets.GetAnim("anim_blinks_kanim") }; return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = EntityTemplates.CreateEntity("FishFeederBot", "FishFeederBot", true); KBatchedAnimController kBatchedAnimController = gameObject.AddOrGet <KBatchedAnimController>(); kBatchedAnimController.AnimFiles = new KAnimFile[1] { Assets.GetAnim("fishfeeder_kanim") }; kBatchedAnimController.sceneLayer = Grid.SceneLayer.BuildingBack; SymbolOverrideControllerUtil.AddToPrefab(kBatchedAnimController.gameObject); return(gameObject); }
public GameObject CreatePrefab(string id, string name, Material default_material) { GameObject gameObject = EntityTemplates.CreateEntity(id, name, true); gameObject.layer = LayerMask.NameToLayer("PlaceWithDepth"); gameObject.AddOrGet <SaveLoadRoot>(); gameObject.AddOrGet <StateMachineController>(); Prioritizable prioritizable = gameObject.AddOrGet <Prioritizable>(); prioritizable.iconOffset = new Vector2(0.3f, 0.32f); KBoxCollider2D kBoxCollider2D = gameObject.AddOrGet <KBoxCollider2D>(); kBoxCollider2D.offset = new Vector2(0f, 0.5f); kBoxCollider2D.size = new Vector2(1f, 1f); GameObject gameObject2 = new GameObject("Mask"); gameObject2.layer = LayerMask.NameToLayer("PlaceWithDepth"); gameObject2.transform.parent = gameObject.transform; gameObject2.transform.SetLocalPosition(new Vector3(0f, 0.5f, -3.537f)); gameObject2.transform.eulerAngles = new Vector3(0f, 180f, 0f); MeshFilter meshFilter = gameObject2.AddComponent <MeshFilter>(); meshFilter.sharedMesh = Assets.instance.commonPlacerAssets.mesh; MeshRenderer meshRenderer = gameObject2.AddComponent <MeshRenderer>(); meshRenderer.lightProbeUsage = LightProbeUsage.Off; meshRenderer.reflectionProbeUsage = ReflectionProbeUsage.Off; meshRenderer.shadowCastingMode = ShadowCastingMode.Off; meshRenderer.receiveShadows = false; meshRenderer.sharedMaterial = default_material; EasingAnimations easingAnimations = gameObject2.AddComponent <EasingAnimations>(); EasingAnimations.AnimationScales animationScales = default(EasingAnimations.AnimationScales); animationScales.name = "ScaleUp"; animationScales.startScale = 0f; animationScales.endScale = 1f; animationScales.type = EasingAnimations.AnimationScales.AnimationType.EaseInOutBack; animationScales.easingMultiplier = 5f; EasingAnimations.AnimationScales animationScales2 = default(EasingAnimations.AnimationScales); animationScales2.name = "ScaleDown"; animationScales2.startScale = 1f; animationScales2.endScale = 0f; animationScales2.type = EasingAnimations.AnimationScales.AnimationType.EaseOutBack; animationScales2.easingMultiplier = 1f; easingAnimations.scales = new EasingAnimations.AnimationScales[2] { animationScales, animationScales2 }; return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = EntityTemplates.CreateEntity(ID, ID, true); RectTransform rectTransform = gameObject.AddOrGet <RectTransform>(); rectTransform.anchorMin = new Vector2(0f, 0f); rectTransform.anchorMax = new Vector2(1f, 1f); rectTransform.pivot = new Vector2(0.5f, 0f); rectTransform.anchoredPosition = new Vector2(0f, 0f); rectTransform.sizeDelta = new Vector2(0f, 0f); LayoutElement layoutElement = gameObject.AddOrGet <LayoutElement>(); layoutElement.preferredHeight = 100f; layoutElement.preferredWidth = 100f; gameObject.AddOrGet <Effects>(); gameObject.AddOrGet <Traits>(); MinionModifiers minionModifiers = gameObject.AddOrGet <MinionModifiers>(); minionModifiers.initialTraits = new string[1] { MinionConfig.MINION_BASE_TRAIT_ID }; MinionConfig.AddMinionAmounts(minionModifiers); gameObject.AddOrGet <AttributeLevels>(); gameObject.AddOrGet <AttributeConverters>(); MinionIdentity minionIdentity = gameObject.AddOrGet <MinionIdentity>(); minionIdentity.addToIdentityList = false; BoxCollider2D boxCollider2D = gameObject.AddOrGet <BoxCollider2D>(); boxCollider2D.size = new Vector2(1f, 1f); gameObject.AddOrGet <FaceGraph>(); gameObject.AddOrGet <Accessorizer>(); KBatchedAnimController kBatchedAnimController = gameObject.AddOrGet <KBatchedAnimController>(); kBatchedAnimController.materialType = KAnimBatchGroup.MaterialType.UI; kBatchedAnimController.animScale = 0.5f; kBatchedAnimController.setScaleFromAnim = false; kBatchedAnimController.animOverrideSize = new Vector2(100f, 120f); kBatchedAnimController.AnimFiles = new KAnimFile[4] { Assets.GetAnim("body_comp_default_kanim"), Assets.GetAnim("anim_construction_default_kanim"), Assets.GetAnim("anim_idles_default_kanim"), Assets.GetAnim("anim_cheer_kanim") }; SymbolOverrideControllerUtil.AddToPrefab(gameObject); MinionConfig.ConfigureSymbols(gameObject); return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = EntityTemplates.CreateEntity(ID, ID, true); KBatchedAnimController kBatchedAnimController = gameObject.AddOrGet <KBatchedAnimController>(); kBatchedAnimController.AnimFiles = new KAnimFile[1] { Assets.GetAnim("earth_kanim") }; kBatchedAnimController.isMovable = true; kBatchedAnimController.initialAnim = "idle"; kBatchedAnimController.initialMode = KAnim.PlayMode.Loop; kBatchedAnimController.visibilityType = KAnimControllerBase.VisibilityType.OffscreenUpdate; gameObject.AddOrGet <LoopingSounds>(); return(gameObject); }
private KBatchedAnimController AddEffect() { var id = "FabulousFx"; GameObject template = EntityTemplates.CreateEntity(id, id, false); KBatchedAnimController controller = template.AddOrGet <KBatchedAnimController>(); controller.materialType = KAnimBatchGroup.MaterialType.Simple; controller.initialAnim = ""; controller.initialMode = KAnim.PlayMode.Paused; controller.isMovable = true; controller.destroyOnAnimComplete = false; controller.AnimFiles = new KAnimFile[] { Assets.GetAnim("fab_fx_kanim") }; return(controller); }
public List <GameObject> CreatePrefabs() { List <GameObject> list = new List <GameObject>(); List <GeyserPrefabParams> configs = GenerateConfigs(); foreach (GeyserPrefabParams item in configs) { GeyserPrefabParams current = item; list.Add(CreateGeyser(current.id, current.anim, current.width, current.height, Strings.Get(current.nameStringKey), Strings.Get(current.descStringKey), current.geyserType.idHash)); } GameObject gameObject = EntityTemplates.CreateEntity("GeyserGeneric", "Random Geyser Spawner", true); gameObject.AddOrGet <SaveLoadRoot>(); KPrefabID component = gameObject.GetComponent <KPrefabID>(); component.prefabInitFn += delegate(GameObject inst) { int num = 0; if (SaveLoader.Instance.worldDetailSave != null) { num = SaveLoader.Instance.worldDetailSave.globalWorldSeed; } else { Debug.LogWarning("Could not load global world seed for geysers"); } int num2 = num; Vector3 position = inst.transform.GetPosition(); int num3 = num2 + (int)position.x; Vector3 position2 = inst.transform.GetPosition(); num = num3 + (int)position2.y; System.Random random = new System.Random(num); int index = random.Next(0, configs.Count); GeyserPrefabParams geyserPrefabParams = configs[index]; GameObject gameObject2 = GameUtil.KInstantiate(Assets.GetPrefab(geyserPrefabParams.id), inst.transform.GetPosition(), Grid.SceneLayer.BuildingBack, null, 0); gameObject2.SetActive(true); inst.DeleteObject(); }; list.Add(gameObject); return(list); }
public GameObject CreatePrefab() { GameObject gameObject = EntityTemplates.CreateEntity(ID, UI.SPACEDESTINATIONS.COMETS.ROCKCOMET.NAME, true); gameObject.AddOrGet <SaveLoadRoot>(); gameObject.AddOrGet <LoopingSounds>(); Comet comet = gameObject.AddOrGet <Comet>(); float mass = ElementLoader.FindElementByHash(SimHashes.Regolith).defaultValues.mass; comet.massRange = new Vector2(mass * 0.8f * 6f, mass * 1.2f * 6f); comet.temperatureRange = new Vector2(323.15f, 423.15f); comet.addTiles = 6; comet.addTilesMinHeight = 2; comet.addTilesMaxHeight = 8; comet.entityDamage = 20; comet.totalTileDamage = 0f; comet.splashRadius = 1; comet.impactSound = "Meteor_Large_Impact"; comet.flyingSoundID = 2; comet.explosionEffectHash = SpawnFXHashes.MeteorImpactDirt; PrimaryElement primaryElement = gameObject.AddOrGet <PrimaryElement>(); primaryElement.SetElement(SimHashes.Regolith); primaryElement.Temperature = (comet.temperatureRange.x + comet.temperatureRange.y) / 2f; KBatchedAnimController kBatchedAnimController = gameObject.AddOrGet <KBatchedAnimController>(); kBatchedAnimController.AnimFiles = new KAnimFile[1] { Assets.GetAnim("meteor_rock_kanim") }; kBatchedAnimController.isMovable = true; kBatchedAnimController.initialAnim = "fall_loop"; kBatchedAnimController.initialMode = KAnim.PlayMode.Loop; KCircleCollider2D kCircleCollider2D = gameObject.AddOrGet <KCircleCollider2D>(); kCircleCollider2D.radius = 0.5f; return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = EntityTemplates.CreateEntity(ID, UI.SPACEDESTINATIONS.COMETS.GOLDCOMET.NAME, true); gameObject.AddOrGet <SaveLoadRoot>(); gameObject.AddOrGet <LoopingSounds>(); Comet comet = gameObject.AddOrGet <Comet>(); comet.massRange = new Vector2(3f, 20f); comet.temperatureRange = new Vector2(323.15f, 423.15f); comet.explosionOreCount = new Vector2I(2, 4); comet.entityDamage = 15; comet.totalTileDamage = 0.5f; comet.splashRadius = 1; comet.impactSound = "Meteor_Medium_Impact"; comet.flyingSoundID = 1; comet.explosionEffectHash = SpawnFXHashes.MeteorImpactMetal; PrimaryElement primaryElement = gameObject.AddOrGet <PrimaryElement>(); primaryElement.SetElement(SimHashes.GoldAmalgam); primaryElement.Temperature = (comet.temperatureRange.x + comet.temperatureRange.y) / 2f; KBatchedAnimController kBatchedAnimController = gameObject.AddOrGet <KBatchedAnimController>(); kBatchedAnimController.AnimFiles = new KAnimFile[1] { Assets.GetAnim("meteor_gold_kanim") }; kBatchedAnimController.isMovable = true; kBatchedAnimController.initialAnim = "fall_loop"; kBatchedAnimController.initialMode = KAnim.PlayMode.Loop; kBatchedAnimController.visibilityType = KAnimControllerBase.VisibilityType.OffscreenUpdate; KCircleCollider2D kCircleCollider2D = gameObject.AddOrGet <KCircleCollider2D>(); kCircleCollider2D.radius = 0.5f; gameObject.transform.localScale = new Vector3(0.6f, 0.6f, 1f); return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = EntityTemplates.CreateEntity(ID, ID, true); RectTransform rectTransform = gameObject.AddOrGet <RectTransform>(); rectTransform.anchorMin = new Vector2(0f, 0f); rectTransform.anchorMax = new Vector2(1f, 1f); rectTransform.pivot = new Vector2(0.5f, 0f); rectTransform.anchoredPosition = new Vector2(0f, 0f); rectTransform.sizeDelta = new Vector2(0f, 0f); LayoutElement layoutElement = gameObject.AddOrGet <LayoutElement>(); layoutElement.preferredHeight = 100f; layoutElement.preferredWidth = 100f; BoxCollider2D boxCollider2D = gameObject.AddOrGet <BoxCollider2D>(); boxCollider2D.size = new Vector2(1f, 1f); gameObject.AddOrGet <FaceGraph>(); gameObject.AddOrGet <Accessorizer>(); KBatchedAnimController kBatchedAnimController = gameObject.AddOrGet <KBatchedAnimController>(); kBatchedAnimController.materialType = KAnimBatchGroup.MaterialType.UI; kBatchedAnimController.animScale = 0.5f; kBatchedAnimController.setScaleFromAnim = false; kBatchedAnimController.animOverrideSize = new Vector2(100f, 120f); kBatchedAnimController.AnimFiles = new KAnimFile[4] { Assets.GetAnim("body_comp_default_kanim"), Assets.GetAnim("anim_construction_default_kanim"), Assets.GetAnim("anim_idles_default_kanim"), Assets.GetAnim("anim_cheer_kanim") }; SymbolOverrideControllerUtil.AddToPrefab(gameObject); MinionConfig.ConfigureSymbols(gameObject); return(gameObject); }
public List <GameObject> CreatePrefabs() { List <GameObject> list = new List <GameObject>(); var array = new[] { new { id = EffectTemplateId, animFiles = new string[0], initialAnim = string.Empty, initialMode = KAnim.PlayMode.Once, destroyOnAnimComplete = false }, new { id = AttackSplashId, animFiles = new string[1] { "attack_beam_contact_fx_kanim" }, initialAnim = "loop", initialMode = KAnim.PlayMode.Loop, destroyOnAnimComplete = false }, new { id = OreAbsorbId, animFiles = new string[1] { "ore_collision_kanim" }, initialAnim = "idle", initialMode = KAnim.PlayMode.Once, destroyOnAnimComplete = true }, new { id = PlantDeathId, animFiles = new string[1] { "plant_death_fx_kanim" }, initialAnim = "plant_death", initialMode = KAnim.PlayMode.Once, destroyOnAnimComplete = true }, new { id = BuildSplashId, animFiles = new string[1] { "sparks_radial_build_kanim" }, initialAnim = "loop", initialMode = KAnim.PlayMode.Loop, destroyOnAnimComplete = false } }; var array2 = array; foreach (var anon in array2) { GameObject gameObject = EntityTemplates.CreateEntity(anon.id, anon.id, false); KBatchedAnimController kBatchedAnimController = gameObject.AddOrGet <KBatchedAnimController>(); kBatchedAnimController.materialType = KAnimBatchGroup.MaterialType.Simple; kBatchedAnimController.initialAnim = anon.initialAnim; kBatchedAnimController.initialMode = anon.initialMode; kBatchedAnimController.isMovable = true; kBatchedAnimController.destroyOnAnimComplete = anon.destroyOnAnimComplete; if (anon.animFiles.Length > 0) { KAnimFile[] array3 = new KAnimFile[anon.animFiles.Length]; for (int j = 0; j < array3.Length; j++) { array3[j] = Assets.GetAnim(anon.animFiles[j]); } kBatchedAnimController.AnimFiles = array3; } gameObject.AddOrGet <LoopingSounds>(); list.Add(gameObject); } return(list); }
public GameObject CreatePrefab() { string name = DUPLICANTS.MODIFIERS.BASEDUPLICANT.NAME; GameObject gameObject = EntityTemplates.CreateEntity(ID, name, true); gameObject.AddOrGet <StateMachineController>(); MinionModifiers modifiers = gameObject.AddOrGet <MinionModifiers>(); AddMinionAmounts(modifiers); AddMinionTraits(name, modifiers); gameObject.AddOrGet <MinionBrain>(); gameObject.AddOrGet <KPrefabID>().AddTag(GameTags.DupeBrain, false); gameObject.AddOrGet <Worker>(); gameObject.AddOrGet <ChoreConsumer>(); Storage storage = gameObject.AddOrGet <Storage>(); storage.fxPrefix = Storage.FXPrefix.PickedUp; storage.dropOnLoad = true; storage.SetDefaultStoredItemModifiers(new List <Storage.StoredItemModifier> { Storage.StoredItemModifier.Preserve, Storage.StoredItemModifier.Seal }); gameObject.AddOrGet <Health>(); OxygenBreather oxygenBreather = gameObject.AddOrGet <OxygenBreather>(); oxygenBreather.O2toCO2conversion = 0.02f; oxygenBreather.lowOxygenThreshold = 0.52f; oxygenBreather.noOxygenThreshold = 0.05f; oxygenBreather.mouthOffset = new Vector2f(0.25f, 0.7f); oxygenBreather.minCO2ToEmit = 0.02f; oxygenBreather.breathableCells = new CellOffset[6] { new CellOffset(0, 0), new CellOffset(0, 1), new CellOffset(1, 1), new CellOffset(-1, 1), new CellOffset(1, 0), new CellOffset(-1, 0) }; gameObject.AddOrGet <WarmBlooded>(); gameObject.AddOrGet <MinionIdentity>(); GridVisibility gridVisibility = gameObject.AddOrGet <GridVisibility>(); gridVisibility.radius = 30f; gridVisibility.innerRadius = 20f; gameObject.AddOrGet <MiningSounds>(); gameObject.AddOrGet <SaveLoadRoot>(); gameObject.AddOrGet <AntiCluster>(); Navigator navigator = gameObject.AddOrGet <Navigator>(); navigator.NavGridName = "MinionNavGrid"; navigator.CurrentNavType = NavType.Floor; KBatchedAnimController kBatchedAnimController = gameObject.AddOrGet <KBatchedAnimController>(); kBatchedAnimController.isMovable = true; kBatchedAnimController.sceneLayer = Grid.SceneLayer.Move; kBatchedAnimController.AnimFiles = new KAnimFile[8] { Assets.GetAnim("body_comp_default_kanim"), Assets.GetAnim("anim_construction_default_kanim"), Assets.GetAnim("anim_idles_default_kanim"), Assets.GetAnim("anim_loco_firepole_kanim"), Assets.GetAnim("anim_loco_new_kanim"), Assets.GetAnim("anim_loco_tube_kanim"), Assets.GetAnim("anim_construction_firepole_kanim"), Assets.GetAnim("anim_construction_jetsuit_kanim") }; KBoxCollider2D kBoxCollider2D = gameObject.AddOrGet <KBoxCollider2D>(); kBoxCollider2D.offset = new Vector2(0f, 0.8f); kBoxCollider2D.size = new Vector2(1f, 1.5f); SnapOn snapOn = gameObject.AddOrGet <SnapOn>(); snapOn.snapPoints = new List <SnapOn.SnapPoint>(new SnapOn.SnapPoint[17] { new SnapOn.SnapPoint { pointName = "dig", automatic = false, context = (HashedString)"dig", buildFile = Assets.GetAnim("excavator_kanim"), overrideSymbol = (HashedString)"snapTo_rgtHand" }, new SnapOn.SnapPoint { pointName = "dig", automatic = false, context = (HashedString)"build", buildFile = Assets.GetAnim("constructor_gun_kanim"), overrideSymbol = (HashedString)"snapTo_rgtHand" }, new SnapOn.SnapPoint { pointName = "dig", automatic = false, context = (HashedString)"fetchliquid", buildFile = Assets.GetAnim("water_gun_kanim"), overrideSymbol = (HashedString)"snapTo_rgtHand" }, new SnapOn.SnapPoint { pointName = "dig", automatic = false, context = (HashedString)"paint", buildFile = Assets.GetAnim("painting_gun_kanim"), overrideSymbol = (HashedString)"snapTo_rgtHand" }, new SnapOn.SnapPoint { pointName = "dig", automatic = false, context = (HashedString)"harvest", buildFile = Assets.GetAnim("plant_harvester_gun_kanim"), overrideSymbol = (HashedString)"snapTo_rgtHand" }, new SnapOn.SnapPoint { pointName = "dig", automatic = false, context = (HashedString)"capture", buildFile = Assets.GetAnim("net_gun_kanim"), overrideSymbol = (HashedString)"snapTo_rgtHand" }, new SnapOn.SnapPoint { pointName = "dig", automatic = false, context = (HashedString)"attack", buildFile = Assets.GetAnim("attack_gun_kanim"), overrideSymbol = (HashedString)"snapTo_rgtHand" }, new SnapOn.SnapPoint { pointName = "dig", automatic = false, context = (HashedString)"pickup", buildFile = Assets.GetAnim("pickupdrop_gun_kanim"), overrideSymbol = (HashedString)"snapTo_rgtHand" }, new SnapOn.SnapPoint { pointName = "dig", automatic = false, context = (HashedString)"store", buildFile = Assets.GetAnim("pickupdrop_gun_kanim"), overrideSymbol = (HashedString)"snapTo_rgtHand" }, new SnapOn.SnapPoint { pointName = "dig", automatic = false, context = (HashedString)"disinfect", buildFile = Assets.GetAnim("plant_spray_gun_kanim"), overrideSymbol = (HashedString)"snapTo_rgtHand" }, new SnapOn.SnapPoint { pointName = "dig", automatic = false, context = (HashedString)"tend", buildFile = Assets.GetAnim("plant_harvester_gun_kanim"), overrideSymbol = (HashedString)"snapTo_rgtHand" }, new SnapOn.SnapPoint { pointName = "carry", automatic = false, context = (HashedString)string.Empty, buildFile = null, overrideSymbol = (HashedString)"snapTo_chest" }, new SnapOn.SnapPoint { pointName = "build", automatic = false, context = (HashedString)string.Empty, buildFile = null, overrideSymbol = (HashedString)"snapTo_rgtHand" }, new SnapOn.SnapPoint { pointName = "remote", automatic = false, context = (HashedString)string.Empty, buildFile = null, overrideSymbol = (HashedString)"snapTo_rgtHand" }, new SnapOn.SnapPoint { pointName = "snapTo_neck", automatic = false, context = (HashedString)string.Empty, buildFile = Assets.GetAnim("helm_oxygen_kanim"), overrideSymbol = (HashedString)"snapTo_neck" }, new SnapOn.SnapPoint { pointName = "dig", automatic = false, context = (HashedString)"powertinker", buildFile = Assets.GetAnim("electrician_gun_kanim"), overrideSymbol = (HashedString)"snapTo_rgtHand" }, new SnapOn.SnapPoint { pointName = "dig", automatic = false, context = (HashedString)"specialistdig", buildFile = Assets.GetAnim("excavator_kanim"), overrideSymbol = (HashedString)"snapTo_rgtHand" } }); gameObject.AddOrGet <Effects>(); gameObject.AddOrGet <Traits>(); gameObject.AddOrGet <AttributeLevels>(); gameObject.AddOrGet <AttributeConverters>(); PrimaryElement primaryElement = gameObject.AddOrGet <PrimaryElement>(); primaryElement.InternalTemperature = 310.15f; primaryElement.MassPerUnit = 30f; primaryElement.ElementID = SimHashes.Creature; gameObject.AddOrGet <ChoreProvider>(); gameObject.AddOrGetDef <DebugGoToMonitor.Def>(); gameObject.AddOrGetDef <SpeechMonitor.Def>(); gameObject.AddOrGetDef <BlinkMonitor.Def>(); gameObject.AddOrGetDef <ConversationMonitor.Def>(); gameObject.AddOrGet <Sensors>(); gameObject.AddOrGet <Chattable>(); gameObject.AddOrGet <FaceGraph>(); gameObject.AddOrGet <Accessorizer>(); gameObject.AddOrGet <Schedulable>(); LoopingSounds loopingSounds = gameObject.AddOrGet <LoopingSounds>(); loopingSounds.updatePosition = true; gameObject.AddOrGet <AnimEventHandler>(); FactionAlignment factionAlignment = gameObject.AddOrGet <FactionAlignment>(); factionAlignment.Alignment = FactionManager.FactionID.Duplicant; gameObject.AddOrGet <Weapon>(); gameObject.AddOrGet <RangedAttackable>(); gameObject.AddOrGet <CharacterOverlay>(); OccupyArea occupyArea = gameObject.AddOrGet <OccupyArea>(); occupyArea.objectLayers = new ObjectLayer[1]; occupyArea.ApplyToCells = false; occupyArea.OccupiedCellsOffsets = new CellOffset[2] { new CellOffset(0, 0), new CellOffset(0, 1) }; gameObject.AddOrGet <Pickupable>(); CreatureSimTemperatureTransfer creatureSimTemperatureTransfer = gameObject.AddOrGet <CreatureSimTemperatureTransfer>(); creatureSimTemperatureTransfer.SurfaceArea = 10f; creatureSimTemperatureTransfer.Thickness = 0.01f; gameObject.AddOrGet <SicknessTrigger>(); gameObject.AddOrGet <ClothingWearer>(); gameObject.AddOrGet <SuitEquipper>(); DecorProvider decorProvider = gameObject.AddOrGet <DecorProvider>(); decorProvider.baseRadius = 3f; decorProvider.isMovable = true; gameObject.AddOrGet <ConsumableConsumer>(); gameObject.AddOrGet <NoiseListener>(); gameObject.AddOrGet <MinionResume>(); DuplicantNoiseLevels.SetupNoiseLevels(); SetupLaserEffects(gameObject); SymbolOverrideController symbolOverrideController = SymbolOverrideControllerUtil.AddToPrefab(gameObject); symbolOverrideController.applySymbolOverridesEveryFrame = true; ConfigureSymbols(gameObject); return(gameObject); }