예제 #1
0
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefabTag)
        {
            go.AddOrGet <LogicOperationalController>();
            go.AddOrGet <SmartReservoir>();
            go.AddOrGet <HyperReservoir>();
            go.AddOrGet <EnergyConsumerEx>();

            var storage = BuildingTemplates.CreateDefaultStorage(go);

            storage.showDescriptor   = true;
            storage.allowItemRemoval = false;
            storage.storageFilters   = storageFilters;
            storage.capacityKg       = capacityKg;
            storage.SetDefaultStoredItemModifiers(GasReservoirConfig.ReservoirStoredItemModifiers);
            // storage.showCapacityStatusItem = true;
            ReflectionUtils.TrySetField(typeof(Storage), "showCapacityStatusItem", storage, true);
            // storage.showCapacityAsMainStatus = true;
            ReflectionUtils.TrySetField(typeof(Storage), "showCapacityAsMainStatus", storage, true);

            var conduitConsumer = go.AddOrGet <ConduitConsumer>();

            conduitConsumer.conduitType          = conduitType;
            conduitConsumer.ignoreMinMassCheck   = true;
            conduitConsumer.forceAlwaysSatisfied = true;
            conduitConsumer.alwaysConsume        = false;
            conduitConsumer.capacityKG           = storage.capacityKg;

            var conduitDispenser = go.AddOrGet <ConduitDispenser>();

            conduitDispenser.conduitType    = conduitType;
            conduitDispenser.alwaysDispense = true;
        }
        // Token: 0x0600606B RID: 24683 RVA: 0x001D97E8 File Offset: 0x001D7BE8
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
        {
            go.AddOrGet <Reservoir>();
            Storage storage = BuildingTemplates.CreateDefaultStorage(go, false);

            storage.showDescriptor   = true;
            storage.allowItemRemoval = false;
            storage.storageFilters   = STORAGEFILTERS.LIQUIDS;
            storage.capacityKg       = BigStorageConfigMod._configManager.Config.BigLiquidStorageCapacity;
            storage.SetDefaultStoredItemModifiers(GasReservoirConfig.ReservoirStoredItemModifiers);
            storage.showCapacityStatusItem   = true;
            storage.showCapacityAsMainStatus = true;
            go.AddOrGet <SmartReservoir>();
            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 <Reservoir>();
            Storage storage = BuildingTemplates.CreateDefaultStorage(go, false);

            storage.showDescriptor   = true;
            storage.allowItemRemoval = false;
            storage.storageFilters   = STORAGEFILTERS.GASES;
            storage.capacityKg       = HighFlowStorageConfig.Config.Gas5StorageCapacity;
            storage.SetDefaultStoredItemModifiers(GasReservoirConfig.ReservoirStoredItemModifiers);

            go.AddComponent <HighFlowStorage_PortConduitDispenser>().AssignPort(outputPort0);
            go.AddComponent <HighFlowStorage_PortConduitDispenser>().AssignPort(outputPort1);
            go.AddComponent <HighFlowStorage_PortConduitDispenser>().AssignPort(outputPort2);
            go.AddComponent <HighFlowStorage_PortConduitDispenser>().AssignPort(outputPort3);
            go.AddComponent <HighFlowStorage_PortConduitDispenser>().AssignPort(outputPort4);

            foreach (PortDisplayInput port in inputPorts)
            {
                PortConduitConsumer consumer = go.AddComponent <PortConduitConsumer>();
                consumer.ignoreMinMassCheck   = true;
                consumer.forceAlwaysSatisfied = true;
                consumer.alwaysConsume        = true;
                consumer.capacityKG           = storage.capacityKg;
                consumer.AssignPort(port);
            }

            go.AddComponent <HighFlowStorage.BuildingColor>().color = BuildingColor();

            this.AttachPort(go);
        }
    public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
    {
        SimCellOccupier simCellOccupier = go.AddOrGet <SimCellOccupier>();

        simCellOccupier.doReplaceElement = true;
        go.AddOrGet <TileTemperature>();
        ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>();

        conduitConsumer.conduitType        = ConduitType.Liquid;
        conduitConsumer.consumptionRate    = 1f;
        conduitConsumer.capacityKG         = 5f;
        conduitConsumer.capacityTag        = GameTags.Liquid;
        conduitConsumer.wrongElementResult = ConduitConsumer.WrongElementResult.Dump;
        go.AddOrGet <Storage>();
        PlantablePlot plantablePlot = go.AddOrGet <PlantablePlot>();

        plantablePlot.AddDepositTag(GameTags.CropSeed);
        plantablePlot.AddDepositTag(GameTags.WaterSeed);
        plantablePlot.occupyingObjectRelativePosition.y = 1f;
        plantablePlot.SetFertilizationFlags(true, true);
        CopyBuildingSettings copyBuildingSettings = go.AddOrGet <CopyBuildingSettings>();

        copyBuildingSettings.copyGroupTag = GameTags.Farm;
        Storage storage = BuildingTemplates.CreateDefaultStorage(go, false);

        storage.SetDefaultStoredItemModifiers(Storage.StandardSealedStorage);
        go.AddOrGet <PlanterBox>();
        go.AddOrGet <AnimTileable>();
        go.AddOrGet <DropAllWorkable>();
        Prioritizable.AddRef(go);
    }
예제 #5
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 <TileTemperature>();
        go.AddOrGet <WildFarmTile>();
        Storage storage = BuildingTemplates.CreateDefaultStorage(go);

        storage.SetDefaultStoredItemModifiers(Storage.StandardSealedStorage);
        PlantablePlot plantablePlot = go.AddOrGet <PlantablePlot>();

        plantablePlot.occupyingObjectRelativePosition = new Vector3(0f, 1f, 0f);
        plantablePlot.AddDepositTag(GameTags.CropSeed);
        plantablePlot.AddDepositTag(GameTags.WaterSeed);
        plantablePlot.SetFertilizationFlags(fertilizer: false, liquid_piping: false);
        CopyBuildingSettings copyBuildingSettings = go.AddOrGet <CopyBuildingSettings>();

        copyBuildingSettings.copyGroupTag = GameTags.Farm;
        go.AddOrGet <AnimTileable>();
        Prioritizable.AddRef(go);

        // turn off irrigation
        FieldInfo fi = typeof(PlantablePlot).GetField("accepts_irrigation", BindingFlags.NonPublic | BindingFlags.Instance);

        fi.SetValue(plantablePlot, false);
    }
예제 #6
0
        public override void DoPostConfigureComplete(GameObject go)
        {
            SoundEventVolumeCache.instance.AddVolume("storagelocker_kanim", "StorageLocker_Hit_metallic_low", TUNING.NOISE_POLLUTION.NOISY.TIER1);
            Prioritizable.AddRef(go);
            go.GetComponent <KPrefabID>().AddTag(RoomConstraints.ConstraintTags.IndustrialMachinery, false);
            go.GetComponent <KPrefabID>().AddTag(GameTags.OverlayBehindConduits, false);
            go.AddOrGet <EnergyConsumer>();
            go.AddOrGet <Reservoir>();

            Storage defaultStorage = BuildingTemplates.CreateDefaultStorage(go, false);

            defaultStorage.showDescriptor   = true;
            defaultStorage.allowItemRemoval = false;
            defaultStorage.storageFilters   = STORAGEFILTERS.LIQUIDS;
            defaultStorage.capacityKg       = TrashcansConfigChecker.LiquidTrashCapicityKG;
            defaultStorage.showInUI         = true;
            defaultStorage.SetDefaultStoredItemModifiers(GasReservoirConfig.ReservoirStoredItemModifiers);

            ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>();

            conduitConsumer.conduitType          = ConduitType.Liquid;
            conduitConsumer.ignoreMinMassCheck   = true;
            conduitConsumer.forceAlwaysSatisfied = true;
            conduitConsumer.alwaysConsume        = false;
            conduitConsumer.capacityKG           = defaultStorage.capacityKg;

            go.AddOrGet <Trashcan>();
            go.AddOrGet <UserNameable>();
            go.AddOrGet <ReservoirTrashcanAnim>();
        }
        public void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
        {
            // replace the usual class to make manual operated to automated
            go.AddOrGet <WaterPurifier>();

            Storage defaultStorage = BuildingTemplates.CreateDefaultStorage(go, false);

            defaultStorage.showInUI   = true;
            defaultStorage.capacityKg = 30000f;
            defaultStorage.SetDefaultStoredItemModifiers(Storage.StandardSealedStorage);

            //OUTPUT:
            ConduitDispenser2 conduitDispenser2 = go.AddOrGet <ConduitDispenser2>();

            conduitDispenser2.secondaryOutput     = this.secondaryOutPort;
            conduitDispenser2.conduitType         = this.secondaryOutPort.conduitType;
            conduitDispenser2.invertElementFilter = true;
            conduitDispenser2.elementFilter       = new SimHashes[]
            {
                SimHashes.Petroleum,
                SimHashes.CrudeOil
            };

            //INPUT:
            ConduitConsumer2 conduitConsumer2 = go.AddOrGet <ConduitConsumer2>();

            conduitConsumer2.secondaryInput       = this.secondaryInPort;
            conduitConsumer2.conduitType          = secondaryInPort.conduitType;
            conduitConsumer2.consumptionRate      = 10f;
            conduitConsumer2.capacityTag          = SimHashes.CrudeOil.CreateTag();
            conduitConsumer2.wrongElementResult   = ConduitConsumer2.WrongElementResult.Dump;
            conduitConsumer2.capacityKG           = 100f;
            conduitConsumer2.forceAlwaysSatisfied = true;
        }
예제 #8
0
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
        {
            GeneratedBuildings.MakeBuildingAlwaysOperational(go);
            BuildingConfigManager.Instance.IgnoreDefaultKComponent(typeof(RequiresFoundation), prefab_tag);
            var simCellOccupier = go.AddOrGet <SimCellOccupier>();

            simCellOccupier.doReplaceElement = true;
            simCellOccupier.notifyOnMelt     = true;
            go.AddOrGet <TileTemperature>();
            var storage = BuildingTemplates.CreateDefaultStorage(go, false);

            storage.SetDefaultStoredItemModifiers(Storage.StandardSealedStorage);
            var plantablePlot = go.AddOrGet <PlantablePlot>();

            plantablePlot.occupyingObjectRelativePosition = new Vector3(0f, 1f);
            plantablePlot.AddDepositTag(GameTags.CropSeed);
            plantablePlot.AddDepositTag(GameTags.WaterSeed);
            plantablePlot.SetFertilizationFlags(true, true);
            var copyBuildingSettings = go.AddOrGet <CopyBuildingSettings>();

            copyBuildingSettings.copyGroupTag = GameTags.Farm;
            go.AddOrGet <AnimTileable>();
            go.AddOrGet <DropAllWorkable>();
            Prioritizable.AddRef(go);

            go.AddOrGet <AquaticFarm>();
            AddPassiveElementConsumer(go, new Vector3(0f, 1f));
            AddPassiveElementConsumer(go, new Vector3(0f, -1f));
            AddPassiveElementConsumer(go, new Vector3(1f, 0f));
            AddPassiveElementConsumer(go, new Vector3(-1f, 0f));
        }
예제 #9
0
    public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
    {
        Storage defaultStorage = BuildingTemplates.CreateDefaultStorage(go, false);

        defaultStorage.showDescriptor = true;
        defaultStorage.storageFilters = STORAGEFILTERS.LIQUIDS;
        defaultStorage.capacityKg     = 2500f;
        defaultStorage.SetDefaultStoredItemModifiers(Storage.StandardSealedStorage);
        defaultStorage.allowItemRemoval = true;
        go.AddOrGet <DropAllWorkable>();
        GasBottler gasBottler = go.AddOrGet <GasBottler>();

        gasBottler.storage       = defaultStorage;
        gasBottler.overrideAnims = new KAnimFile[1]
        {
            Assets.GetAnim((HashedString)"anim_interacts_washbasin_kanim")
        };
        gasBottler.workTime = 5f;
        ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>();

        conduitConsumer.storage              = defaultStorage;
        conduitConsumer.conduitType          = ConduitType.Liquid;
        conduitConsumer.ignoreMinMassCheck   = true;
        conduitConsumer.forceAlwaysSatisfied = true;
        conduitConsumer.alwaysConsume        = true;
        conduitConsumer.capacityKG           = defaultStorage.capacityKg;
        conduitConsumer.keepZeroMassObject   = false;
        go.AddOrGet <LoopingSounds>();
    }
    public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
    {
        go.AddOrGet <LoopingSounds>();
        Storage storage = BuildingTemplates.CreateDefaultStorage(go, false);

        storage.showInUI = true;
        ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>();

        conduitConsumer.conduitType     = ConduitType.Liquid;
        conduitConsumer.consumptionRate = 1f;
        conduitConsumer.capacityKG      = 10f;
        conduitConsumer.capacityTag     = GameTags.Liquid;
        ElementConverter elementConverter = go.AddOrGet <ElementConverter>();

        elementConverter.consumedElements = new ElementConverter.ConsumedElement[1]
        {
            new ElementConverter.ConsumedElement(new Tag("Water"), 1f)
        };
        elementConverter.outputElements = new ElementConverter.OutputElement[1]
        {
            new ElementConverter.OutputElement(3.33333325f, SimHashes.CrudeOil, 363.15f, false, false, 2f, 1.5f, 0f, byte.MaxValue, 0)
        };
        OilWellCap oilWellCap = go.AddOrGet <OilWellCap>();

        oilWellCap.gasElement     = SimHashes.Methane;
        oilWellCap.gasTemperature = 573.15f;
        oilWellCap.addGasRate     = 0.0333333351f;
        oilWellCap.maxGasPressure = 80.00001f;
        oilWellCap.releaseGasRate = 0.444444478f;
    }
예제 #11
0
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
        {
            GeneratedBuildings.RegisterSingleLogicInputPort(go);
            go.AddOrGet <LogicOperationalController>();
            go.AddOrGet <RotatableExhaust>();
            Vent vent = go.AddOrGet <Vent>();

            vent.conduitType      = ConduitType.Gas;
            vent.endpointType     = Endpoint.Sink;
            vent.overpressureMass = WallPumpsConfig.GetConfig().gasWallPressureVent.maxPressure;
            ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>();

            conduitConsumer.conduitType        = ConduitType.Gas;
            conduitConsumer.ignoreMinMassCheck = true;
            Storage storage = BuildingTemplates.CreateDefaultStorage(go, false);

            storage.showInUI = true;
            go.AddOrGet <SimpleVent>();
            SimCellOccupier simCellOccupier = go.AddOrGet <SimCellOccupier>();

            simCellOccupier.notifyOnMelt = true;
            go.AddOrGet <Insulator>();
            go.AddOrGet <TileTemperature>();
            BuildingHP buildingHP = go.AddOrGet <BuildingHP>();

            buildingHP.destroyOnDamaged = true;
        }
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
        {
            go.GetComponent <KPrefabID>().AddTag(RoomConstraints.ConstraintTags.IndustrialMachinery, false);
            Storage defaultStorage = BuildingTemplates.CreateDefaultStorage(go, false);

            defaultStorage.SetDefaultStoredItemModifiers(Storage.StandardSealedStorage);
            defaultStorage.storageFilters = new List <Tag>()
            {
                new Tag("BleachStone")
            };
            defaultStorage.capacityKg = 400f + 20f;
            go.AddOrGet <HexiLiquidGermScrubber>();
            Prioritizable.AddRef(go);
            GermScrubConverter elementConverter = go.AddOrGet <GermScrubConverter>();

            elementConverter.SetStorage(defaultStorage);
            ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>();

            conduitConsumer.conduitType          = ConduitType.Liquid;
            conduitConsumer.consumptionRate      = 10f;
            conduitConsumer.capacityKG           = 20f;
            conduitConsumer.capacityTag          = GameTags.Liquid;
            conduitConsumer.forceAlwaysSatisfied = true;
            conduitConsumer.wrongElementResult   = ConduitConsumer.WrongElementResult.Dump;
            ManualDeliveryKG manualDeliveryKg = go.AddComponent <ManualDeliveryKG>();

            manualDeliveryKg.SetStorage(defaultStorage);
            manualDeliveryKg.requestedItemTag = ElementLoader.FindElementByHash(SimHashes.BleachStone).tag;
            manualDeliveryKg.capacity         = 400f;
            manualDeliveryKg.refillMass       = 100f;
            manualDeliveryKg.choreTypeIDHash  = Db.Get().ChoreTypes.FetchCritical.IdHash;
        }
예제 #13
0
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
        {
            Debug.Log("=== GasReservoirSmart.ConfigureBuildingTemplate ===");
            Storage storage = BuildingTemplates.CreateDefaultStorage(go);

            storage.showDescriptor   = true;
            storage.allowItemRemoval = false;
            storage.storageFilters   = STORAGEFILTERS.GASES;
            storage.capacityKg       = 90.0f;
            storage.SetDefaultStoredItemModifiers(GasReservoirConfig.ReservoirStoredItemModifiers);

            go.AddOrGet <ReservoirSmart>();

            ConduitConsumer cc = go.AddOrGet <ConduitConsumer>();

            cc.conduitType          = ConduitType.Gas;
            cc.ignoreMinMassCheck   = true;
            cc.forceAlwaysSatisfied = true;
            cc.alwaysConsume        = true;
            cc.capacityKG           = storage.capacityKg;

            ConduitDispenser cd = go.AddOrGet <ConduitDispenser>();

            cd.conduitType   = ConduitType.Gas;
            cd.elementFilter = null;
        }
예제 #14
0
            static void Postfix(SolidConduitOutboxConfig __instance, ref GameObject go)
            {
                Storage storage = BuildingTemplates.CreateDefaultStorage(go);

                storage.capacityKg = DynamicBuildingsState.StateManager.State.ConUnloaderCap;
                go.AddOrGet <SolidConduitConsumer>().capacityKG = DynamicBuildingsState.StateManager.State.ConUnloaderCap;
            }
예제 #15
0
            public static void Postfix(GasReservoirConfig __instance, ref GameObject go)
            {
                Storage storage = BuildingTemplates.CreateDefaultStorage(go);

                storage.capacityKg = DynamicBuildingsState.StateManager.State.GasRes;
                ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>();

                conduitConsumer.capacityKG = storage.capacityKg;
            }
예제 #16
0
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
        {
            go.AddOrGet <LoopingSounds>();
            go.AddOrGet <DropAllWorkable>();
            Prioritizable.AddRef(go);

            Storage storage = BuildingTemplates.CreateDefaultStorage(go);

            storage.showInUI   = true;
            storage.capacityKg = 20000f;
            storage.SetDefaultStoredItemModifiers(Storage.StandardSealedStorage);

            ElementConsumer elementConsumer = go.AddOrGet <ElementConsumer>();

            elementConsumer.elementToConsume  = SimHashes.CarbonDioxide;
            elementConsumer.consumptionRate   = 1000f;
            elementConsumer.consumptionRadius = 10;
            elementConsumer.showInStatusPanel = true;
            elementConsumer.sampleCellOffset  = new Vector3(0f, 0f, 0f);
            elementConsumer.isRequired        = false;
            elementConsumer.storeOnConsume    = true;
            elementConsumer.showDescriptor    = false;

            ElementDropper elementDropper = go.AddComponent <ElementDropper>();

            elementDropper.emitMass   = 100f;
            elementDropper.emitTag    = new Tag("Carbon");
            elementDropper.emitOffset = new Vector3(0f, 0f, 0f);

            ElementConverter elementConverter = go.AddOrGet <ElementConverter>();

            elementConverter.consumedElements = new ElementConverter.ConsumedElement[]
            {
                new ElementConverter.ConsumedElement(new Tag("Filter"), 0.1f),
                new ElementConverter.ConsumedElement(new Tag("CarbonDioxide"), 1.0f)
            };
            elementConverter.outputElements = new ElementConverter.OutputElement[]
            {
                new ElementConverter.OutputElement(0.27f, SimHashes.Carbon, 0f, true, 0f, 0.5f, false, 0f, byte.MinValue),
                new ElementConverter.OutputElement(0.73f, SimHashes.Oxygen, 0f, false, 0f, 0f, false, 0f, byte.MinValue)
            };

            ManualDeliveryKG manualDeliveryKG = go.AddOrGet <ManualDeliveryKG>();

            manualDeliveryKG.SetStorage(storage);
            manualDeliveryKG.requestedItemTag = new Tag("Filter");
            manualDeliveryKG.capacity         = 100f;
            manualDeliveryKG.refillMass       = 1f;
            manualDeliveryKG.choreTypeIDHash  = Db.Get().ChoreTypes.FetchCritical.IdHash;

            CoalScrubber coalScrubber = go.AddOrGet <CoalScrubber>();

            coalScrubber.filterTag = new Tag("Filter");

            go.AddOrGet <KBatchedAnimController>().randomiseLoopedOffset = true;
        }
예제 #17
0
    public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
    {
        go.GetComponent <KPrefabID>().AddTag(RoomConstraints.ConstraintTags.IndustrialMachinery, false);
        Storage storage = BuildingTemplates.CreateDefaultStorage(go, false);

        storage.SetDefaultStoredItemModifiers(Storage.StandardSealedStorage);
        go.AddOrGet <WaterPurifier>();
        ManualDeliveryKG manualDeliveryKG = go.AddComponent <ManualDeliveryKG>();

        manualDeliveryKG.SetStorage(storage);
        manualDeliveryKG.choreTypeIDHash  = Db.Get().ChoreTypes.MachineFetch.IdHash;
        manualDeliveryKG.requestedItemTag = new Tag("Dirt");
        manualDeliveryKG.capacity         = 136.5f;
        manualDeliveryKG.refillMass       = 19.5f;
        ManualDeliveryKG manualDeliveryKG2 = go.AddComponent <ManualDeliveryKG>();

        manualDeliveryKG2.SetStorage(storage);
        manualDeliveryKG2.choreTypeIDHash  = Db.Get().ChoreTypes.MachineFetch.IdHash;
        manualDeliveryKG2.requestedItemTag = new Tag("Phosphorite");
        manualDeliveryKG2.capacity         = 54.6f;
        manualDeliveryKG2.refillMass       = 7.79999971f;
        ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>();

        conduitConsumer.conduitType          = ConduitType.Liquid;
        conduitConsumer.consumptionRate      = 10f;
        conduitConsumer.capacityTag          = ElementLoader.FindElementByHash(SimHashes.DirtyWater).tag;
        conduitConsumer.capacityKG           = 0.195000008f;
        conduitConsumer.wrongElementResult   = ConduitConsumer.WrongElementResult.Dump;
        conduitConsumer.forceAlwaysSatisfied = true;
        ElementConverter elementConverter = go.AddOrGet <ElementConverter>();

        elementConverter.consumedElements = new ElementConverter.ConsumedElement[3]
        {
            new ElementConverter.ConsumedElement(new Tag("DirtyWater"), 0.039f),
            new ElementConverter.ConsumedElement(new Tag("Dirt"), 0.065f),
            new ElementConverter.ConsumedElement(new Tag("Phosphorite"), 0.0259999987f)
        };
        elementConverter.outputElements = new ElementConverter.OutputElement[1]
        {
            new ElementConverter.OutputElement(0.12f, SimHashes.Fertilizer, 323.15f, false, true, 0f, 0.5f, 1f, byte.MaxValue, 0)
        };
        BuildingElementEmitter buildingElementEmitter = go.AddOrGet <BuildingElementEmitter>();

        buildingElementEmitter.emitRate       = 0.01f;
        buildingElementEmitter.temperature    = 349.15f;
        buildingElementEmitter.element        = SimHashes.Methane;
        buildingElementEmitter.modifierOffset = new Vector2(2f, 2f);
        ElementDropper elementDropper = go.AddComponent <ElementDropper>();

        elementDropper.emitMass   = 10f;
        elementDropper.emitTag    = new Tag("Fertilizer");
        elementDropper.emitOffset = new Vector3(0f, 1f, 0f);
        Prioritizable.AddRef(go);
    }
        // Token: 0x0600001D RID: 29 RVA: 0x00002744 File Offset: 0x00000944
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefabTag)
        {
            GeneratedBuildings.MakeBuildingAlwaysOperational(go);
            go.AddOrGet <SolidConduitConsumer>();
            var conduitDispenser = go.AddOrGet <ConduitDispenser>();

            conduitDispenser.conduitType    = ConduitType.Liquid;
            conduitDispenser.alwaysDispense = true;
            conduitDispenser.elementFilter  = null;
            BuildingTemplates.CreateDefaultStorage(go);
        }
예제 #19
0
    public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
    {
        Prioritizable.AddRef(go);
        Storage storage = BuildingTemplates.CreateDefaultStorage(go, false);

        storage.SetDefaultStoredItemModifiers(IncubatorStorage);
        EggIncubator eggIncubator = go.AddOrGet <EggIncubator>();

        eggIncubator.AddDepositTag(GameTags.Egg);
        eggIncubator.SetWorkTime(5f);
    }
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
        {
            go.AddOrGet <Reservoir>();
            Storage storage = BuildingTemplates.CreateDefaultStorage(go, false);

            storage.showDescriptor   = true;
            storage.allowItemRemoval = false;
            storage.storageFilters   = STORAGEFILTERS.LIQUIDS;
            storage.capacityKg       = HighFlowStorageConfig.Config.liquidStorageCapacity;
            storage.SetDefaultStoredItemModifiers(GasReservoirConfig.ReservoirStoredItemModifiers);

            PortConduitDispenser conduitDispenser0 = go.AddComponent <HighFlowStorage_PortConduitDispenser>();

            conduitDispenser0.AssignPort(outputPort0);

            PortConduitDispenser conduitDispenser1 = go.AddComponent <HighFlowStorage_PortConduitDispenser>();

            conduitDispenser1.AssignPort(outputPort1);

            PortConduitDispenser conduitDispenser2 = go.AddComponent <HighFlowStorage_PortConduitDispenser>();

            conduitDispenser2.AssignPort(outputPort2);

            PortConduitConsumer consumer0 = go.AddComponent <PortConduitConsumer>();

            consumer0.conduitType          = ConduitType.Liquid;
            consumer0.ignoreMinMassCheck   = true;
            consumer0.forceAlwaysSatisfied = true;
            consumer0.alwaysConsume        = true;
            consumer0.capacityKG           = storage.capacityKg;
            consumer0.AssignPort(inputPort0);

            PortConduitConsumer consumer1 = go.AddComponent <PortConduitConsumer>();

            consumer1.conduitType          = ConduitType.Liquid;
            consumer1.ignoreMinMassCheck   = true;
            consumer1.forceAlwaysSatisfied = true;
            consumer1.alwaysConsume        = true;
            consumer1.capacityKG           = storage.capacityKg;
            consumer1.AssignPort(inputPort1);

            PortConduitConsumer consumer2 = go.AddComponent <PortConduitConsumer>();

            consumer2.conduitType          = ConduitType.Liquid;
            consumer2.ignoreMinMassCheck   = true;
            consumer2.forceAlwaysSatisfied = true;
            consumer2.alwaysConsume        = true;
            consumer2.capacityKG           = storage.capacityKg;
            consumer2.AssignPort(inputPort2);

            go.AddComponent <HighFlowStorage.BuildingColor>().color = BuildingColor();

            this.AttachPort(go);
        }
예제 #21
0
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
        {
            go.AddOrGet <LoopingSounds>();
            go.GetComponent <KPrefabID>().AddTag(RoomConstraints.ConstraintTags.IndustrialMachinery);
            var defaultStorage = BuildingTemplates.CreateDefaultStorage(go);

            defaultStorage.showInUI   = true;
            defaultStorage.capacityKg = 1000f;
            defaultStorage.SetDefaultStoredItemModifiers(Storage.StandardSealedStorage);
            go.AddOrGet <AirFilter>().filterTag = GameTagExtensions.Create(SimHashes.Lime);
            var elementConsumer = go.AddOrGet <PassiveElementConsumer>();

            elementConsumer.elementToConsume  = SimHashes.CarbonDioxide;
            elementConsumer.consumptionRate   = CO2_CONSUMPTION_RATE * 2;
            elementConsumer.capacityKG        = CO2_CONSUMPTION_RATE * 2;
            elementConsumer.consumptionRadius = 6;
            elementConsumer.showInStatusPanel = true;
            elementConsumer.sampleCellOffset  = new Vector3(0.0f, 0.0f, 0.0f);
            elementConsumer.isRequired        = false;
            elementConsumer.storeOnConsume    = true;
            elementConsumer.showDescriptor    = false;

            // Add the bit where you deliver lime
            Prioritizable.AddRef(go);
            ManualDeliveryKG manualDeliveryKg = go.AddOrGet <ManualDeliveryKG>();

            manualDeliveryKg.SetStorage(defaultStorage);
            manualDeliveryKg.requestedItemTag = new Tag("Lime");
            manualDeliveryKg.capacity         = 1f;
            manualDeliveryKg.refillMass       = .5f;
            manualDeliveryKg.choreTypeIDHash  = Db.Get().ChoreTypes.FetchCritical.IdHash;

            // Drop refined carbon
            ElementDropper elementDropper = go.AddComponent <ElementDropper>();

            elementDropper.emitMass   = 10f;
            elementDropper.emitTag    = SimHashes.RefinedCarbon.CreateTag();
            elementDropper.emitOffset = new Vector3(0.0f, 0.0f, 0.0f);

            // Define conversions
            var elementConverter = go.AddOrGet <ElementConverter>();

            elementConverter.consumedElements = new ElementConverter.ConsumedElement[2]
            {
                new ElementConverter.ConsumedElement(GameTagExtensions.Create(SimHashes.Lime), LIME_CONSUMPTION_RATE),
                new ElementConverter.ConsumedElement(GameTagExtensions.Create(SimHashes.CarbonDioxide), CO2_CONSUMPTION_RATE)
            };
            elementConverter.outputElements = new ElementConverter.OutputElement[1]
            {
                new ElementConverter.OutputElement(CO2_CONSUMPTION_RATE, SimHashes.RefinedCarbon, 0.0f, false, true)
            };
            go.AddOrGet <KBatchedAnimController>().randomiseLoopedOffset = true;
        }
예제 #22
0
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
        {
            go.AddOrGet <LoopingSounds>();
            go.GetComponent <KPrefabID>().AddTag(RoomConstraints.ConstraintTags.IndustrialMachinery);

            Storage storage = BuildingTemplates.CreateDefaultStorage(go);

            storage.showInUI   = true;
            storage.capacityKg = 30000f;
            storage.SetDefaultStoredItemModifiers(Storage.StandardSealedStorage);

            go.AddOrGet <PipedDeodorizer>();

            ElementConverter elementConverter = go.AddOrGet <ElementConverter>();

            elementConverter.consumedElements = new ElementConverter.ConsumedElement[1]
            {
                new ElementConverter.ConsumedElement(SimHashes.ContaminatedOxygen.CreateTag(), AIR_INPUT_RATE),
            };
            elementConverter.outputElements = new ElementConverter.OutputElement[2]
            {
                new ElementConverter.OutputElement(AIR_OUTPUT_RATE, SimHashes.Oxygen, 0f, useEntityTemperature: false, storeOutput: true),
                new ElementConverter.OutputElement(DIRT_OUTPUT_RATE, SimHashes.ToxicSand, 0f, useEntityTemperature: false, storeOutput: true)
            };

            ElementDropper elementDropper = go.AddComponent <ElementDropper>();

            elementDropper.emitMass   = 10f;
            elementDropper.emitTag    = new Tag("ToxicSand");
            elementDropper.emitOffset = new Vector3(1f, 1f, 0f);

            ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>();

            conduitConsumer.conduitType          = ConduitType.Gas;
            conduitConsumer.consumptionRate      = AIR_INPUT_RATE;
            conduitConsumer.capacityKG           = 2 * AIR_INPUT_RATE;
            conduitConsumer.capacityTag          = GameTags.Breathable;   // ElementLoader.FindElementByHash(SimHashes.ContaminatedOxygen).tag;
            conduitConsumer.wrongElementResult   = ConduitConsumer.WrongElementResult.Dump;
            conduitConsumer.forceAlwaysSatisfied = true;

            ConduitDispenser conduitDispenser = go.AddOrGet <ConduitDispenser>();

            conduitDispenser.conduitType         = ConduitType.Gas;
            conduitDispenser.alwaysDispense      = true;
            conduitDispenser.invertElementFilter = true;
            conduitDispenser.elementFilter       = new SimHashes[]
            {
                SimHashes.ContaminatedOxygen
            };

            go.AddOrGet <KBatchedAnimController>().randomiseLoopedOffset = true;
        }
    public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
    {
        go.AddOrGet <LoopingSounds>();
        go.GetComponent <KPrefabID>().AddTag(RoomConstraints.ConstraintTags.IndustrialMachinery, false);
        Storage storage = BuildingTemplates.CreateDefaultStorage(go, false);

        storage.showInUI   = true;
        storage.capacityKg = 30000f;
        storage.SetDefaultStoredItemModifiers(Storage.StandardSealedStorage);
        AirFilter airFilter = go.AddOrGet <AirFilter>();

        airFilter.filterTag = GameTagExtensions.Create(SimHashes.Water);
        ElementConsumer elementConsumer = go.AddOrGet <PassiveElementConsumer>();

        elementConsumer.elementToConsume  = SimHashes.CarbonDioxide;
        elementConsumer.consumptionRate   = 0.6f;
        elementConsumer.capacityKG        = 0.6f;
        elementConsumer.consumptionRadius = 3;
        elementConsumer.showInStatusPanel = true;
        elementConsumer.sampleCellOffset  = new Vector3(0f, 0f, 0f);
        elementConsumer.isRequired        = false;
        elementConsumer.storeOnConsume    = true;
        elementConsumer.showDescriptor    = false;
        ElementConverter elementConverter = go.AddOrGet <ElementConverter>();

        elementConverter.consumedElements = new ElementConverter.ConsumedElement[2]
        {
            new ElementConverter.ConsumedElement(GameTagExtensions.Create(SimHashes.Water), 1f),
            new ElementConverter.ConsumedElement(GameTagExtensions.Create(SimHashes.CarbonDioxide), 0.3f)
        };
        elementConverter.outputElements = new ElementConverter.OutputElement[1]
        {
            new ElementConverter.OutputElement(1f, SimHashes.DirtyWater, 0f, false, true, 0f, 0.5f, 1f, byte.MaxValue, 0)
        };
        ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>();

        conduitConsumer.conduitType          = ConduitType.Liquid;
        conduitConsumer.consumptionRate      = 2f;
        conduitConsumer.capacityKG           = 2f;
        conduitConsumer.capacityTag          = ElementLoader.FindElementByHash(SimHashes.Water).tag;
        conduitConsumer.wrongElementResult   = ConduitConsumer.WrongElementResult.Store;
        conduitConsumer.forceAlwaysSatisfied = true;
        ConduitDispenser conduitDispenser = go.AddOrGet <ConduitDispenser>();

        conduitDispenser.conduitType         = ConduitType.Liquid;
        conduitDispenser.invertElementFilter = true;
        conduitDispenser.elementFilter       = new SimHashes[1]
        {
            SimHashes.Water
        };
        go.AddOrGet <KBatchedAnimController>().randomiseLoopedOffset = true;
    }
예제 #24
0
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
        {
            GeneratedBuildings.MakeBuildingAlwaysOperational(go);
            go.AddOrGet <ConveyorDropoff>();
            go.AddOrGet <SolidConduitConsumer>();
            Storage defaultStorage = BuildingTemplates.CreateDefaultStorage(go);

            defaultStorage.capacityKg       = 100f;
            defaultStorage.showInUI         = false;
            defaultStorage.allowItemRemoval = false;

            go.AddOrGet <SimpleVent>();
        }
예제 #25
0
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
        {
            go.AddOrGet <Storage>();
            PlantablePlot plantablePlot = go.AddOrGet <PlantablePlot>();

            plantablePlot.AddDepositTag(Utils.CropSeed2TileWide);
            plantablePlot.occupyingObjectRelativePosition.y = 0f;
            plantablePlot.SetFertilizationFlags(true, false);
            BuildingTemplates.CreateDefaultStorage(go, false).SetDefaultStoredItemModifiers(Storage.StandardSealedStorage);
            go.AddOrGet <AnimTileable>();
            go.AddOrGet <DropAllWorkable>();

            Prioritizable.AddRef(go);
        }
예제 #26
0
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
        {
            go.AddOrGet <LoopingSounds>();
            var conduitConsumer = go.AddOrGet <ConduitConsumer>();

            conduitConsumer.conduitType     = ConduitType.Liquid;
            conduitConsumer.consumptionRate = 5f;
            var defaultStorage = BuildingTemplates.CreateDefaultStorage(go);

            defaultStorage.showInUI   = true;
            defaultStorage.capacityKg = 2f * conduitConsumer.consumptionRate;
            defaultStorage.SetDefaultStoredItemModifiers(StoredItemModifiers);
            go.AddOrGet <UVCleaner>();
        }
예제 #27
0
        // Token: 0x06000018 RID: 24 RVA: 0x00002620 File Offset: 0x00000820
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefabTag)
        {
            GeneratedBuildings.MakeBuildingAlwaysOperational(go);
            ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>();

            conduitConsumer.conduitType          = ConduitType.Liquid;
            conduitConsumer.consumptionRate      = 10f;
            conduitConsumer.capacityKG           = 20f;
            conduitConsumer.forceAlwaysSatisfied = true;
            SolidConduitDispenser solidConduitDispenser = go.AddOrGet <SolidConduitDispenser>();

            solidConduitDispenser.alwaysDispense = true;
            solidConduitDispenser.elementFilter  = null;
            BuildingTemplates.CreateDefaultStorage(go);
        }
    public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
    {
        go.AddOrGet <LoopingSounds>();
        AirConditioner airConditioner = go.AddOrGet <AirConditioner>();

        airConditioner.temperatureDelta    = -14f;
        airConditioner.maxEnvironmentDelta = -50f;
        Storage storage = BuildingTemplates.CreateDefaultStorage(go, false);

        storage.showInUI = true;
        ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>();

        conduitConsumer.conduitType     = ConduitType.Gas;
        conduitConsumer.consumptionRate = 1f;
    }
예제 #29
0
    public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
    {
        go.AddOrGet <LoopingSounds>();
        Prioritizable.AddRef(go);
        Storage storage = BuildingTemplates.CreateDefaultStorage(go, false);

        storage.showInUI   = true;
        storage.capacityKg = 200f;
        storage.SetDefaultStoredItemModifiers(Storage.StandardSealedStorage);
        ElementConsumer elementConsumer = go.AddOrGet <ElementConsumer>();

        elementConsumer.elementToConsume  = SimHashes.ContaminatedOxygen;
        elementConsumer.consumptionRate   = 0.1f;
        elementConsumer.consumptionRadius = 3;
        elementConsumer.showInStatusPanel = true;
        elementConsumer.sampleCellOffset  = new Vector3(0f, 0f, 0f);
        elementConsumer.isRequired        = false;
        elementConsumer.storeOnConsume    = true;
        elementConsumer.showDescriptor    = false;
        ElementDropper elementDropper = go.AddComponent <ElementDropper>();

        elementDropper.emitMass   = 10f;
        elementDropper.emitTag    = new Tag("Clay");
        elementDropper.emitOffset = new Vector3(0f, 0f, 0f);
        ElementConverter elementConverter = go.AddOrGet <ElementConverter>();

        elementConverter.consumedElements = new ElementConverter.ConsumedElement[2]
        {
            new ElementConverter.ConsumedElement(new Tag("Filter"), 0.13333334f),
            new ElementConverter.ConsumedElement(new Tag("ContaminatedOxygen"), 0.1f)
        };
        elementConverter.outputElements = new ElementConverter.OutputElement[2]
        {
            new ElementConverter.OutputElement(0.143333346f, SimHashes.Clay, 0f, false, true, 0f, 0.5f, 0.25f, byte.MaxValue, 0),
            new ElementConverter.OutputElement(0.0899999961f, SimHashes.Oxygen, 0f, false, false, 0f, 0f, 0.75f, byte.MaxValue, 0)
        };
        ManualDeliveryKG manualDeliveryKG = go.AddOrGet <ManualDeliveryKG>();

        manualDeliveryKG.SetStorage(storage);
        manualDeliveryKG.requestedItemTag = new Tag("Filter");
        manualDeliveryKG.capacity         = 320.000031f;
        manualDeliveryKG.refillMass       = 32.0000038f;
        manualDeliveryKG.choreTypeIDHash  = Db.Get().ChoreTypes.FetchCritical.IdHash;
        AirFilter airFilter = go.AddOrGet <AirFilter>();

        airFilter.filterTag = new Tag("Filter");
        go.AddOrGet <KBatchedAnimController>().randomiseLoopedOffset = true;
    }
예제 #30
0
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
        {
            go.AddOrGet <ZTransporter>().SetLocalAndExpectedID("SolidSender",
                                                               "SolidRecver");
            go.AddOrGet <ZConfigButton>();
            go.AddOrGet <OperationalGlueShimThing>();

            GeneratedBuildings.MakeBuildingAlwaysOperational(go);
            go.AddOrGet <SolidConduitConsumer>();
            Storage defaultStorage = BuildingTemplates.CreateDefaultStorage(go, false);

            defaultStorage.capacityKg             = 100f;
            defaultStorage.showInUI               = true;
            defaultStorage.allowItemRemoval       = false;
            go.AddOrGet <ObjectSender>().autoSend = true;
        }