Пример #1
0
    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);
    }
Пример #2
0
    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;
	}
Пример #4
0
    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);
    }
Пример #5
0
        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);
        }
Пример #6
0
        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;
        }
Пример #7
0
        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();
        }
Пример #8
0
        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>();
        }
Пример #9
0
        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);
        }
Пример #11
0
    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);
    }
Пример #12
0
        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);
        }
Пример #13
0
        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);
        }
Пример #15
0
        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);
        }
Пример #16
0
        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);
        }
Пример #17
0
        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);
    }
Пример #19
0
        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);
        }
Пример #20
0
        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);
    }
Пример #22
0
        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;
        }
Пример #23
0
        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);
    }
Пример #25
0
        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);
        }
Пример #26
0
        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);
        }
Пример #30
0
        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);
        }