public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
    {
        Prioritizable.AddRef(go);
        Electrolyzer electrolyzer = go.AddOrGet <Electrolyzer>();

        electrolyzer.maxMass  = 1.8f;
        electrolyzer.hasMeter = false;
        Storage storage = go.AddOrGet <Storage>();

        storage.capacityKg = 330f;
        storage.showInUI   = true;
        ElementConverter elementConverter = go.AddOrGet <ElementConverter>();

        elementConverter.consumedElements = new ElementConverter.ConsumedElement[1]
        {
            new ElementConverter.ConsumedElement(new Tag("Algae"), 0.55f)
        };
        elementConverter.outputElements = new ElementConverter.OutputElement[1]
        {
            new ElementConverter.OutputElement(0.5f, SimHashes.Oxygen, 303.15f, false, false, 0f, 1f, 1f, byte.MaxValue, 0)
        };
        ManualDeliveryKG manualDeliveryKG = go.AddOrGet <ManualDeliveryKG>();

        manualDeliveryKG.SetStorage(storage);
        manualDeliveryKG.requestedItemTag = new Tag("Algae");
        manualDeliveryKG.capacity         = 330f;
        manualDeliveryKG.refillMass       = 132f;
        manualDeliveryKG.choreTypeIDHash  = Db.Get().ChoreTypes.FetchCritical.IdHash;
    }
示例#2
0
        // Big copy paste of the game code
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
        {
            go.GetComponent <KPrefabID>().AddTag(RoomConstraints.ConstraintTags.IndustrialMachinery);
            Electrolyzer electrolyzer = go.AddOrGet <Electrolyzer>();

            electrolyzer.maxMass  = 1.8f;
            electrolyzer.hasMeter = true;
            ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>();

            conduitConsumer.conduitType        = ConduitType.Liquid;
            conduitConsumer.consumptionRate    = 1f;
            conduitConsumer.capacityTag        = ElementLoader.FindElementByHash(SimHashes.DirtyWater).tag;
            conduitConsumer.wrongElementResult = ConduitConsumer.WrongElementResult.Dump;
            Storage storage = go.AddOrGet <Storage>();

            storage.capacityKg = 2f;
            storage.showInUI   = true;
            ElementConverter elementConverter = go.AddOrGet <ElementConverter>();

            elementConverter.consumedElements = new ElementConverter.ConsumedElement[]
            {
                new ElementConverter.ConsumedElement(new Tag("DirtyWater"), 1f)
            };
            elementConverter.outputElements = new ElementConverter.OutputElement[]
            {
                new ElementConverter.OutputElement(0.888f, SimHashes.ContaminatedOxygen, OXYGEN_TEMPERATURE, false, 0f, 1f, false, 1f, byte.MaxValue, 0),
                new ElementConverter.OutputElement(0.111999989f, SimHashes.Hydrogen, OXYGEN_TEMPERATURE, false, 0f, 1f, false, 1f, byte.MaxValue, 0)
            };
            Prioritizable.AddRef(go);
        }
        public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
        {
            Prioritizable.AddRef(go);
            Electrolyzer electrolyzer = go.AddOrGet <Electrolyzer>();

            electrolyzer.maxMass  = 3.0f;
            electrolyzer.hasMeter = true;
            Storage storage = go.AddOrGet <Storage>();

            storage.capacityKg = 80f;
            storage.showInUI   = true;
            ElementConverter elementConverter = go.AddOrGet <ElementConverter>();

            elementConverter.consumedElements = new ElementConverter.ConsumedElement[]
            {
                new ElementConverter.ConsumedElement(new Tag("SwampLilyFlower"), 1.0f)
            };
            elementConverter.outputElements = new ElementConverter.OutputElement[]
            {
                new ElementConverter.OutputElement(0.25f, SimHashes.ChlorineGas, 348.15f, false, false, 0f, 1f, 1f, byte.MaxValue, 0),
                new ElementConverter.OutputElement(0.66f, SimHashes.Algae, 323.15f, false, true, 0f, 0.5f, 1f, byte.MaxValue, 0)
            };
            ElementDropper elementDropper = go.AddComponent <ElementDropper>();

            elementDropper.emitMass   = 10f;
            elementDropper.emitTag    = SimHashes.Algae.CreateTag();
            elementDropper.emitOffset = new Vector3(0.5f, 0.5f, 0f);
            ManualDeliveryKG manualDeliveryKG = go.AddOrGet <ManualDeliveryKG>();

            manualDeliveryKG.SetStorage(storage);
            manualDeliveryKG.requestedItemTag = new Tag("SwampLilyFlower");
            manualDeliveryKG.capacity         = 80f;
            manualDeliveryKG.refillMass       = 32f;
            manualDeliveryKG.choreTypeIDHash  = Db.Get().ChoreTypes.MachineFetch.IdHash;
        }
 private static void Postfix(Electrolyzer __instance, ref bool __result, ref int cell)
 {
     //ElectrolyzerComplete
     //MineralDeoxidizerComplete
     if (__instance.name == "ElectrolyzerComplete")
     {
         __result = false;
     }
 }
示例#5
0
        private static void Postfix(GameObject go)
        {
            Electrolyzer electrolyzer = go.GetComponent <Electrolyzer>();

            if (electrolyzer == null)
            {
                return;
            }
            electrolyzer.maxMass = CustomizeBuildingsState.StateManager.State.ElectrolizerMaxPressure;
        }
示例#6
0
        //static SimHashes[] condition = new SimHashes[] { SimHashes.Oxygen };

        static bool Prefix(Electrolyzer __instance, ref bool __result)
        {
            if (!Main.mod.Active)
            {
                return(true);
            }

            int num = Grid.PosToCell(__instance.transform.GetPosition());

            num = Grid.CellAbove(num);

            var fn = new Func <HashSet <int>, Electrolyzer, bool>(NormalPressure);

            __result = FloodFillFindAll(fn, __instance, num, 3, true, true);

            return(false);
        }
示例#7
0
 private static bool OverPressure(int cell, Electrolyzer electrolyzer)
 {
     return(Grid.Mass[cell] > electrolyzer.maxMass);
 }
示例#8
0
 static bool NormalPressure(HashSet <int> cells, Electrolyzer electrolyzer)
 {
     return(cells.Average(x => Grid.Mass[x]) < electrolyzer.maxMass);
 }