public override BuildingDef CreateBuildingDef() { string id = "DiningTable"; int width = 1; int height = 1; string anim = "diningtable_kanim"; int hitpoints = 10; float construction_time = 10f; float[] tIER = BUILDINGS.CONSTRUCTION_MASS_KG.TIER3; string[] aLL_METALS = MATERIALS.ALL_METALS; float melting_point = 1600f; BuildLocationRule build_location_rule = BuildLocationRule.OnFloor; EffectorValues nONE = NOISE_POLLUTION.NONE; BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(id, width, height, anim, hitpoints, construction_time, tIER, aLL_METALS, melting_point, build_location_rule, BUILDINGS.DECOR.BONUS.TIER1, nONE, 0.2f); buildingDef.WorkTime = 20f; buildingDef.Overheatable = false; buildingDef.AudioCategory = "Metal"; return(buildingDef); }
public override BuildingDef CreateBuildingDef() { string id = "MYCREATUREFEEDER"; int width = 1; int height = 2; string anim = "feeder_kanim"; int hitpoints = 100; float construction_time = 120f; float[] tier = BUILDINGS.CONSTRUCTION_MASS_KG.TIER3; string[] raw_METALS = MATERIALS.ANY_BUILDABLE; float melting_point = 1600f; BuildLocationRule build_location_rule = BuildLocationRule.OnFloor; EffectorValues none = NOISE_POLLUTION.NONE; BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(id, width, height, anim, hitpoints, construction_time, tier, raw_METALS, melting_point, build_location_rule, BUILDINGS.DECOR.PENALTY.TIER2, none, 0.2f); buildingDef.AudioCategory = "Metal"; buildingDef.PermittedRotations = PermittedRotations.R360; return(buildingDef); }
public override BuildingDef CreateBuildingDef() { string id = "IceCooledFan"; int width = 2; int height = 2; string anim = "fanice_kanim"; int hitpoints = 30; float construction_time = 30f; float[] tIER = BUILDINGS.CONSTRUCTION_MASS_KG.TIER4; string[] aLL_METALS = MATERIALS.ALL_METALS; float melting_point = 1600f; BuildLocationRule build_location_rule = BuildLocationRule.OnFloor; EffectorValues tIER2 = NOISE_POLLUTION.NOISY.TIER2; BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(id, width, height, anim, hitpoints, construction_time, tIER, aLL_METALS, melting_point, build_location_rule, BUILDINGS.DECOR.NONE, tIER2, 0.2f); buildingDef.SelfHeatKilowattsWhenActive = (0f - COOLING_RATE) * 0.25f; buildingDef.ExhaustKilowattsWhenActive = (0f - COOLING_RATE) * 0.75f; buildingDef.Overheatable = false; buildingDef.ViewMode = OverlayModes.Temperature.ID; buildingDef.AudioCategory = "Metal"; return buildingDef; }
public override BuildingDef CreateBuildingDef() { BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef("WildPlanterBox", 1, 1, "wildplanterbox_kanim", 10, 3f, BUILDINGS.CONSTRUCTION_MASS_KG.TIER2, MATERIALS.FARMABLE, 800f, BuildLocationRule.OnFloor, noise: NOISE_POLLUTION.NONE, decor: BUILDINGS.DECOR.PENALTY.TIER1); buildingDef.ForegroundLayer = Grid.SceneLayer.BuildingBack; buildingDef.Overheatable = false; buildingDef.Floodable = false; buildingDef.AudioCategory = "Glass"; buildingDef.AudioSize = "large"; float power = MyMod.ConfigManager.Config.PowerConsumption; if (power > 0) { buildingDef.RequiresPowerInput = true; buildingDef.EnergyConsumptionWhenActive = power; } buildingDef.SelfHeatKilowattsWhenActive = MyMod.ConfigManager.Config.HeatOutput; return(buildingDef); }
public override BuildingDef CreateBuildingDef() { BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef( id: Id, width: 2, height: 3, anim: "artifact_cabinet_kanim", hitpoints: 100, construction_time: 120f, construction_mass: BUILDINGS.CONSTRUCTION_MASS_KG.TIER4, construction_materials: MATERIALS.RAW_MINERALS, melting_point: 1600f, build_location_rule: BuildLocationRule.OnFloor, decor: BUILDINGS.DECOR.BONUS.TIER4, noise: NOISE_POLLUTION.NONE ); buildingDef.AudioCategory = "Metal"; return(buildingDef); }
public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag) { go.AddOrGet <Reservoir>(); Storage defaultStorage = BuildingTemplates.CreateDefaultStorage(go, false); defaultStorage.showDescriptor = true; defaultStorage.storageFilters = STORAGEFILTERS.GASES; defaultStorage.capacityKg = 3000f; defaultStorage.SetDefaultStoredItemModifiers(GasReservoirConfig.ReservoirStoredItemModifiers); ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>(); conduitConsumer.conduitType = ConduitType.Gas; conduitConsumer.ignoreMinMassCheck = true; conduitConsumer.forceAlwaysSatisfied = true; conduitConsumer.alwaysConsume = true; conduitConsumer.capacityKG = defaultStorage.capacityKg; ConduitDispenser conduitDispenser = go.AddOrGet <ConduitDispenser>(); conduitDispenser.conduitType = ConduitType.Gas; conduitDispenser.elementFilter = (SimHashes[])null; }
public override void DoPostConfigureComplete(GameObject go) { go.AddOrGet <EnergyConsumer>(); go.AddOrGet <LoopingSounds>(); var light2D = go.AddOrGet <Light2D>(); light2D.overlayColour = LIGHT2D.FLOORLAMP_OVERLAYCOLOR; light2D.Color = new Color(2, 0, 0); light2D.Range = 5f; light2D.Lux = 1500; light2D.Angle = 0.0f; light2D.Direction = LIGHT2D.FLOORLAMP_DIRECTION; light2D.Offset = new Vector2(0.05f, 1f); light2D.shape = LightShape.Circle; light2D.drawOverlay = true; BuildingTemplates.DoPostConfigure(go); go.GetComponent <KPrefabID>().prefabInitFn += gameObject => new LavaLamp.Instance(gameObject.GetComponent <KPrefabID>()).StartSM(); }
public override void DoPostConfigureComplete(GameObject go) { go.AddOrGet <EnergyConsumer>(); go.AddOrGet <LoopingSounds>(); var light2D = go.AddOrGet <Light2D>(); light2D.overlayColour = LIGHT2D.FLOORLAMP_OVERLAYCOLOR; light2D.Color = new Color(2, 2, 0); light2D.Range = 5f; light2D.Lux = 1200; light2D.Angle = 0.0f; light2D.Direction = LIGHT2D.FLOORLAMP_DIRECTION; light2D.Offset = new Vector2(0.05f, 1f); light2D.shape = LightShape.Circle; light2D.drawOverlay = true; BuildingTemplates.DoPostConfigure(go); go.AddOrGetDef <LightController.Def>(); }
public override BuildingDef CreateBuildingDef() { int width = 1; int height = 2; string anim = "storagelocker_kanim"; int hitpoints = TUNING.BUILDINGS.HITPOINTS.TIER4; float construction_time = TUNING.BUILDINGS.CONSTRUCTION_TIME_SECONDS.TIER0; float[] tieR4 = TUNING.BUILDINGS.CONSTRUCTION_MASS_KG.TIER0; string[] rawMinerals = MATERIALS.RAW_MINERALS; float melting_point = 1600f; BuildLocationRule build_location_rule = BuildLocationRule.Anywhere; EffectorValues nONE = NOISE_POLLUTION.NONE; BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(GetContentBasicInfo().ID, width, height, anim, hitpoints, construction_time, tieR4, rawMinerals, melting_point, build_location_rule, BUILDINGS.DECOR.BONUS.TIER5, nONE, 0.2f); buildingDef.Floodable = false; buildingDef.AudioCategory = "Metal"; buildingDef.Overheatable = false; buildingDef.PermittedRotations = PermittedRotations.R360; return(buildingDef); }
public override BuildingDef CreateBuildingDef() { string id = "BufferStorageLocker"; int width = 1; int height = 2; string anim = "storagelocker_kanim"; int hitpoints = 30; float construction_time = 10f; float[] tIER = BUILDINGS.CONSTRUCTION_MASS_KG.TIER4; string[] rAW_MINERALS = MATERIALS.RAW_MINERALS; float melting_point = 1600f; BuildLocationRule build_location_rule = BuildLocationRule.OnFloor; EffectorValues nONE = NOISE_POLLUTION.NONE; BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(id, width, height, anim, hitpoints, construction_time, tIER, rAW_MINERALS, melting_point, build_location_rule, BUILDINGS.DECOR.PENALTY.TIER1, nONE, 0.2f); buildingDef.Floodable = false; buildingDef.AudioCategory = "Metal"; buildingDef.Overheatable = false; return(buildingDef); }
public override BuildingDef CreateBuildingDef() { string id = "DUPEFABRICATOR"; int width = 3; int height = 4; string anim = "oxylite_refinery_kanim"; int hitpoints = 100; float construction_time = 100f; float[] tieR4 = TUNING.BUILDINGS.CONSTRUCTION_MASS_KG.TIER4; string[] rawMetals = MATERIALS.RAW_METALS; float melting_point = 1600f; BuildLocationRule build_location_rule = BuildLocationRule.OnFloor; EffectorValues tieR0 = NOISE_POLLUTION.NOISY.TIER0; BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(id, width, height, anim, hitpoints, construction_time, tieR4, rawMetals, melting_point, build_location_rule, TUNING.BUILDINGS.DECOR.BONUS.TIER1, tieR0, 0.2f); buildingDef.ViewMode = SimViewMode.LiquidVentMap; buildingDef.AudioCategory = "Metal"; buildingDef.UtilityInputOffset = new CellOffset(0, 0); return(buildingDef); }
public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag) { GeneratedBuildings.MakeBuildingAlwaysOperational(go); BuildingConfigManager.Instance.IgnoreDefaultKComponent(typeof(RequiresFoundation), prefab_tag); SimCellOccupier simCellOccupier = go.AddOrGet <SimCellOccupier>(); simCellOccupier.doReplaceElement = true; simCellOccupier.notifyOnMelt = true; go.AddOrGet <Insulator>(); go.AddOrGet <TileTemperature>(); BuildingTemplates.CreateDefaultStorage(go, false).SetDefaultStoredItemModifiers(Storage.StandardSealedStorage); PlantablePlot plantablePlot = go.AddOrGet <PlantablePlot>(); plantablePlot.occupyingObjectRelativePosition = new Vector3(0.0f, 1f, 0.0f); plantablePlot.AddDepositTag(GameTags.CropSeed); plantablePlot.AddDepositTag(GameTags.WaterSeed); plantablePlot.SetFertilizationFlags(true, false); go.AddOrGet <CopyBuildingSettings>().copyGroupTag = GameTags.Farm; go.AddOrGet <AnimTileable>(); Prioritizable.AddRef(go); }
public override BuildingDef CreateBuildingDef() { int width = 1; int height = 1; string anim = "floor_metal_kanim"; int hitpoints = 100; float construction_time = 90f; float[] tIER = TUNING.BUILDINGS.CONSTRUCTION_MASS_KG.TIER2; string[] rEFINED_METALS = MATERIALS.REFINED_METALS; float melting_point = 800f; BuildLocationRule build_location_rule = BuildLocationRule.Tile; EffectorValues nONE = NOISE_POLLUTION.NONE; BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(ID, width, height, anim, hitpoints, construction_time, tIER, rEFINED_METALS, melting_point, build_location_rule, TUNING.BUILDINGS.DECOR.BONUS.TIER2, nONE, 0.2f); buildingDef.Floodable = false; buildingDef.Entombable = false; buildingDef.Overheatable = false; buildingDef.UseStructureTemperature = false; buildingDef.IsFoundation = true; buildingDef.TileLayer = ObjectLayer.FoundationTile; buildingDef.ReplacementLayer = ObjectLayer.ReplacementTile; buildingDef.AudioCategory = "Metal"; buildingDef.AudioSize = "small"; buildingDef.BaseTimeUntilRepair = -1f; buildingDef.SceneLayer = Grid.SceneLayer.TileMain; buildingDef.isKAnimTile = true; buildingDef.isSolidTile = true; buildingDef.BlockTileMaterial = Assets.GetMaterial("tiles_solid"); buildingDef.BlockTileAtlas = Assets.GetTextureAtlas("tiles_metal"); buildingDef.BlockTilePlaceAtlas = Assets.GetTextureAtlas("tiles_metal_place"); buildingDef.BlockTileShineAtlas = Assets.GetTextureAtlas("tiles_metal_spec"); buildingDef.DecorBlockTileInfo = Assets.GetBlockTileDecorInfo("tiles_metal_tops_decor_info"); buildingDef.DecorPlaceBlockTileInfo = Assets.GetBlockTileDecorInfo("tiles_metal_tops_decor_place_info"); buildingDef.ReplacementTags = new List <Tag>(); buildingDef.ReplacementTags.Add(GameTags.FloorTiles); buildingDef.ConstructionOffsetFilter = BuildingDef.ConstructionOffsetFilter_OneDown; buildingDef.ViewMode = OverlayModes.Logic.ID; return(buildingDef); }
public override BuildingDef CreateBuildingDef() { string anim = HEPBridgeInsulationTileOptions.Instance.use_old_anim ? "wallbridge_orb_transporter_kanim" : "radbolt_joint_plate_insulated_kanim"; var def = BuildingTemplates.CreateBuildingDef( id: ID, width: 3, height: 1, anim: anim, hitpoints: BUILDINGS.HITPOINTS.TIER1, construction_time: BUILDINGS.CONSTRUCTION_TIME_SECONDS.TIER2, construction_mass: new float[] { BUILDINGS.CONSTRUCTION_MASS_KG.TIER4[0], BUILDINGS.CONSTRUCTION_MASS_KG.TIER2[0] }, construction_materials: new string[] { MATERIALS.BUILDABLERAW, secodary_material.Name }, melting_point: BUILDINGS.MELTING_POINT_KELVIN.TIER1, build_location_rule: BuildLocationRule.Tile, decor: BUILDINGS.DECOR.PENALTY.TIER5, noise: NOISE_POLLUTION.NONE); def.AudioCategory = "Metal"; def.AudioSize = "small"; def.Floodable = false; def.Overheatable = false; def.Entombable = false; def.UseStructureTemperature = false; def.ThermalConductivity = 0.01f; def.BaseTimeUntilRepair = -1f; def.ForegroundLayer = Grid.SceneLayer.TileMain; def.PermittedRotations = PermittedRotations.R360; def.ViewMode = OverlayModes.Radiation.ID; def.UseHighEnergyParticleInputPort = true; def.HighEnergyParticleInputOffset = new CellOffset(-1, 0); def.UseHighEnergyParticleOutputPort = true; def.HighEnergyParticleOutputOffset = new CellOffset(1, 0); def.LogicInputPorts = new List <LogicPorts.Port> { LogicPorts.Port.InputPort(HighEnergyParticleRedirector.PORT_ID, new CellOffset(1, 0), LOGIC_PORT, LOGIC_PORT_ACTIVE, LOGIC_PORT_INACTIVE, false, false) }; GeneratedBuildings.RegisterWithOverlay(OverlayScreen.RadiationIDs, ID); def.Deprecated = !Sim.IsRadiationEnabled(); return(def); }
public override BuildingDef CreateBuildingDef() { int width = 3; int height = 2; string anim = "gas_bottler_kanim"; int hitpoints = 30; float construction_time = 30f; float[] tier = BUILDINGS.CONSTRUCTION_MASS_KG.TIER4; string[] raw_METALS = MATERIALS.ALL_METALS; float melting_point = 800f; BuildLocationRule buildLocationRule = BuildLocationRule.OnFloor; BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef( ID, width, height, anim, hitpoints, construction_time, tier, raw_METALS, melting_point, buildLocationRule, BUILDINGS.DECOR.PENALTY.TIER1, NOISE_POLLUTION.NOISY.TIER0, 0.2f ) ; buildingDef.InputConduitType = ConduitType.Liquid; buildingDef.UtilityInputOffset = new CellOffset(0, 0); buildingDef.ViewMode = OverlayModes.LiquidConduits.ID; buildingDef.Floodable = false; buildingDef.Entombable = true; buildingDef.AudioCategory = "HollowMetal"; buildingDef.DefaultAnimState = "on"; return(buildingDef); }
public override BuildingDef CreateBuildingDef() { int width = 1; int height = 2; string anim = "fridge_kanim"; int hitpoints = BUILDINGS.HITPOINTS.TIER4; float construction_time = BUILDINGS.CONSTRUCTION_TIME_SECONDS.TIER0; float[] tieR4 = BUILDINGS.CONSTRUCTION_MASS_KG.TIER0; string[] rawMinerals = MATERIALS.RAW_MINERALS; float melting_point = 1600f; BuildLocationRule build_location_rule = BuildLocationRule.Anywhere; EffectorValues nONE = NOISE_POLLUTION.NONE; BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(GetContentBasicInfo().ID, width, height, anim, hitpoints, construction_time, tieR4, rawMinerals, melting_point, build_location_rule, BUILDINGS.DECOR.BONUS.TIER5, nONE, 0.2f); buildingDef.RequiresPowerInput = false; buildingDef.EnergyConsumptionWhenActive = 0; buildingDef.ExhaustKilowattsWhenActive = 0; buildingDef.LogicOutputPorts = new List <LogicPorts.Port> { LogicPorts.Port.OutputPort ( FilteredStorage.FULL_PORT_ID, new CellOffset(0, 1), STRINGS.BUILDINGS.PREFABS.REFRIGERATOR.LOGIC_PORT, STRINGS.BUILDINGS.PREFABS.REFRIGERATOR.LOGIC_PORT_ACTIVE, STRINGS.BUILDINGS.PREFABS.REFRIGERATOR.LOGIC_PORT_INACTIVE, false, false ) }; buildingDef.Floodable = false; buildingDef.AudioCategory = "Metal"; buildingDef.ViewMode = OverlayModes.Power.ID; buildingDef.Overheatable = false; buildingDef.PermittedRotations = PermittedRotations.R360; SoundEventVolumeCache.instance.AddVolume("fridge_kanim", "Refrigerator_open", NOISE_POLLUTION.NOISY.TIER1); SoundEventVolumeCache.instance.AddVolume("fridge_kanim", "Refrigerator_close", NOISE_POLLUTION.NOISY.TIER1); return(buildingDef); }
public override BuildingDef CreateBuildingDef() { string id = "GemTile"; int width = 1; int height = 1; string anim = "floor_gem"; int hitpoints = 100; float construction_time = 30f; float[] tieR2 = BUILDINGS.CONSTRUCTION_MASS_KG.TIER2; string[] transparents = MATERIALS.TRANSPARENTS; float melting_point = 800f; BuildLocationRule build_location_rule = BuildLocationRule.Tile; EffectorValues none = NOISE_POLLUTION.NONE; BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(id, width, height, anim, hitpoints, construction_time, tieR2, transparents, melting_point, build_location_rule, BUILDINGS.DECOR.BONUS.TIER0, none, 0.2f); buildingDef.Floodable = false; buildingDef.Entombable = false; buildingDef.Overheatable = false; buildingDef.UseStructureTemperature = false; buildingDef.IsFoundation = true; buildingDef.TileLayer = ObjectLayer.FoundationTile; buildingDef.ReplacementLayer = ObjectLayer.ReplacementTile; buildingDef.AudioCategory = "Glass"; buildingDef.AudioSize = "small"; buildingDef.BaseTimeUntilRepair = -1f; buildingDef.SceneLayer = Grid.SceneLayer.GlassTile; buildingDef.isKAnimTile = true; buildingDef.isSolidTile = true; buildingDef.BlockTileIsTransparent = true; buildingDef.BlockTileAtlas = TextureAtlasHandler.Instance.GetTextureAtlas("tiles_gem"); buildingDef.BlockTilePlaceAtlas = TextureAtlasHandler.Instance.GetTextureAtlas("tiles_gem_place"); buildingDef.BlockTileMaterial = Assets.GetMaterial("tiles_solid"); buildingDef.DecorBlockTileInfo = BlockTileDecorInfoHandler.Instance.GetBlockTileDecorInfo("tiles_gem_tops_decor_info"); buildingDef.DecorPlaceBlockTileInfo = Assets.GetBlockTileDecorInfo("tiles_glass_tops_decor_place_info"); buildingDef.ConstructionOffsetFilter = BuildingDef.ConstructionOffsetFilter_OneDown; buildingDef.ReplacementTags = new List <Tag>(); buildingDef.ReplacementTags.Add(GameTags.FloorTiles); return(buildingDef); }
public override BuildingDef CreateBuildingDef() { string id = "ForceFieldTile"; int width = 1; int height = 1; string anim = "ladder_poi_kanim"; //floor_basic_kanim //floor_plastic_kanim int hitpoints = 100; float construction_time = 3f; float[] tieR3 = BUILDINGS.CONSTRUCTION_MASS_KG.TIER3; string[] rawMinerals = MATERIALS.RAW_MINERALS; float melting_point = 1600f; BuildLocationRule build_location_rule = BuildLocationRule.Tile; EffectorValues none = NOISE_POLLUTION.NONE; BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(id, width, height, anim, hitpoints, construction_time, tieR3, rawMinerals, melting_point, build_location_rule, BUILDINGS.DECOR.BONUS.TIER0, none, 0.2f); buildingDef.Floodable = false; buildingDef.Overheatable = false; buildingDef.Entombable = false; buildingDef.UseStructureTemperature = false; buildingDef.IsFoundation = true; buildingDef.TileLayer = ObjectLayer.FoundationTile; buildingDef.ReplacementLayer = ObjectLayer.ReplacementTile; buildingDef.AudioCategory = "Metal"; buildingDef.AudioSize = "small"; buildingDef.BaseTimeUntilRepair = -1f; buildingDef.SceneLayer = Grid.SceneLayer.TileMain; buildingDef.isKAnimTile = true; buildingDef.isSolidTile = true; buildingDef.BlockTileAtlas = Assets.GetTextureAtlas("tiles_solid"); buildingDef.BlockTilePlaceAtlas = Assets.GetTextureAtlas("tiles_solid_place"); buildingDef.BlockTileMaterial = Assets.GetMaterial("tiles_solid"); buildingDef.DecorBlockTileInfo = Assets.GetBlockTileDecorInfo("tiles_solid_tops_info"); buildingDef.DecorPlaceBlockTileInfo = Assets.GetBlockTileDecorInfo("tiles_solid_tops_place_info"); buildingDef.ConstructionOffsetFilter = BuildingDef.ConstructionOffsetFilter_OneDown; buildingDef.ReplacementTags = new List <Tag>(); buildingDef.ReplacementTags.Add(GameTags.FloorTiles); buildingDef.DragBuild = true; return(buildingDef); }
public override BuildingDef CreateBuildingDef() { float[] construction_mass = new float[] { BUILDINGS.CONSTRUCTION_MASS_KG.TIER4[0], BUILDINGS.CONSTRUCTION_MASS_KG.TIER3[0], BUILDINGS.CONSTRUCTION_MASS_KG.TIER5[0] }; string[] construction_materials = new string[] { "Steel", "Plastic", "Diamond" }; var buildingDef = BuildingTemplates.CreateBuildingDef( id: Id, width: 5, height: 3, anim: "gasstorage_kanim", hitpoints: BUILDINGS.HITPOINTS.TIER2, construction_time: BUILDINGS.CONSTRUCTION_TIME_SECONDS.TIER4, construction_mass: construction_mass, construction_materials: construction_materials, melting_point: BUILDINGS.MELTING_POINT_KELVIN.TIER0, build_location_rule: BuildLocationRule.OnFloor, decor: BUILDINGS.DECOR.PENALTY.TIER1, noise: NOISE_POLLUTION.NOISY.TIER0, 0.2f ); buildingDef.InputConduitType = ConduitType.Gas; buildingDef.OutputConduitType = ConduitType.Gas; buildingDef.Floodable = false; buildingDef.ViewMode = OverlayModes.GasConduits.ID; buildingDef.AudioCategory = "HollowMetal"; buildingDef.UtilityInputOffset = new CellOffset(1, 2); buildingDef.UtilityOutputOffset = new CellOffset(0, 0); return(buildingDef); }
public override BuildingDef CreateBuildingDef() { var def = BuildingTemplates.CreateBuildingDef( Id, 1, 1, DrainOptions.Instance.UseSolidDrain ? "solidDrain_kanim" : "drain_kanim", BUILDINGS.HITPOINTS.TIER1, 30f, MASS, MATERIALS.ALL_METALS, 1600f, BuildLocationRule.Tile, BUILDINGS.DECOR.PENALTY.TIER0, NOISE_POLLUTION.NONE ); BuildingTemplates.CreateFoundationTileDef(def); def.UseStructureTemperature = false; def.Floodable = false; def.AudioCategory = "Metal"; def.Overheatable = false; def.Entombable = false; def.IsFoundation = true; def.EnergyConsumptionWhenActive = 0f; def.ExhaustKilowattsWhenActive = 0f; def.SelfHeatKilowattsWhenActive = 0f; def.UtilityOutputOffset = new CellOffset(0, 0); def.OutputConduitType = ConduitType.Liquid; def.ViewMode = OverlayModes.LiquidConduits.ID; def.PermittedRotations = PermittedRotations.Unrotatable; def.ObjectLayer = ObjectLayer.Building; def.SceneLayer = Grid.SceneLayer.TileMain; def.AudioSize = "small"; if (DrainOptions.Instance.UseSolidDrain) { def.isSolidTile = true; } return(def); }
protected BuildingDef CreateBuildingDef(string ID, string anim, float[] required_mass, string[] required_materials) { int width = 1; int height = 1; int hitpoints = 30; float construction_time = 30f; float melting_point = 1600f; BuildLocationRule build_location_rule = BuildLocationRule.Anywhere; EffectorValues nONE = NOISE_POLLUTION.NONE; BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(ID, width, height, anim, hitpoints, construction_time, required_mass, required_materials, melting_point, build_location_rule, BUILDINGS.DECOR.PENALTY.TIER0, nONE, 0.2f); buildingDef.Overheatable = false; buildingDef.Floodable = false; buildingDef.Entombable = false; buildingDef.ViewMode = OverlayModes.Logic.ID; buildingDef.AudioCategory = "Metal"; buildingDef.SceneLayer = Grid.SceneLayer.Building; SoundEventVolumeCache.instance.AddVolume(anim, "PowerSwitch_on", NOISE_POLLUTION.NOISY.TIER3); SoundEventVolumeCache.instance.AddVolume(anim, "PowerSwitch_off", NOISE_POLLUTION.NOISY.TIER3); GeneratedBuildings.RegisterWithOverlay(OverlayModes.Logic.HighlightItemIDs, ID); return(buildingDef); }
public override void DoPostConfigureComplete(GameObject go) { BuildingTemplates.DoPostConfigure(go); Prioritizable.AddRef(go); go.AddOrGet <EnergyConsumer>(); go.GetComponent <KPrefabID>().AddTag(RoomConstraints.ConstraintTags.IndustrialMachinery, false); List <Tag> tagList = new List <Tag>(); tagList.AddRange((IEnumerable <Tag>)STORAGEFILTERS.BAGABLE_CREATURES); tagList.AddRange((IEnumerable <Tag>)STORAGEFILTERS.NOT_EDIBLE_SOLIDS); tagList.AddRange((IEnumerable <Tag>)STORAGEFILTERS.FOOD); Storage storage = go.AddOrGet <Storage>(); storage.capacityKg = 10000.0f; storage.showInUI = true; storage.showDescriptor = true; storage.storageFilters = tagList; storage.allowItemRemoval = false; storage.onlyTransferFromLowerPriority = false; go.AddOrGet <Automatable>(); go.AddOrGet <ConveyorDuplicator>().SecondaryPort = this._secondaryPort; }
public override BuildingDef CreateBuildingDef() { var buildingDef = BuildingTemplates.CreateBuildingDef( id: Id, width: 1, height: 1, anim: "floor_mosaic_kanim", hitpoints: BUILDINGS.HITPOINTS.TIER2, construction_time: BUILDINGS.CONSTRUCTION_TIME_SECONDS.TIER2, construction_mass: BUILDINGS.CONSTRUCTION_MASS_KG.TIER2, construction_materials: new[] { SimHashes.Ceramic.ToString() }, melting_point: BUILDINGS.MELTING_POINT_KELVIN.TIER2, build_location_rule: BuildLocationRule.Tile, decor: new EffectorValues { amount = 15, radius = 3 }, noise: NOISE_POLLUTION.NONE); BuildingTemplates.CreateFoundationTileDef(buildingDef); buildingDef.Floodable = false; buildingDef.Entombable = false; buildingDef.Overheatable = false; buildingDef.UseStructureTemperature = false; buildingDef.AudioCategory = "Metal"; buildingDef.AudioSize = "small"; buildingDef.BaseTimeUntilRepair = -1f; buildingDef.SceneLayer = Grid.SceneLayer.TileMain; buildingDef.isKAnimTile = true; buildingDef.isSolidTile = true; buildingDef.BlockTileAtlas = Assets.GetTextureAtlas("tiles_POI"); buildingDef.BlockTilePlaceAtlas = Assets.GetTextureAtlas("tiles_solid_place"); buildingDef.BlockTileMaterial = Assets.GetMaterial("tiles_solid"); buildingDef.DecorBlockTileInfo = Assets.GetBlockTileDecorInfo("tiles_POI_tops_decor_info"); buildingDef.DecorPlaceBlockTileInfo = Assets.GetBlockTileDecorInfo("tiles_POI_tops_decor_info"); buildingDef.ConstructionOffsetFilter = BuildingDef.ConstructionOffsetFilter_OneDown; return(buildingDef); }
public override BuildingDef CreateBuildingDef() { string id = this.GetID(); string[] strArray = new string[2] { "BuildableRaw", "RefinedMetal" }; float[] construction_mass = new float[2] { BUILDINGS.CONSTRUCTION_MASS_KG.TIER4[0], BUILDINGS.CONSTRUCTION_MASS_KG.TIER2[0] }; string[] construction_materials = strArray; EffectorValues none = NOISE_POLLUTION.NONE; EffectorValues tieR5 = BUILDINGS.DECOR.PENALTY.TIER5; EffectorValues noise = none; BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(id, 1, 1, "Insulatedheavywatttile_conductive_kanim", 100, 3f, construction_mass, construction_materials, 1600f, BuildLocationRule.HighWattBridgeTile, tieR5, noise, 0.2f); BuildingTemplates.CreateFoundationTileDef(buildingDef); buildingDef.ThermalConductivity = 0.01f; buildingDef.Overheatable = false; buildingDef.Floodable = false; buildingDef.Entombable = false; buildingDef.UseStructureTemperature = false; buildingDef.ViewMode = OverlayModes.Power.ID; buildingDef.AudioCategory = "Metal"; buildingDef.AudioSize = "small"; buildingDef.BaseTimeUntilRepair = -1f; buildingDef.PermittedRotations = PermittedRotations.R360; buildingDef.UtilityInputOffset = new CellOffset(0, 0); buildingDef.UtilityOutputOffset = new CellOffset(0, 2); buildingDef.ObjectLayer = ObjectLayer.Building; buildingDef.SceneLayer = Grid.SceneLayer.WireBridges; buildingDef.ForegroundLayer = Grid.SceneLayer.TileMain; GeneratedBuildings.RegisterWithOverlay(OverlayScreen.WireIDs, "InsulatedWireRefinedBridgeHighWattage"); return(buildingDef); }
public override BuildingDef CreateBuildingDef() { int width = 1; int height = 1; string anim = "switchthermal_kanim"; int hitpoints = 30; float construction_time = 30f; float[] tieR0 = TUNING.BUILDINGS.CONSTRUCTION_MASS_KG.TIER0; string[] refinedMetals = MATERIALS.REFINED_METALS; float melting_point = 1600f; BuildLocationRule build_location_rule = BuildLocationRule.Anywhere; EffectorValues none = TUNING.NOISE_POLLUTION.NONE; BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(ID, width, height, anim, hitpoints, construction_time, tieR0, refinedMetals, melting_point, build_location_rule, TUNING.BUILDINGS.DECOR.PENALTY.TIER0, none, 0.2f); buildingDef.Overheatable = false; buildingDef.Floodable = false; buildingDef.Entombable = false; buildingDef.ViewMode = OverlayModes.Logic.ID; //buildingDef.SceneLayer = Grid.SceneLayer.Building; buildingDef.SceneLayer = Grid.SceneLayer.LogicGates; buildingDef.ObjectLayer = ObjectLayer.LogicGate; //buildingDef.AudioCategory = "Metal"; //SoundEventVolumeCache.instance.AddVolume("switchthermal_kanim", "PowerSwitch_on", TUNING.NOISE_POLLUTION.NOISY.TIER3); //SoundEventVolumeCache.instance.AddVolume("switchthermal_kanim", "PowerSwitch_off", TUNING.NOISE_POLLUTION.NOISY.TIER3); buildingDef.LogicOutputPorts = new System.Collections.Generic.List <LogicPorts.Port> { OUTPUT_PORT }; GeneratedBuildings.RegisterWithOverlay(OverlayModes.Logic.HighlightItemIDs, TileTemperatureSensor.ID); //GeneratedBuildings.RegisterWithOverlay(OverlayModes.Logic.HighlightItemIDs, ID); return(buildingDef); }
public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag) { go.AddOrGet <SmartReservoir>(); go.AddOrGet <LogicOperationalController>(); Storage storage = BuildingTemplates.CreateDefaultStorage(go, false); storage.showDescriptor = true; storage.storageFilters = STORAGEFILTERS.GASES; storage.capacityKg = Loader.Config.gasStorage; storage.SetDefaultStoredItemModifiers(GasReservoirConfig.ReservoirStoredItemModifiers); ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>(); conduitConsumer.conduitType = ConduitType.Gas; conduitConsumer.ignoreMinMassCheck = true; conduitConsumer.forceAlwaysSatisfied = true; conduitConsumer.alwaysConsume = true; conduitConsumer.capacityKG = storage.capacityKg; ConduitDispenser conduitDispenser = go.AddOrGet <ConduitDispenser>(); conduitDispenser.conduitType = ConduitType.Gas; conduitDispenser.elementFilter = null; }
public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag) { go.AddOrGet <Reservoir>(); Storage storage = BuildingTemplates.CreateDefaultStorage(go); storage.showDescriptor = true; storage.allowItemRemoval = false; storage.storageFilters = STORAGEFILTERS.LIQUIDS; storage.capacityKg = 5000f; storage.SetDefaultStoredItemModifiers(GasReservoirConfig.ReservoirStoredItemModifiers); ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>(); conduitConsumer.conduitType = ConduitType.Liquid; conduitConsumer.ignoreMinMassCheck = true; conduitConsumer.forceAlwaysSatisfied = true; conduitConsumer.alwaysConsume = true; conduitConsumer.capacityKG = storage.capacityKg; ConduitDispenser conduitDispenser = go.AddOrGet <ConduitDispenser>(); conduitDispenser.conduitType = ConduitType.Liquid; conduitDispenser.elementFilter = null; }
public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag) { go.AddOrGet <DropAllWorkable>(); go.AddOrGet <BuildingComplete>().isManuallyOperated = true; GourmetCookingStation gourmetCookingStation = go.AddOrGet <GourmetCookingStation>(); gourmetCookingStation.resultState = ComplexFabricator.ResultState.Heated; gourmetCookingStation.heatedTemperature = 368.15f; gourmetCookingStation.duplicantOperated = true; gourmetCookingStation.sideScreenStyle = ComplexFabricatorSideScreen.StyleSetting.ListQueueHybrid; go.AddOrGet <FabricatorIngredientStatusManager>(); go.AddOrGet <CopyBuildingSettings>(); go.AddOrGet <ComplexFabricatorWorkable>(); BuildingTemplates.CreateComplexFabricatorStorage(go, gourmetCookingStation); gourmetCookingStation.fuelTag = FUEL_TAG; gourmetCookingStation.outStorage.capacityKg = 10f; gourmetCookingStation.inStorage.SetDefaultStoredItemModifiers(GourmetCookingStationStoredItemModifiers); gourmetCookingStation.buildStorage.SetDefaultStoredItemModifiers(GourmetCookingStationStoredItemModifiers); gourmetCookingStation.outStorage.SetDefaultStoredItemModifiers(GourmetCookingStationStoredItemModifiers); ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>(); conduitConsumer.capacityTag = FUEL_TAG; conduitConsumer.capacityKG = 10f; conduitConsumer.alwaysConsume = true; conduitConsumer.storage = gourmetCookingStation.inStorage; conduitConsumer.forceAlwaysSatisfied = true; ElementConverter elementConverter = go.AddOrGet <ElementConverter>(); elementConverter.consumedElements = new ElementConverter.ConsumedElement[1] { new ElementConverter.ConsumedElement(FUEL_TAG, 0.1f) }; elementConverter.outputElements = new ElementConverter.OutputElement[1] { new ElementConverter.OutputElement(0.025f, SimHashes.CarbonDioxide, 348.15f, false, false, 0f, 3f, 1f, byte.MaxValue, 0) }; ConfigureRecipes(); Prioritizable.AddRef(go); }
// Token: 0x06000021 RID: 33 RVA: 0x000027B0 File Offset: 0x000009B0 public override BuildingDef CreateBuildingDef() { var tier = BUILDINGS.CONSTRUCTION_MASS_KG.TIER3; var refined_METALS = MATERIALS.REFINED_METALS; var none = NOISE_POLLUTION.NONE; var buildingDef = BuildingTemplates.CreateBuildingDef("asquared31415.ConveyorBottleLoader", 1, 2, "conveyorin_kanim", 100, 60f, tier, refined_METALS, 1600f, BuildLocationRule.Anywhere, BUILDINGS.DECOR.PENALTY.TIER1, none); buildingDef.Deprecated = true; buildingDef.RequiresPowerInput = true; buildingDef.EnergyConsumptionWhenActive = 120f; buildingDef.SelfHeatKilowattsWhenActive = 2f; buildingDef.Floodable = false; buildingDef.ViewMode = OverlayModes.SolidConveyor.ID; buildingDef.AudioCategory = "Metal"; buildingDef.OutputConduitType = ConduitType.Solid; buildingDef.PowerInputOffset = new CellOffset(0, 1); buildingDef.UtilityOutputOffset = CellOffset.none; buildingDef.PermittedRotations = PermittedRotations.R360; buildingDef.LogicInputPorts = LogicOperationalController.CreateSingleInputPortList(CellOffset.none); GeneratedBuildings.RegisterWithOverlay(OverlayScreen.SolidConveyorIDs, "asquared31415.ConveyorBottleLoader"); return(buildingDef); }
public override BuildingDef CreateBuildingDef() { var def = BuildingTemplates.CreateBuildingDef( id: ID, width: 1, height: 1, anim: "logic_wires_kanim", // TODO hitpoints: BUILDINGS.HITPOINTS.TIER0, construction_time: BUILDINGS.CONSTRUCTION_TIME_SECONDS.TIER0, construction_mass: BUILDINGS.CONSTRUCTION_MASS_KG.TIER1, construction_materials: MATERIALS.REFINED_METALS, melting_point: BUILDINGS.MELTING_POINT_KELVIN.TIER1, build_location_rule: BuildLocationRule.Anywhere, decor: DECOR.PENALTY.TIER2, noise: NOISE_POLLUTION.NONE ); def.ViewMode = Network.SignalOverlayMode.ID; def.Floodable = false; def.Overheatable = false; def.Entombable = false; def.AudioCategory = AUDIO.METAL; def.AudioSize = "small"; def.BaseTimeUntilRepair = -1f; def.isKAnimTile = true; def.DragBuild = true; // TODO own object layer def.ObjectLayer = ObjectLayer.LogicWire; def.TileLayer = ObjectLayer.LogicWireTile; def.ReplacementLayer = ObjectLayer.LogicWireTile; def.SceneLayer = Grid.SceneLayer.LogicWires; // TODO hookup // def.isUtility = true; GeneratedBuildings.RegisterWithOverlay(Network.SignalOverlayMode.HighlightItemIDs, ID); return(def); }