public override BuildingDef CreateBuildingDef()
        {
            var def = BuildingTemplates.CreateBuildingDef(
                id: ID,
                width: 3,
                height: 1,
                anim: "conveyor_transferarm_kanim",
                hitpoints: HITPOINTS.TIER1,
                construction_time: CONSTRUCTION_TIME_SECONDS.TIER2,
                construction_mass: CONSTRUCTION_MASS_KG.TIER3,
                construction_materials: TUNING.MATERIALS.REFINED_METALS,
                melting_point: MELTING_POINT_KELVIN.TIER1,
                build_location_rule: BuildLocationRule.Anywhere,
                decor: DECOR.PENALTY.TIER2,
                noise: TUNING.NOISE_POLLUTION.NOISY.TIER0
                );

            def.Floodable                   = false;
            def.AudioCategory               = TUNING.AUDIO.METAL;
            def.RequiresPowerInput          = true;
            def.EnergyConsumptionWhenActive = ENERGY_CONSUMPTION_WHEN_ACTIVE.TIER2;
            def.ExhaustKilowattsWhenActive  = EXHAUST_ENERGY_ACTIVE.TIER0;
            def.SelfHeatKilowattsWhenActive = SELF_HEAT_KILOWATTS.TIER1;
            def.PermittedRotations          = PermittedRotations.R360;
            def.LogicInputPorts             = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));
            GeneratedBuildings.RegisterWithOverlay(OverlayScreen.HarvestableIDs, ID);
            return(def);
        }
예제 #2
0
        public override BuildingDef CreateBuildingDef()
        {
            var buildingDef = BuildingTemplates.CreateBuildingDef(
                id: Id,
                width: 3,
                height: 2,
                anim: "rock_polisher",
                hitpoints: BUILDINGS.HITPOINTS.TIER2,
                construction_time: BUILDINGS.CONSTRUCTION_TIME_SECONDS.TIER2,
                construction_mass: BUILDINGS.CONSTRUCTION_MASS_KG.TIER3,
                construction_materials: MATERIALS.ALL_METALS,
                melting_point: BUILDINGS.MELTING_POINT_KELVIN.TIER0,
                build_location_rule: BuildLocationRule.OnFloor,
                decor: BUILDINGS.DECOR.PENALTY.TIER1,
                noise: NOISE_POLLUTION.NOISY.TIER5,
                0.2f
                );

            buildingDef.RequiresPowerInput          = true;
            buildingDef.EnergyConsumptionWhenActive = 120f;
            buildingDef.ExhaustKilowattsWhenActive  = 3f;
            buildingDef.SelfHeatKilowattsWhenActive = 2f;
            buildingDef.ViewMode        = OverlayModes.Power.ID;
            buildingDef.AudioCategory   = "HollowMetal";
            buildingDef.LogicInputPorts = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));
            return(buildingDef);
        }
예제 #3
0
        public override BuildingDef CreateBuildingDef()
        {
            BuildingDef buildingDef = BuildingTemplates.
                                      CreateBuildingDef(// building ID, width, height, .kanim ID,
                ID, 1, 2, "zdropboxsender_kanim",
                // hitpoints, construction time,
                100, 120f,
                // build mass, build materials,
                TUNING.BUILDINGS.CONSTRUCTION_MASS_KG.TIER1,
                MATERIALS.ALL_METALS,
                // melting point (??), build location rule,
                800f, BuildLocationRule.OnFloor,
                // decor and noise
                TUNING.BUILDINGS.DECOR.PENALTY.TIER1,
                TUNING.NOISE_POLLUTION.NOISY.TIER0);

            buildingDef.AudioCategory = "HollowMetal";
            buildingDef.Floodable     = false;
            buildingDef.Overheatable  = false;
            buildingDef.Entombable    = true;

            buildingDef.LogicInputPorts = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));

            return(buildingDef);
        }
예제 #4
0
        public override BuildingDef CreateBuildingDef()
        {
            BuildingDef def = BuildingTemplates.CreateBuildingDef(
                ID,
                2,
                2,
                "piped_deodorizer_kanim",
                30,
                30f,
                BUILDINGS.CONSTRUCTION_MASS_KG.TIER2,
                MATERIALS.RAW_METALS,
                800f,
                BuildLocationRule.Anywhere,
                noise: NOISE_POLLUTION.NOISY.TIER3,
                decor: BUILDINGS.DECOR.PENALTY.TIER1
                );

            def.RequiresPowerInput          = true;
            def.EnergyConsumptionWhenActive = 120f;
            def.SelfHeatKilowattsWhenActive = 1f;
            def.InputConduitType            = ConduitType.Gas;
            def.OutputConduitType           = ConduitType.Gas;
            def.ViewMode            = OverlayModes.GasConduits.ID;
            def.AudioCategory       = "Metal";
            def.UtilityInputOffset  = new CellOffset(0, 0);
            def.UtilityOutputOffset = new CellOffset(1, 0);
            def.PowerInputOffset    = new CellOffset(1, 0);
            def.PermittedRotations  = PermittedRotations.FlipH;
            def.LogicInputPorts     = LogicOperationalController.CreateSingleInputPortList(new CellOffset(1, 0));
            GeneratedBuildings.RegisterWithOverlay(OverlayScreen.GasVentIDs, ID);
            return(def);
        }
예제 #5
0
        public override BuildingDef CreateBuildingDef()
        {
            var buildingDef = BuildingTemplates.CreateBuildingDef(
                id: Id,
                width: 4,
                height: 2,
                anim: "mineralizer",
                hitpoints: BUILDINGS.HITPOINTS.TIER2,
                construction_time: BUILDINGS.CONSTRUCTION_TIME_SECONDS.TIER2,
                construction_mass: BUILDINGS.CONSTRUCTION_MASS_KG.TIER3,
                construction_materials: MATERIALS.ALL_METALS,
                melting_point: BUILDINGS.MELTING_POINT_KELVIN.TIER0,
                build_location_rule: BuildLocationRule.OnFloor,
                decor: BUILDINGS.DECOR.NONE,
                noise: NOISE_POLLUTION.NOISY.TIER2,
                0.2f
                );

            buildingDef.RequiresPowerInput          = true;
            buildingDef.EnergyConsumptionWhenActive = 360f;
            buildingDef.ExhaustKilowattsWhenActive  = 8f;
            buildingDef.SelfHeatKilowattsWhenActive = 0f;
            buildingDef.InputConduitType            = ConduitType.Liquid;
            buildingDef.OutputConduitType           = ConduitType.Liquid;
            buildingDef.Floodable           = false;
            buildingDef.ViewMode            = OverlayModes.LiquidConduits.ID;
            buildingDef.AudioCategory       = "Metal";
            buildingDef.UtilityInputOffset  = new CellOffset(-1, 0);
            buildingDef.UtilityOutputOffset = new CellOffset(0, 0);
            buildingDef.PermittedRotations  = PermittedRotations.FlipH;
            buildingDef.LogicInputPorts     = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));
            return(buildingDef);
        }
예제 #6
0
        public override BuildingDef CreateBuildingDef()
        {
            var buildingDef = BuildingTemplates.CreateBuildingDef(
                id: ID,
                width: 1,
                height: 2,
                anim: "source_liquid_kanim",
                hitpoints: BUILDINGS.HITPOINTS.TIER2,
                construction_time: ModSettings.Instance.BuildTimeSeconds,
                construction_mass: ModSettings.Instance.BuildMassKg,
                construction_materials: ModSettings.Instance.SandboxOnly ? GameStrings.MaterialLists.Neutronium : MATERIALS.REFINED_METALS,
                melting_point: BUILDINGS.MELTING_POINT_KELVIN.TIER4,
                build_location_rule: BuildLocationRule.Anywhere,
                decor: BUILDINGS.DECOR.PENALTY.TIER1,
                noise: NOISE_POLLUTION.NOISY.TIER4,
                0.2f
                );

            buildingDef.Overheatable        = false;
            buildingDef.Entombable          = false;
            buildingDef.Floodable           = false;
            buildingDef.OutputConduitType   = ConduitType.Liquid;
            buildingDef.ViewMode            = OverlayModes.LiquidConduits.ID;
            buildingDef.AudioCategory       = "Metal";
            buildingDef.PermittedRotations  = PermittedRotations.Unrotatable;
            buildingDef.UtilityOutputOffset = new CellOffset(0, 0);
            buildingDef.LogicInputPorts     = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));
            GeneratedBuildings.RegisterWithOverlay(OverlayScreen.LiquidVentIDs, ID);
            return(buildingDef);
        }
예제 #7
0
        public override BuildingDef CreateBuildingDef()
        {
            var width                  = 3;
            var height                 = 4;
            var anim                   = "bleachstone_refinery_kanim";
            var hitpoints              = 100;
            var construction_time      = 480f;
            var construction_materials = new string[2]
            {
                "RefinedMetal",
                "Plastic"
            };
            var tieR5       = NOISE_POLLUTION.NOISY.TIER5;
            var buildingDef = BuildingTemplates.CreateBuildingDef(Id, width, height, anim, hitpoints,
                                                                  construction_time, new float[2]
            {
                BUILDINGS.CONSTRUCTION_MASS_KG.TIER5[0],
                BUILDINGS.CONSTRUCTION_MASS_KG.TIER2[0]
            }, construction_materials, 2400f, BuildLocationRule.OnFloor, BUILDINGS.DECOR.PENALTY.TIER1, tieR5);

            buildingDef.Overheatable                = false;
            buildingDef.RequiresPowerInput          = true;
            buildingDef.PowerInputOffset            = new CellOffset(0, 0);
            buildingDef.EnergyConsumptionWhenActive = 600f;
            buildingDef.ExhaustKilowattsWhenActive  = 4f;
            buildingDef.SelfHeatKilowattsWhenActive = 2f;
            buildingDef.AudioCategory               = "HollowMetal";
            buildingDef.InputConduitType            = ConduitType.Gas;
            buildingDef.UtilityInputOffset          = new CellOffset(1, 0);

            buildingDef.LogicInputPorts = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 1));
            return(buildingDef);
        }
예제 #8
0
        public override BuildingDef CreateBuildingDef()
        {
            BuildingDef buildingDef = BuildingTemplates.
                                      CreateBuildingDef(// building ID, width, height, .kanim ID,
                ID, 1, 1, "zconveyorrecver_kanim",
                // hitpoints, construction time,
                100, 120f,
                // build mass, build materials,
                TUNING.BUILDINGS.CONSTRUCTION_MASS_KG.TIER1,
                MATERIALS.ALL_METALS,
                // melting point (??), build location rule,
                800f, BuildLocationRule.Anywhere,
                // decor and noise
                TUNING.BUILDINGS.DECOR.PENALTY.TIER1,
                TUNING.NOISE_POLLUTION.NOISY.TIER0);

            buildingDef.RequiresPowerInput          = true;
            buildingDef.EnergyConsumptionWhenActive = 120f;
            buildingDef.ExhaustKilowattsWhenActive  = 0.0f;
            buildingDef.SelfHeatKilowattsWhenActive = 2f;
            buildingDef.Floodable           = false;
            buildingDef.ViewMode            = OverlayModes.SolidConveyor.ID;
            buildingDef.AudioCategory       = "Metal";
            buildingDef.OutputConduitType   = ConduitType.Solid;
            buildingDef.PowerInputOffset    = new CellOffset(0, 0);
            buildingDef.UtilityOutputOffset = new CellOffset(0, 0);
            GeneratedBuildings.RegisterWithOverlay(OverlayScreen.SolidConveyorIDs, "ZConveyorRecver");

            buildingDef.LogicInputPorts = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));

            return(buildingDef);
        }
예제 #9
0
        private const float LIME_CONSUMPTION_RATE = 0.005f; // 5g

        public override BuildingDef CreateBuildingDef()
        {
            var width             = 2;
            var height            = 2;
            var hitpoints         = 30;
            var construction_time = 60f;

            float[]  tieR2               = BUILDINGS.CONSTRUCTION_MASS_KG.TIER2;
            string[] rawMetals           = MATERIALS.REFINED_METALS;
            var      melting_point       = 800f;
            var      build_location_rule = BuildLocationRule.OnFloor;
            var      tieR3               = NOISE_POLLUTION.NOISY.TIER3;
            var      buildingDef         = BuildingTemplates.CreateBuildingDef(ID, width, height, "bigco2scrubber_kanim", hitpoints, construction_time,
                                                                               tieR2, rawMetals, melting_point, build_location_rule, BUILDINGS.DECOR.PENALTY.TIER1, tieR3);

            buildingDef.RequiresPowerInput          = true;
            buildingDef.EnergyConsumptionWhenActive = 360f;
            buildingDef.SelfHeatKilowattsWhenActive = 2f;
            buildingDef.ViewMode            = OverlayModes.Oxygen.ID;
            buildingDef.AudioCategory       = "Metal";
            buildingDef.AudioSize           = "large";
            buildingDef.UtilityInputOffset  = new CellOffset(0, 0);
            buildingDef.UtilityOutputOffset = new CellOffset(1, 1);
            buildingDef.PermittedRotations  = PermittedRotations.FlipH;
            buildingDef.LogicInputPorts     = LogicOperationalController.CreateSingleInputPortList(new CellOffset(1, 0));
            return(buildingDef);
        }
        public override BuildingDef CreateBuildingDef()
        {
            var width             = 3;
            var height            = 4;
            var anim              = "cfbgen_kanim";
            var hitpoints         = 100;
            var construction_time = 120f;

            float[]  tieR5_1 = BUILDINGS.CONSTRUCTION_MASS_KG.TIER5;
            string[] mats    = new []
            {
                SimHashes.Ceramic.ToString()
            };
            var melting_point       = 2400f;
            var build_location_rule = BuildLocationRule.OnFloor;
            var tieR5_2             = NOISE_POLLUTION.NOISY.TIER5;
            var buildingDef         = BuildingTemplates.CreateBuildingDef(ID, width, height, anim, hitpoints, construction_time,
                                                                          tieR5_1, mats, melting_point, build_location_rule, BUILDINGS.DECOR.PENALTY.TIER2, tieR5_2);

            buildingDef.UtilityOutputOffset = new CellOffset(-1, 3);
            buildingDef.OutputConduitType   = ConduitType.Gas;

            buildingDef.Overheatable                = true;
            buildingDef.OverheatTemperature         = 73.1f + 75f;
            buildingDef.GeneratorWattageRating      = 2000f;
            buildingDef.GeneratorBaseCapacity       = 20000f;
            buildingDef.ExhaustKilowattsWhenActive  = 40f;
            buildingDef.SelfHeatKilowattsWhenActive = 40f;
            buildingDef.ViewMode        = OverlayModes.Power.ID;
            buildingDef.AudioCategory   = "HollowMetal";
            buildingDef.AudioSize       = "large";
            buildingDef.LogicInputPorts = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));

            return(buildingDef);
        }
예제 #11
0
        public override BuildingDef CreateBuildingDef()
        {
            string id                = "BrisInfiniteGenerator";
            int    width             = 1;
            int    height            = 2;
            string anim              = "batterysm_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       = 800f;
            BuildLocationRule build_location_rule = BuildLocationRule.Conduit;
            EffectorValues    nONE        = NOISE_POLLUTION.NONE;
            BuildingDef       buildingDef = BuildingTemplates.CreateBuildingDef(ID, width, height, anim, hitpoints, construction_time, tieR4, rawMinerals, melting_point, build_location_rule, BUILDINGS.DECOR.PENALTY.TIER1, nONE, 0.2f);

            buildingDef.GeneratorWattageRating      = 1210000000f;
            buildingDef.GeneratorBaseCapacity       = 20000f;
            buildingDef.ExhaustKilowattsWhenActive  = 0f;
            buildingDef.SelfHeatKilowattsWhenActive = 0f;
            buildingDef.PermittedRotations          = PermittedRotations.R360;
            buildingDef.ViewMode            = OverlayModes.Power.ID;
            buildingDef.Overheatable        = false;
            buildingDef.RequiresPowerInput  = false;
            buildingDef.RequiresPowerOutput = true;
            buildingDef.Entombable          = false;
            buildingDef.Floodable           = false;
            buildingDef.PowerOutputOffset   = new CellOffset(0, 0);
            SoundEventVolumeCache.instance.AddVolume("batterysm_kanim", "Battery_sm_rattle", TUNING.NOISE_POLLUTION.NOISY.TIER2);
            buildingDef.LogicInputPorts = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));
            return(buildingDef);
        }
예제 #12
0
        public override BuildingDef CreateBuildingDef()
        {
            BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(
                id: ID,
                width: 1,
                height: 2,
                anim: "wireless_receiver_kanim",
                hitpoints: 30,
                construction_time: WirelessPowerConfigChecker.SenderReceiverBuildTime,
                construction_mass: new float[] { WirelessPowerConfigChecker.SenderReceiverMaterialCost },
                construction_materials: WirelessPowerConfigChecker.BuildUsesOnlySteel ? new string[] { "Steel" } : MATERIALS.REFINED_METALS,
                melting_point: 400f,
                build_location_rule: BuildLocationRule.OnFloor,
                decor: TUNING.BUILDINGS.DECOR.PENALTY.TIER1,
                noise: TUNING.NOISE_POLLUTION.NONE,
                temperature_modification_mass_scale: 0.2f
                );

            buildingDef.Floodable                   = false;
            buildingDef.AudioCategory               = "Metal";
            buildingDef.GeneratorWattageRating      = WirelessPowerBattery.CalculateEnergyAfterFalloff(WirelessPowerConfigChecker.DefaultTransfer);
            buildingDef.GeneratorBaseCapacity       = 2 * WirelessPowerConfigChecker.MaxTransfer;
            buildingDef.ExhaustKilowattsWhenActive  = 0.25f;
            buildingDef.SelfHeatKilowattsWhenActive = 0.25f;
            buildingDef.ViewMode          = OverlayModes.Power.ID;
            buildingDef.AudioCategory     = "Metal";
            buildingDef.PowerOutputOffset = new CellOffset(0, 0);
            buildingDef.LogicInputPorts   = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));
            return(buildingDef);
        }
예제 #13
0
        // copy paste with some change
        public override BuildingDef CreateBuildingDef()
        {
            string id                = "PollutedElectrolyzer";
            int    width             = 2;
            int    height            = 2;
            string anim              = "electrolyzer_kanim";
            int    hitpoints         = 30;
            float  construction_time = 30f;

            float[]           tier                = BUILDINGS.CONSTRUCTION_MASS_KG.TIER3;
            string[]          all_METALS          = MATERIALS.ALL_METALS;
            float             melting_point       = 800f;
            BuildLocationRule build_location_rule = BuildLocationRule.OnFloor;
            EffectorValues    tier2               = NOISE_POLLUTION.NOISY.TIER3;
            BuildingDef       buildingDef         = BuildingTemplates.CreateBuildingDef(id, width, height, anim, hitpoints, construction_time, tier, all_METALS, melting_point, build_location_rule, BUILDINGS.DECOR.PENALTY.TIER1, tier2, 0.2f);

            buildingDef.RequiresPowerInput          = true;
            buildingDef.PowerInputOffset            = new CellOffset(1, 0);
            buildingDef.EnergyConsumptionWhenActive = 120f;
            buildingDef.ExhaustKilowattsWhenActive  = 0.25f;
            buildingDef.SelfHeatKilowattsWhenActive = 1f;
            buildingDef.ViewMode           = OverlayModes.Oxygen.ID;
            buildingDef.AudioCategory      = "HollowMetal";
            buildingDef.InputConduitType   = ConduitType.Liquid;
            buildingDef.UtilityInputOffset = new CellOffset(0, 0);
            buildingDef.LogicInputPorts    = LogicOperationalController.CreateSingleInputPortList(new CellOffset(1, 1));

            return(buildingDef);
        }
예제 #14
0
        public override BuildingDef CreateBuildingDef()
        {
            var width             = 3;
            var height            = 3;
            var anim              = "uvcleaner_kanim";
            var hitpoints         = 100;
            var construction_time = 120f;

            float[]  mass                = BUILDINGS.CONSTRUCTION_MASS_KG.TIER3;
            string[] mats                = MATERIALS.REFINED_METALS;
            var      melting_point       = 1600f;
            var      build_location_rule = BuildLocationRule.OnFloor;
            var      tieR2               = NOISE_POLLUTION.NOISY.TIER2;
            var      buildingDef         = BuildingTemplates.CreateBuildingDef(ID, width, height, anim, hitpoints, construction_time,
                                                                               mass, mats, melting_point, build_location_rule, BUILDINGS.DECOR.NONE, tieR2);

            BuildingTemplates.CreateElectricalBuildingDef(buildingDef);
            buildingDef.EnergyConsumptionWhenActive = 320f;
            buildingDef.SelfHeatKilowattsWhenActive = 6.0f;
            buildingDef.InputConduitType            = ConduitType.Liquid;
            buildingDef.OutputConduitType           = ConduitType.Liquid;
            buildingDef.Floodable       = false;
            buildingDef.LogicInputPorts = LogicOperationalController.CreateSingleInputPortList(
                new CellOffset(1, 1));
            buildingDef.PowerInputOffset    = new CellOffset(1, 0);
            buildingDef.UtilityInputOffset  = new CellOffset(0, 0);
            buildingDef.PermittedRotations  = PermittedRotations.FlipH;
            buildingDef.ViewMode            = OverlayModes.LiquidConduits.ID;
            buildingDef.OverheatTemperature = TUNING.BUILDINGS.OVERHEAT_TEMPERATURES.NORMAL;
            return(buildingDef);
        }
        public override BuildingDef CreateBuildingDef()
        {
            var buildingDef = BuildingTemplates.CreateBuildingDef(
                id: Id,
                width: 1,
                height: 2,
                anim: "miniwaterpump_kanim",
                hitpoints: BUILDINGS.HITPOINTS.TIER2,
                construction_time: BUILDINGS.CONSTRUCTION_TIME_SECONDS.TIER0,
                construction_mass: BUILDINGS.CONSTRUCTION_MASS_KG.TIER0,
                construction_materials: MATERIALS.ALL_METALS,
                melting_point: BUILDINGS.MELTING_POINT_KELVIN.TIER0,
                build_location_rule: BuildLocationRule.Conduit,
                decor: BUILDINGS.DECOR.PENALTY.TIER1,
                noise: NOISE_POLLUTION.NOISY.TIER0,
                0.2f
                );

            buildingDef.InputConduitType   = ConduitType.Liquid;
            buildingDef.Floodable          = false;
            buildingDef.ViewMode           = OverlayModes.LiquidConduits.ID;
            buildingDef.AudioCategory      = "HollowMetal";
            buildingDef.UtilityInputOffset = new CellOffset(0, 1);
            buildingDef.PermittedRotations = PermittedRotations.R360;
            buildingDef.LogicInputPorts    = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));
            return(buildingDef);
        }
예제 #16
0
    private static string ResolveInfoStatusItemString(string format_str, object data)
    {
        LogicOperationalController logicOperationalController = (LogicOperationalController)data;
        Operational component = logicOperationalController.GetComponent <Operational>();

        return((!component.GetFlag(logicOperationalFlag)) ? BUILDING.STATUSITEMS.LOGIC.LOGIC_CONTROLLED_DISABLED : BUILDING.STATUSITEMS.LOGIC.LOGIC_CONTROLLED_ENABLED);
    }
예제 #17
0
        public override BuildingDef CreateBuildingDef()
        {
            BuildingDef def = BuildingTemplates.CreateBuildingDef(
                id: ID,
                width: 1,
                height: 3,
                anim: "stirling_kanim",
                hitpoints: 30,
                construction_time: 60f,
                construction_mass: new float[] {
                BUILDINGS.CONSTRUCTION_MASS_KG.TIER4[0]
            },
                construction_materials: TUNING.MATERIALS.ALL_METALS,
                melting_point: 1600f,
                build_location_rule: BuildLocationRule.OnFloor,
                decor: DECOR.PENALTY.TIER3,
                noise: NOISE_POLLUTION.NOISY.TIER3
                );

            def.AudioCategory          = TUNING.AUDIO.CATEGORY.HOLLOW_METAL;
            def.AudioSize              = "large";
            def.Floodable              = false;
            def.Entombable             = true;
            def.GeneratorWattageRating = ModSettings.Instance.MaxWattOutput;
            def.GeneratorBaseCapacity  = def.GeneratorWattageRating;
            def.LogicInputPorts        = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));
            def.Overheatable           = true;
            def.OverheatTemperature    = MAX_TEMP;
            def.PermittedRotations     = PermittedRotations.Unrotatable;
            def.RequiresPowerOutput    = true;
            def.PowerOutputOffset      = new CellOffset(0, 0);
            def.ViewMode = OverlayModes.Power.ID;
            def.SelfHeatKilowattsWhenActive = 0f;
            return(def);
        }
예제 #18
0
        public override BuildingDef CreateBuildingDef()
        {
            var buildingDef = BuildingTemplates.CreateBuildingDef(
                id: ID,
                width: 3,
                height: 3,
                anim: "smelter_kanim",
                hitpoints: BUILDINGS.HITPOINTS.TIER1,
                construction_time: BUILDINGS.CONSTRUCTION_TIME_SECONDS.TIER3,
                construction_mass: new float[] { BUILDINGS.CONSTRUCTION_MASS_KG.TIER3[0], BUILDINGS.CONSTRUCTION_MASS_KG.TIER4[0] },
                construction_materials: new string[] { MATERIALS.METAL, MATERIALS.BUILDABLERAW },
                melting_point: BUILDINGS.MELTING_POINT_KELVIN.TIER2,
                build_location_rule: BuildLocationRule.OnFloor,
                decor: BUILDINGS.DECOR.PENALTY.TIER2,
                noise: NOISE_POLLUTION.NOISY.TIER6
                );

            buildingDef.RequiresPowerInput          = false;
            buildingDef.SelfHeatKilowattsWhenActive = BUILDINGS.SELF_HEAT_KILOWATTS.TIER4;
            buildingDef.ExhaustKilowattsWhenActive  = BUILDINGS.EXHAUST_ENERGY_ACTIVE.TIER8;
            buildingDef.OverheatTemperature         = BUILDINGS.OVERHEAT_TEMPERATURES.HIGH_2;
            buildingDef.InputConduitType            = ConduitType.Liquid;
            buildingDef.UtilityInputOffset          = new CellOffset(1, 0);
            buildingDef.OutputConduitType           = ConduitType.None;
            buildingDef.ViewMode        = OverlayModes.LiquidConduits.ID;
            buildingDef.AudioCategory   = "HollowMetal";
            buildingDef.AudioSize       = "large";
            buildingDef.LogicInputPorts = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));
            return(buildingDef);
        }
예제 #19
0
        public override BuildingDef CreateBuildingDef()
        {
            var buildingDef = BuildingTemplates.CreateBuildingDef(
                id: Id,
                width: 1,
                height: 1,
                anim: "alarm_lamp_kanim",
                hitpoints: BUILDINGS.HITPOINTS.TIER1,
                construction_time: BUILDINGS.CONSTRUCTION_TIME_SECONDS.TIER2,
                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.NONE,
                noise: NOISE_POLLUTION.NONE);

            buildingDef.Floodable           = false;
            buildingDef.Overheatable        = false;
            buildingDef.Entombable          = false;
            buildingDef.ViewMode            = OverlayModes.Logic.ID;
            buildingDef.AudioCategory       = "Metal";
            buildingDef.SceneLayer          = Grid.SceneLayer.Building;
            buildingDef.BaseTimeUntilRepair = -1f;
            buildingDef.DefaultAnimState    = "off";
            buildingDef.PermittedRotations  = PermittedRotations.R360;
            buildingDef.LogicInputPorts     = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));

            SoundEventVolumeCache.instance.AddVolume("switchgaspressure_kanim", "PowerSwitch_on", NOISE_POLLUTION.NOISY.TIER1);
            SoundEventVolumeCache.instance.AddVolume("switchgaspressure_kanim", "PowerSwitch_off", NOISE_POLLUTION.NOISY.TIER1);
            GeneratedBuildings.RegisterWithOverlay(OverlayModes.Logic.HighlightItemIDs, Id);

            return(buildingDef);
        }
예제 #20
0
        public override BuildingDef CreateBuildingDef()
        {
            FusionReactor.InitRadiation();

            int    width             = 4;
            int    height            = 5;
            string anim              = "supermaterial_refinery_kanim";
            int    hitpoints         = 30;
            float  constructionTime  = 480;
            var    mass              = new float[] { TUNING.BUILDINGS.CONSTRUCTION_MASS_KG.TIER6[0], TUNING.BUILDINGS.CONSTRUCTION_MASS_KG.TIER5[0], TUNING.BUILDINGS.CONSTRUCTION_MASS_KG.TIER5[0] };
            var    material          = new string[] { TUNING.MATERIALS.REFINED_METAL, SimHashes.Ceramic.ToString(), SimHashes.Lead.ToString() };
            float  meltingPoint      = 2600;
            var    buildLocationRule = BuildLocationRule.OnFloor;
            var    noise             = TUNING.NOISE_POLLUTION.NOISY.TIER6;
            var    decor             = TUNING.BUILDINGS.DECOR.PENALTY.TIER2;

            BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(ID, width, height, anim, hitpoints, constructionTime, mass, material, meltingPoint, buildLocationRule, decor, noise);

            buildingDef.RequiresPowerInput          = true;
            buildingDef.EnergyConsumptionWhenActive = 1000f;
            buildingDef.SelfHeatKilowattsWhenActive = 16f;
            buildingDef.InputConduitType            = ConduitType.Liquid;
            buildingDef.UtilityInputOffset          = new CellOffset(-1, 1);
            buildingDef.OutputConduitType           = ConduitType.Liquid;
            buildingDef.UtilityOutputOffset         = new CellOffset(1, 0);
            buildingDef.LogicInputPorts             = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 1));
            buildingDef.ViewMode           = OverlayModes.Power.ID;
            buildingDef.AudioCategory      = "HollowMetal";
            buildingDef.PermittedRotations = PermittedRotations.FlipH;

            return(buildingDef);
        }
예제 #21
0
        public override BuildingDef CreateBuildingDef()
        {
            BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(ID, 1, 2, "trashcan_liquid_kanim",
                                                                          hitpoints: 100,
                                                                          construction_time: 60f,
                                                                          construction_mass: TUNING.BUILDINGS.CONSTRUCTION_MASS_KG.TIER3,
                                                                          construction_materials: MATERIALS.REFINED_METALS,
                                                                          melting_point: 1600f,
                                                                          build_location_rule: BuildLocationRule.Anywhere,
                                                                          decor: TUNING.BUILDINGS.DECOR.PENALTY.TIER1,
                                                                          noise: TUNING.NOISE_POLLUTION.NONE,
                                                                          temperature_modification_mass_scale: 0.2f
                                                                          );

            buildingDef.RequiresPowerInput          = TrashcansConfigChecker.RequiresPower;
            buildingDef.EnergyConsumptionWhenActive = TrashcansConfigChecker.EnergyConsumptionWhenActive;
            buildingDef.ExhaustKilowattsWhenActive  = 0.0f;
            buildingDef.SelfHeatKilowattsWhenActive = 2f;
            buildingDef.Overheatable  = TrashcansConfigChecker.CanOverheat;
            buildingDef.Floodable     = TrashcansConfigChecker.CanFlood;
            buildingDef.AudioCategory = "Metal";


            buildingDef.ViewMode           = OverlayModes.LiquidConduits.ID;
            buildingDef.InputConduitType   = ConduitType.Liquid;
            buildingDef.PowerInputOffset   = new CellOffset(0, 0);
            buildingDef.UtilityInputOffset = new CellOffset(0, 0);
            buildingDef.PermittedRotations = PermittedRotations.R360;
            buildingDef.LogicInputPorts    = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));
            return(buildingDef);
        }
예제 #22
0
        public override BuildingDef CreateBuildingDef()
        {
            BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(
                id: ID,
                width: 2,
                height: 3,
                anim: "wireless_battery_kanim",
                hitpoints: 30,
                construction_time: WirelessPowerConfigChecker.BatteryBuildTime,
                construction_mass: new float[] { WirelessPowerConfigChecker.BatteryMaterialCost },
                construction_materials: WirelessPowerConfigChecker.BuildUsesOnlySteel ? new string[] { "Steel" } : MATERIALS.REFINED_METALS,
                melting_point: 400f,
                build_location_rule: BuildLocationRule.OnFloor,
                decor: TUNING.BUILDINGS.DECOR.PENALTY.TIER2,
                noise: TUNING.NOISE_POLLUTION.NOISY.TIER1,
                temperature_modification_mass_scale: 0.2f
                );

            SoundEventVolumeCache.instance.AddVolume("wireless_battery_kanim", "Battery_med_rattle", TUNING.NOISE_POLLUTION.NOISY.TIER2);
            buildingDef.AudioCategory = "Metal";
            buildingDef.ExhaustKilowattsWhenActive  = 0.5f;
            buildingDef.SelfHeatKilowattsWhenActive = 0.5f;
            buildingDef.Entombable      = false;
            buildingDef.ViewMode        = OverlayModes.Power.ID;
            buildingDef.LogicInputPorts = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));
            return(buildingDef);
        }
        public override BuildingDef CreateBuildingDef()
        {
            var buildingDef = BuildingTemplates.CreateBuildingDef(
                id: ID,
                width: 2,
                height: 2,
                construction_mass: new float[] { BUILDINGS.CONSTRUCTION_MASS_KG.TIER3[0], BUILDINGS.CONSTRUCTION_MASS_KG.TIER3[0] },
                construction_materials: new string[] { MATERIALS.METAL, MATERIALS.WOOD },
                noise: NOISE_POLLUTION.NOISY.TIER3,
                anim: "generatormanual_kanim",
                hitpoints: BUILDINGS.HITPOINTS.TIER1,
                construction_time: BUILDINGS.CONSTRUCTION_TIME_SECONDS.TIER2,
                melting_point: BUILDINGS.MELTING_POINT_KELVIN.TIER1,
                build_location_rule: BuildLocationRule.OnFloor,
                decor: BUILDINGS.DECOR.NONE
                );

            buildingDef.GeneratorWattageRating = SquirrelGeneratorOptions.Instance.GeneratorWattageRating;
            buildingDef.GeneratorBaseCapacity  = 10000f;
            buildingDef.RequiresPowerOutput    = true;
            buildingDef.PowerOutputOffset      = new CellOffset(0, 0);
            buildingDef.ViewMode                    = OverlayModes.Power.ID;
            buildingDef.AudioCategory               = "Metal";
            buildingDef.Breakable                   = true;
            buildingDef.ForegroundLayer             = Grid.SceneLayer.BuildingFront;
            buildingDef.LogicInputPorts             = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));
            buildingDef.SelfHeatKilowattsWhenActive = SquirrelGeneratorOptions.Instance.SelfHeatWatts / Constants.KW2DTU_S;
            return(buildingDef);
        }
예제 #24
0
        public override BuildingDef CreateBuildingDef()
        {
            string id                = "SlimeRefinery";
            int    width             = 3;
            int    height            = 4;
            string anim              = "oxylite_refinery_kanim";
            int    hitpoints         = 100;
            float  construction_time = 480f;

            string[] construction_materials = new string[]
            {
                "RefinedMetal",
                "Plastic"
            };
            EffectorValues tier        = NOISE_POLLUTION.NOISY.TIER5;
            BuildingDef    buildingDef = BuildingTemplates.CreateBuildingDef(id, width, height, anim, hitpoints, construction_time, new float[]
            {
                BUILDINGS.CONSTRUCTION_MASS_KG.TIER5[0],
                BUILDINGS.CONSTRUCTION_MASS_KG.TIER2[0]
            }, construction_materials, 2400f, BuildLocationRule.OnFloor, BUILDINGS.DECOR.PENALTY.TIER1, tier, 0.2f);

            buildingDef.Overheatable                = false;
            buildingDef.RequiresPowerInput          = true;
            buildingDef.PowerInputOffset            = new CellOffset(0, 0);
            buildingDef.EnergyConsumptionWhenActive = 1200f;
            buildingDef.ExhaustKilowattsWhenActive  = 8f;
            buildingDef.SelfHeatKilowattsWhenActive = 4f;
            buildingDef.AudioCategory               = "HollowMetal";
            buildingDef.InputConduitType            = ConduitType.Gas;
            buildingDef.UtilityInputOffset          = new CellOffset(1, 0);
            buildingDef.LogicInputPorts             = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 1));
            return(buildingDef);
        }
예제 #25
0
 private static void Postfix(ref BuildingDef __result)
 {
     __result.ViewMode         = OverlayModes.GasConduits.ID;
     __result.MaterialCategory = MATERIALS.REFINED_METALS.AddItem(ID).ToArray();
     __result.Mass             = __result.Mass.AddItem(2).ToArray();
     if (ReBuildableAETNOptions.Instance.AddLogicPort)
     {
         __result.LogicInputPorts = LogicOperationalController.CreateSingleInputPortList(new CellOffset(1, 0));
     }
 }
예제 #26
0
 protected override void ConfigureBuildingDef(BuildingDef buildingDef)
 {
     base.ConfigureBuildingDef(buildingDef);
     buildingDef.Floodable                   = false;
     buildingDef.AudioCategory               = "Metal";
     buildingDef.RequiresPowerInput          = true;
     buildingDef.EnergyConsumptionWhenActive = BUILDINGS.ENERGY_CONSUMPTION_WHEN_ACTIVE.TIER3;
     buildingDef.ExhaustKilowattsWhenActive  = BUILDINGS.SELF_HEAT_KILOWATTS.TIER0;
     buildingDef.SelfHeatKilowattsWhenActive = BUILDINGS.SELF_HEAT_KILOWATTS.TIER0;
     buildingDef.PermittedRotations          = PermittedRotations.R360;
     buildingDef.LogicInputPorts             = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));
 }
예제 #27
0
    public override void DoPostConfigureComplete(GameObject go)
    {
        Object.DestroyImmediate(go.GetComponent <ConduitConsumer>());
        Object.DestroyImmediate(go.GetComponent <ConduitDispenser>());
        RequireInputs component = go.GetComponent <RequireInputs>();

        component.SetRequirements(true, false);
        GeneratedBuildings.RegisterLogicPorts(go, INPUT_PORTS);
        LogicOperationalController logicOperationalController = go.AddOrGet <LogicOperationalController>();

        logicOperationalController.unNetworkedValue = 0;
    }
예제 #28
0
        public override BuildingDef CreateBuildingDef()
        {
            BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(ID, 1, 1, "zliquidrecver_kanim", 100, 120f, TUNING.BUILDINGS.CONSTRUCTION_MASS_KG.TIER2, MATERIALS.ALL_METALS, 800f, BuildLocationRule.Anywhere, TUNING.BUILDINGS.DECOR.PENALTY.TIER1, TUNING.NOISE_POLLUTION.NOISY.TIER0, 0.2f);

            buildingDef.OutputConduitType   = ConduitType.Liquid;
            buildingDef.ViewMode            = OverlayModes.LiquidConduits.ID;
            buildingDef.AudioCategory       = "HollowMetal";
            buildingDef.UtilityOutputOffset = new CellOffset(0, 0);
            buildingDef.Floodable           = false;
            buildingDef.Overheatable        = false;
            buildingDef.Entombable          = false;

            buildingDef.LogicInputPorts = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));

            GeneratedBuildings.RegisterWithOverlay(OverlayScreen.LiquidVentIDs, ID);
            return(buildingDef);
        }
예제 #29
0
        public override BuildingDef CreateBuildingDef()
        {
            BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef("MeteorDefenseLaser", 2, 2, "auto_miner_kanim", 10, 10f, BUILDINGS.CONSTRUCTION_MASS_KG.TIER3, MATERIALS.REFINED_METALS, 1600f, BuildLocationRule.OnFoundationRotatable, BUILDINGS.DECOR.PENALTY.TIER2, NOISE_POLLUTION.NOISY.TIER0);

            buildingDef.Floodable                   = false;
            buildingDef.AudioCategory               = "Metal";
            buildingDef.RequiresPowerInput          = true;
            buildingDef.EnergyConsumptionWhenActive = 1000f;
            buildingDef.ExhaustKilowattsWhenActive  = 0f;
            buildingDef.SelfHeatKilowattsWhenActive = 10f;
            buildingDef.PermittedRotations          = PermittedRotations.R360;
            buildingDef.Entombable                  = true;
            buildingDef.Floodable                   = true;
            buildingDef.LogicInputPorts             = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));
            GeneratedBuildings.RegisterWithOverlay(OverlayScreen.SolidConveyorIDs, "AutoMiner");
            return(buildingDef);
        }
예제 #30
0
        public override BuildingDef CreateBuildingDef()
        {
            BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(ID, 1, 1, "zpowersender_1kw_kanim", 30, 30f, BUILDINGS.CONSTRUCTION_MASS_KG.TIER3, MATERIALS.RAW_METALS, 800f, BuildLocationRule.Anywhere, BUILDINGS.DECOR.PENALTY.TIER1, NOISE_POLLUTION.NONE, 0.2f);

            buildingDef.RequiresPowerInput          = true;
            buildingDef.PowerInputOffset            = new CellOffset(0, 0);
            buildingDef.ViewMode                    = OverlayModes.Power.ID;
            buildingDef.AudioCategory               = "Metal";
            buildingDef.ExhaustKilowattsWhenActive  = 0f;
            buildingDef.SelfHeatKilowattsWhenActive = 0f;
            buildingDef.Floodable                   = false;
            buildingDef.Overheatable                = false;
            buildingDef.Entombable                  = false;

            buildingDef.LogicInputPorts = LogicOperationalController.CreateSingleInputPortList(new CellOffset(0, 0));

            return(buildingDef);
        }