private static void Postfix(GameObject go) { if (!(bool)EasierBuildingsState.StateManager.State.ExtraPipeOutputs) { return; } ConduitPortInfo secondaryOutPort = new ConduitPortInfo(ConduitType.Liquid, new CellOffset(1, 0)); go.AddOrGet <Storage>().capacityKg = 100f; EnergyGenerator energyGenerator = go.AddOrGet <EnergyGenerator>(); energyGenerator.formula.outputs = new EnergyGenerator.OutputItem[] { new EnergyGenerator.OutputItem(SimHashes.CarbonDioxide, 0.5f, false, new CellOffset(0, 3), 383.15f), new EnergyGenerator.OutputItem(SimHashes.DirtyWater, 0.75f, true, new CellOffset(1, 1), 313.15f) }; ConduitDispenser2 conduitDispenser2 = go.AddOrGet <ConduitDispenser2>(); conduitDispenser2.secondaryOutput = secondaryOutPort; conduitDispenser2.conduitType = secondaryOutPort.conduitType; conduitDispenser2.invertElementFilter = true; conduitDispenser2.elementFilter = new SimHashes[] { SimHashes.Petroleum, SimHashes.Ethanol, SimHashes.CarbonDioxide }; }
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; }