diff options
author | bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> | 2019-09-08 11:16:32 +0200 |
---|---|---|
committer | bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> | 2019-09-08 11:16:32 +0200 |
commit | 5bdde6428dda70b8fbe60f41a06200adb4a9d2c1 (patch) | |
tree | b3afc378431da467ac5b33e0b41ba1192ae41cd8 /src/main | |
parent | 1c73a9a064874d64684f300cbd786fd1cbef23ca (diff) | |
download | GT5-Unofficial-5bdde6428dda70b8fbe60f41a06200adb4a9d2c1.tar.gz GT5-Unofficial-5bdde6428dda70b8fbe60f41a06200adb4a9d2c1.tar.bz2 GT5-Unofficial-5bdde6428dda70b8fbe60f41a06200adb4a9d2c1.zip |
fixed bugs
+added crafting meta items
+added multiple ingot neta items
+fixed LuV Tier recipe changer
+smaller visual fixes
+smaller recipe fixes
Signed-off-by: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>
Former-commit-id: d6e740bf94c3c1d79aa9b3368cf84ae32fafce64
Diffstat (limited to 'src/main')
5 files changed, 255 insertions, 148 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java b/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java index 832b37716c..c05c14ced6 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java @@ -42,6 +42,7 @@ import com.github.bartimaeusnek.bartworks.system.material.CircuitGeneration.Circ import com.github.bartimaeusnek.bartworks.system.material.CircuitGeneration.CircuitPartLoader; import com.github.bartimaeusnek.bartworks.system.material.ThreadedLoader; import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; +import com.github.bartimaeusnek.bartworks.system.material.processingLoaders.AdditionalRecipes; import com.github.bartimaeusnek.bartworks.system.material.processingLoaders.DownTierLoader; import com.github.bartimaeusnek.bartworks.system.material.processingLoaders.PlatinumSludgeOverHaul; import com.github.bartimaeusnek.bartworks.system.oredict.OreDictHandler; @@ -202,6 +203,7 @@ public final class MainMod { MainMod.editRecipes(toChange, noGas); } PlatinumSludgeOverHaul.replacePureElements(); + //new AdditionalRecipes.LuVHullReplacer(); new CircuitImprintLoader().run(); if (classicMode) new DownTierLoader().run(); diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/Werkstoff.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/Werkstoff.java index 3ece0e03d3..612e6a4a4e 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/Werkstoff.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/Werkstoff.java @@ -520,7 +520,14 @@ public class Werkstoff implements IColorModulationContainer, ISubTagContainer { public boolean hasSimpleMetalWorkingItems() { return (this.toGenerate & 0b10000000) != 0; } - + public Werkstoff.GenerationFeatures addCraftingMetalWorkingItems() { + this.toGenerate = (byte) (this.toGenerate | 0b100000000); + return this; + } + public Werkstoff.GenerationFeatures addMultipleIngotMetalWorkingItems() { + this.toGenerate = (byte) (this.toGenerate | 0b10000000); + return this; + } } public static class Stats { diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java index 157b5ca643..a36a32f986 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java @@ -33,6 +33,7 @@ import com.github.bartimaeusnek.bartworks.system.oredict.OreDictAdder; import com.github.bartimaeusnek.bartworks.system.oredict.OreDictHandler; import com.github.bartimaeusnek.bartworks.util.BWRecipes; import com.github.bartimaeusnek.bartworks.util.BW_ColorUtil; +import com.github.bartimaeusnek.bartworks.util.BW_Util; import com.github.bartimaeusnek.bartworks.util.Pair; import com.github.bartimaeusnek.crossmod.thaumcraft.util.ThaumcraftHandler; import cpw.mods.fml.client.registry.RenderingRegistry; @@ -79,7 +80,14 @@ public class WerkstoffLoader implements Runnable { public static final SubTag NOBLE_GAS = SubTag.getNewSubTag("NobleGas"); public static final SubTag ANAEROBE_GAS = SubTag.getNewSubTag("AnaerobeGas"); public static final SubTag ANAEROBE_SMELTING = SubTag.getNewSubTag("AnaerobeSmelting"); + public static final SubTag NOBLE_GAS_SMELTING = SubTag.getNewSubTag("NobleGasSmelting"); public static OrePrefixes cellMolten; + public static ItemList rotorMold; + public static ItemList rotorShape; + public static ItemList smallGearShape; + public static ItemList ringMold; + public static ItemList boltMold; + static { for (OrePrefixes prefix : OrePrefixes.values()){ @@ -92,6 +100,13 @@ public class WerkstoffLoader implements Runnable { } else { WerkstoffLoader.cellMolten.mMaterialGenerationBits = 0b1000000; } + try { + WerkstoffLoader.rotorMold = Enum.valueOf(ItemList.class, "Shape_Mold_Rotor"); + WerkstoffLoader.rotorShape = Enum.valueOf(ItemList.class, "Shape_Extruder_Rotor"); + WerkstoffLoader.smallGearShape = Enum.valueOf(ItemList.class, "Shape_Extruder_Small_Gear"); + WerkstoffLoader.ringMold = Enum.valueOf(ItemList.class, "Shape_Mold_Ring"); + WerkstoffLoader.boltMold = Enum.valueOf(ItemList.class, "Shape_Mold_Bolt"); + }catch (NullPointerException | IllegalArgumentException e){} } //TODO: FREE ID RANGE: 19-32766 @@ -745,7 +760,7 @@ public class WerkstoffLoader implements Runnable { ); public static final Werkstoff PTRawPowder = new Werkstoff( Materials.Platinum.getRGBA(), - "Reprecipated Platinum", + "Reprecipitated Platinum", "PtCl", new Werkstoff.Stats(), Werkstoff.Types.MIXTURE, @@ -781,7 +796,7 @@ public class WerkstoffLoader implements Runnable { ); public static final Werkstoff PDRawPowder = new Werkstoff( Materials.Palladium.getRGBA(), - "Reprecipated Palladium", + "Reprecipitated Palladium", subscriptNumbers("Pd2NH4"), new Werkstoff.Stats(), Werkstoff.Types.MIXTURE, @@ -1159,7 +1174,7 @@ public class WerkstoffLoader implements Runnable { ); public static final Werkstoff ReRh = new Werkstoff( new short[]{0x77, 0x66, 0x49}, - "Reprecipated Rhodium", + "Reprecipitated Rhodium", subscriptNumbers("Rh2NH4"), new Werkstoff.Stats(), Werkstoff.Types.MIXTURE, @@ -1172,7 +1187,7 @@ public class WerkstoffLoader implements Runnable { "Rhodium-Plated Palladium", new Werkstoff.Stats().setCentrifuge(true).setBlastFurnace(true).setMeltingPoint(4500), Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems().addMixerRecipes().addSimpleMetalWorkingItems(), + new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems().addMixerRecipes().addSimpleMetalWorkingItems().addCraftingMetalWorkingItems().addMultipleIngotMetalWorkingItems(), 88, TextureSet.SET_METALLIC, new Pair<>(Materials.Palladium,3), @@ -1259,6 +1274,10 @@ public class WerkstoffLoader implements Runnable { this.addMoltenRecipes(werkstoff); DebugLog.log("Loading Simple MetalWorking Recipes"+" " +(System.nanoTime()-timepreone)); this.addSimpleMetalRecipes(werkstoff); + DebugLog.log("Loading Crafting MetalWorking Recipes"+" " +(System.nanoTime()-timepreone)); + this.addCraftingMetalRecipes(werkstoff); + DebugLog.log("Loading MultipleIngots MetalWorking Recipes"+" " +(System.nanoTime()-timepreone)); + this.addMultipleMetalRecipes(werkstoff); if (Loader.isModLoaded("Thaumcraft")) { DebugLog.log("Loading Aspects"+" " +(System.nanoTime()-timepreone)); ThaumcraftHandler.AspectAdder.addAspectToAll(werkstoff); @@ -1290,6 +1309,8 @@ public class WerkstoffLoader implements Runnable { WerkstoffLoader.Calcium.add(WerkstoffLoader.ANAEROBE_SMELTING); + WerkstoffLoader.LuVTierMaterial.add(WerkstoffLoader.NOBLE_GAS_SMELTING); + //Calcium Smelting block Materials.Calcium.mBlastFurnaceRequired=true; @@ -1359,26 +1380,6 @@ public class WerkstoffLoader implements Runnable { WerkstoffLoader.items.put(ingot, new BW_MetaGenerated_Items(ingot)); WerkstoffLoader.items.put(ingotHot, new BW_MetaGenerated_Items(ingotHot)); //1750 WerkstoffLoader.items.put(nugget, new BW_MetaGenerated_Items(nugget)); - - - -// WerkstoffLoader.items.put(gearGt, new BW_MetaGenerated_Items(gearGt)); -// WerkstoffLoader.items.put(gearGtSmall, new BW_MetaGenerated_Items(gearGtSmall)); -// WerkstoffLoader.items.put(bolt, new BW_MetaGenerated_Items(bolt)); -// WerkstoffLoader.items.put(screw, new BW_MetaGenerated_Items(screw)); -// WerkstoffLoader.items.put(ring, new BW_MetaGenerated_Items(ring)); -// WerkstoffLoader.items.put(spring, new BW_MetaGenerated_Items(spring)); -// WerkstoffLoader.items.put(springSmall, new BW_MetaGenerated_Items(springSmall)); -// -// WerkstoffLoader.items.put(plateDouble, new BW_MetaGenerated_Items(plateDouble)); -// WerkstoffLoader.items.put(plateTriple, new BW_MetaGenerated_Items(plateTriple)); -// WerkstoffLoader.items.put(plateQuadruple, new BW_MetaGenerated_Items(plateQuadruple)); -// WerkstoffLoader.items.put(plateQuintuple, new BW_MetaGenerated_Items(plateQuintuple)); -// WerkstoffLoader.items.put(plateDense, new BW_MetaGenerated_Items(plateDense)); -// WerkstoffLoader.items.put(ingotDouble, new BW_MetaGenerated_Items(ingotDouble)); -// WerkstoffLoader.items.put(ingotTriple, new BW_MetaGenerated_Items(ingotTriple)); -// WerkstoffLoader.items.put(ingotQuadruple, new BW_MetaGenerated_Items(ingotQuadruple)); -// WerkstoffLoader.items.put(ingotQuintuple, new BW_MetaGenerated_Items(ingotQuintuple)); } if ((WerkstoffLoader.toGenerateGlobal & 0b100) != 0) { WerkstoffLoader.items.put(gem, new BW_MetaGenerated_Items(gem)); @@ -1406,14 +1407,34 @@ public class WerkstoffLoader implements Runnable { WerkstoffLoader.items.put(cellPlasma, new BW_MetaGenerated_Items(cellPlasma)); } if ((WerkstoffLoader.toGenerateGlobal & 0b1000000) != 0) { - WerkstoffLoader.items.put(cellMolten, new BW_MetaGenerated_Items(cellMolten)); + WerkstoffLoader.items.put(WerkstoffLoader.cellMolten, new BW_MetaGenerated_Items(WerkstoffLoader.cellMolten)); } if ((WerkstoffLoader.toGenerateGlobal & 0b10000000) != 0) { WerkstoffLoader.items.put(plate, new BW_MetaGenerated_Items(plate)); WerkstoffLoader.items.put(stick, new BW_MetaGenerated_Items(stick)); WerkstoffLoader.items.put(stickLong, new BW_MetaGenerated_Items(stickLong)); } - + if ((WerkstoffLoader.toGenerateGlobal & 0b100000000) != 0) { + WerkstoffLoader.items.put(gearGt, new BW_MetaGenerated_Items(gearGt)); + WerkstoffLoader.items.put(gearGtSmall, new BW_MetaGenerated_Items(gearGtSmall)); + WerkstoffLoader.items.put(bolt, new BW_MetaGenerated_Items(bolt)); + WerkstoffLoader.items.put(screw, new BW_MetaGenerated_Items(screw)); + WerkstoffLoader.items.put(ring, new BW_MetaGenerated_Items(ring)); + WerkstoffLoader.items.put(spring, new BW_MetaGenerated_Items(spring)); + WerkstoffLoader.items.put(springSmall, new BW_MetaGenerated_Items(springSmall)); + WerkstoffLoader.items.put(rotor, new BW_MetaGenerated_Items(rotor)); + } + if ((WerkstoffLoader.toGenerateGlobal & 0b1000000000) != 0) { + WerkstoffLoader.items.put(plateDouble, new BW_MetaGenerated_Items(plateDouble)); + WerkstoffLoader.items.put(plateTriple, new BW_MetaGenerated_Items(plateTriple)); + WerkstoffLoader.items.put(plateQuadruple, new BW_MetaGenerated_Items(plateQuadruple)); + WerkstoffLoader.items.put(plateQuintuple, new BW_MetaGenerated_Items(plateQuintuple)); + WerkstoffLoader.items.put(plateDense, new BW_MetaGenerated_Items(plateDense)); + WerkstoffLoader.items.put(ingotDouble, new BW_MetaGenerated_Items(ingotDouble)); + WerkstoffLoader.items.put(ingotTriple, new BW_MetaGenerated_Items(ingotTriple)); + WerkstoffLoader.items.put(ingotQuadruple, new BW_MetaGenerated_Items(ingotQuadruple)); + WerkstoffLoader.items.put(ingotQuintuple, new BW_MetaGenerated_Items(ingotQuintuple)); + } } @@ -1470,6 +1491,10 @@ public class WerkstoffLoader implements Runnable { if (((RecipeInputOreDict) curr.getKey()).input.equalsIgnoreCase("oreNULL")) { remset.add(curr); } + for (ItemStack stack : curr.getValue().items){ + if (stack.getItem() instanceof BW_MetaGenerated_Items) + remset.add(curr); + } } } Recipes.macerator.getRecipes().entrySet().removeAll(remset); @@ -1579,6 +1604,7 @@ public class WerkstoffLoader implements Runnable { GT_Recipe.GT_Recipe_Map.sBenderRecipes.add(new BWRecipes.DynamicGTRecipe(true,new ItemStack[]{werkstoff.get(ingot),GT_Utility.getIntegratedCircuit(1)},new ItemStack[]{werkstoff.get(plate)},null,null,null,null, (int) Math.max(werkstoff.getStats().getMass(), 1L), 24,0)); GT_Values.RA.addForgeHammerRecipe(werkstoff.get(ingot,3), werkstoff.get(plate,2), (int) Math.max(werkstoff.getStats().getMass(), 1L), 16); + GregTech_API.registerCover(werkstoff.get(plate), new GT_RenderedTexture(werkstoff.getTexSet().mTextures[71], werkstoff.getRGBA(), false), null); GT_Values.RA.addLatheRecipe(werkstoff.get(ingot), werkstoff.get(stick), werkstoff.get(dustSmall), (int) Math.max(werkstoff.getStats().getMass() * 5L, 1L), 16); @@ -1586,6 +1612,78 @@ public class WerkstoffLoader implements Runnable { GT_Values.RA.addExtruderRecipe(werkstoff.get(ingot),ItemList.Shape_Extruder_Plate.get(0),werkstoff.get(plate),(int) Math.max(werkstoff.getStats().getMass() * 2L, 1L), 45); GT_Values.RA.addExtruderRecipe(werkstoff.get(ingot),ItemList.Shape_Extruder_Rod.get(0),werkstoff.get(stick,2),(int) Math.max(werkstoff.getStats().getMass() * 2L, 1L), 45); + + GT_Values.RA.addPulveriserRecipe(werkstoff.get(ingot),new ItemStack[]{werkstoff.get(dust)},null,2,8); + GT_Values.RA.addPulveriserRecipe(werkstoff.get(plate),new ItemStack[]{werkstoff.get(dust)},null,2,8); + GT_Values.RA.addPulveriserRecipe(werkstoff.get(stickLong),new ItemStack[]{werkstoff.get(dust)},null,2,8); + GT_Values.RA.addPulveriserRecipe(werkstoff.get(stick),new ItemStack[]{werkstoff.get(dustSmall,2)},null,2,8); + } + } + + private void addCraftingMetalRecipes(Werkstoff werkstoff) { + if ((werkstoff.getGenerationFeatures().toGenerate & 0b100000000) != 0) { + int tVoltageMultiplier = werkstoff.getStats().meltingPoint >= 2800 ? 60 : 15; + + //bolt + GT_Values.RA.addExtruderRecipe(werkstoff.get(ingot), ItemList.Shape_Extruder_Bolt.get(0L), werkstoff.get(bolt,8), (int) Math.max(werkstoff.getStats().getMass() * 2L, 1), 8 * tVoltageMultiplier); + GT_Values.RA.addCutterRecipe(werkstoff.get(stick), werkstoff.get(bolt,4), null, (int) Math.max(werkstoff.getStats().getMass() * 2L, 1L), 4); + + //screw + GT_Values.RA.addLatheRecipe(werkstoff.get(bolt), werkstoff.get(screw),null, (int) Math.max(werkstoff.getStats().getMass() / 8L, 1L), 4); + GT_ModHandler.addCraftingRecipe(werkstoff.get(screw), GT_Proxy.tBits, new Object[]{"fX", "X ", 'X', werkstoff.get(bolt)}); + + //ring + GT_Values.RA.addExtruderRecipe(werkstoff.get(ingot), ItemList.Shape_Extruder_Ring.get(0L), werkstoff.get(ring,4), (int) Math.max(werkstoff.getStats().getMass() * 2L, 1), 6 * tVoltageMultiplier); + GT_ModHandler.addCraftingRecipe(werkstoff.get(ring), GT_Proxy.tBits, new Object[]{"h ", "fX", 'X', werkstoff.get(stick)}); + + //Gear + GT_ModHandler.addCraftingRecipe(werkstoff.get(gearGt), GT_Proxy.tBits, new Object[]{"SPS", "PwP", "SPS", 'P', werkstoff.get(plate), 'S', werkstoff.get(stick)}); + GT_Values.RA.addExtruderRecipe(werkstoff.get(ingot,4), ItemList.Shape_Extruder_Gear.get(0L), werkstoff.get(gearGt), (int) Math.max(werkstoff.getStats().getMass() * 5L, 1), 8 * tVoltageMultiplier); + + //smallGear + if (WerkstoffLoader.smallGearShape != null) + GT_Values.RA.addExtruderRecipe(werkstoff.get(ingot), WerkstoffLoader.smallGearShape.get(0L), werkstoff.get(gearGtSmall), (int) werkstoff.getStats().mass, 8 * tVoltageMultiplier); + if (ConfigHandler.GTNH) + GT_ModHandler.addCraftingRecipe(werkstoff.get(gearGtSmall), GT_Proxy.tBits, new Object[]{" S ", "hPx"," S ", 'S', werkstoff.get(stick), 'P', werkstoff.get(plate)}); + else + GT_ModHandler.addCraftingRecipe(werkstoff.get(gearGtSmall), GT_Proxy.tBits, new Object[]{"P "," h ", 'P', werkstoff.get(plate)}); + + //Rotor + GT_ModHandler.addCraftingRecipe(werkstoff.get(rotor), GT_Proxy.tBits, new Object[]{"PhP", "SRf", "PdP", 'P', werkstoff.get(plate), 'R', werkstoff.get(ring), 'S', werkstoff.get(screw)}); + GT_Values.RA.addAssemblerRecipe(werkstoff.get(plate,4), werkstoff.get(ring), Materials.Tin.getMolten(32), werkstoff.get(rotor), 240, 24); + GT_Values.RA.addAssemblerRecipe(werkstoff.get(plate,4), werkstoff.get(ring), Materials.Lead.getMolten(48), werkstoff.get(rotor), 240, 24); + GT_Values.RA.addAssemblerRecipe(werkstoff.get(plate,4), werkstoff.get(ring), Materials.SolderingAlloy.getMolten(16), werkstoff.get(rotor), 240, 24); + + if (WerkstoffLoader.rotorShape != null) + GT_Values.RA.addExtruderRecipe(werkstoff.get(ingot,5), WerkstoffLoader.rotorShape.get(0L), werkstoff.get(rotor), 200, 60); + + //molten -> metal + if (werkstoff.getGenerationFeatures().hasMolten()) { + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Gear.get(0L), werkstoff.getMolten(576), werkstoff.get(gearGt), 128, 8); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Gear_Small.get(0L), werkstoff.getMolten(144), werkstoff.get(gearGtSmall), 16, 8); + if (WerkstoffLoader.ringMold != null) + GT_Values.RA.addFluidSolidifierRecipe(WerkstoffLoader.ringMold.get(0L), werkstoff.getMolten(36), werkstoff.get(ring), 100, 4 * tVoltageMultiplier); + if (WerkstoffLoader.boltMold != null) + GT_Values.RA.addFluidSolidifierRecipe(WerkstoffLoader.boltMold.get(0L), werkstoff.getMolten(18), werkstoff.get(bolt), 50, 2 * tVoltageMultiplier); + + if (WerkstoffLoader.rotorMold != null) + GT_Values.RA.addFluidSolidifierRecipe(WerkstoffLoader.rotorMold.get(0L), werkstoff.getMolten(612), werkstoff.get(rotor), 100, 60); + } + + GT_Values.RA.addPulveriserRecipe(werkstoff.get(gearGt),new ItemStack[]{werkstoff.get(dust,4)},null,2,8); + GT_Values.RA.addPulveriserRecipe(werkstoff.get(gearGtSmall),new ItemStack[]{werkstoff.get(dust,1)},null,2,8); + GT_Values.RA.addPulveriserRecipe(werkstoff.get(rotor),new ItemStack[]{werkstoff.get(dust,4),werkstoff.get(dustSmall)},null,2,8); + GT_Values.RA.addPulveriserRecipe(werkstoff.get(bolt),new ItemStack[]{werkstoff.get(dustTiny,1)},null,2,8); + GT_Values.RA.addPulveriserRecipe(werkstoff.get(screw),new ItemStack[]{werkstoff.get(dustTiny,1)},null,2,8); + GT_Values.RA.addPulveriserRecipe(werkstoff.get(ring),new ItemStack[]{werkstoff.get(dustSmall,1)},null,2,8); + } + } + + private void addMultipleMetalRecipes(Werkstoff werkstoff){ + if ((werkstoff.getGenerationFeatures().toGenerate & 0b1000000000) != 0) { + GT_Recipe.GT_Recipe_Map.sBenderRecipes.add(new BWRecipes.DynamicGTRecipe(true,new ItemStack[]{werkstoff.get(ingot),GT_Utility.getIntegratedCircuit(2)},new ItemStack[]{werkstoff.get(plateDouble)},null,null,null,null, (int) Math.max(werkstoff.getStats().getMass() * 2, 1L), 60,0)); + GregTech_API.registerCover(werkstoff.get(plateDouble), new GT_RenderedTexture(werkstoff.getTexSet().mTextures[72], werkstoff.getRGBA(), false), null); + GT_Values.RA.addPulveriserRecipe(werkstoff.get(plateDouble),new ItemStack[]{werkstoff.get(dust,2)},null,2,8); } } @@ -1702,6 +1800,9 @@ public class WerkstoffLoader implements Runnable { if (werkstoff.contains(WerkstoffLoader.ANAEROBE_SMELTING)){ GT_Values.RA.addBlastRecipe(werkstoff.get(dust),GT_Utility.getIntegratedCircuit(11),Materials.Nitrogen.getGas(1000),null,werkstoff.getStats().meltingPoint < 1750 ? werkstoff.get(ingot) : werkstoff.get(ingotHot),null,(int) Math.max(werkstoff.getStats().getMass() / 40L, 1L) * werkstoff.getStats().meltingPoint, 120, werkstoff.getStats().getMeltingPoint()); } + else if (werkstoff.contains(WerkstoffLoader.NOBLE_GAS_SMELTING)) { + GT_Values.RA.addBlastRecipe(werkstoff.get(dust), GT_Utility.getIntegratedCircuit(11), WerkstoffLoader.Neon.getFluidOrGas(1000), null, werkstoff.getStats().meltingPoint < 1750 ? werkstoff.get(ingot) : werkstoff.get(ingotHot), null, (int) Math.max(werkstoff.getStats().getMass() / 40L, 1L) * werkstoff.getStats().meltingPoint, 120, werkstoff.getStats().getMeltingPoint()); + } else { GT_Values.RA.addBlastRecipe(werkstoff.get(dust), GT_Utility.getIntegratedCircuit(1), null, null, werkstoff.getStats().meltingPoint < 1750 ? werkstoff.get(ingot) : werkstoff.get(ingotHot), null, (int) Math.max(werkstoff.getStats().getMass() / 40L, 1L) * werkstoff.getStats().meltingPoint, 120, werkstoff.getStats().getMeltingPoint()); if (werkstoff.getStats().meltingPoint <= 1000) { diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AdditionalRecipes.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AdditionalRecipes.java index 0dfd487d20..ea6e5722de 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AdditionalRecipes.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AdditionalRecipes.java @@ -28,6 +28,8 @@ import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; import com.github.bartimaeusnek.bartworks.util.BWRecipes; import com.github.bartimaeusnek.bartworks.util.BW_Util; +import cpw.mods.fml.common.Loader; +import gregtech.api.GregTech_API; import gregtech.api.enums.*; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.ItemData; @@ -40,10 +42,15 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; import org.apache.commons.lang3.reflect.FieldUtils; +import org.apache.commons.lang3.reflect.MethodUtils; import sun.reflect.FieldInfo; +import java.lang.reflect.Array; import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Map; @@ -124,139 +131,127 @@ public class AdditionalRecipes implements Runnable { Materials.SolderingAlloy.getMolten((i + 1) * 144) }, null, (i + 1) * 1500, BW_Util.getMachineVoltageFromTier(i + 1), CLEANROOM)); } - AdditionalRecipes.replaceLuVHull(); + GregTech_API.sAfterGTPostload.add(new AdditionalRecipes.LuVHullReplacer()); AdditionalRecipes.oldGThelperMethod(); } - private static void replaceLuVHull(){ - Object toRemove = null; - for (Object obj : CraftingManager.getInstance().getRecipeList()) { - if (!(obj instanceof GT_Shaped_Recipe)) - continue; - if (BW_Util.areStacksEqualOrNull(((GT_Shaped_Recipe) obj).getRecipeOutput(), ItemList.Casing_LuV.get(1))) { - toRemove = obj; - break; - } - } - CraftingManager.getInstance().getRecipeList().remove(toRemove); - toRemove = null; - List<IRecipe> bufferedRecipeList = null; - try { - bufferedRecipeList = (List<IRecipe>) FieldUtils.getDeclaredField(GT_ModHandler.class, "sBufferRecipeList", true).get(null); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - assert bufferedRecipeList != null; - for (Object obj : bufferedRecipeList) { - if (!(obj instanceof GT_Shaped_Recipe)) - continue; - if (BW_Util.areStacksEqualOrNull(((GT_Shaped_Recipe) obj).getRecipeOutput(), ItemList.Casing_LuV.get(1))) { - toRemove = obj; - break; - } - } - bufferedRecipeList.remove(toRemove); - try { - Map<GT_ItemStack, ItemData> map = (Map<GT_ItemStack, ItemData>) FieldUtils.getDeclaredField(GT_OreDictUnificator.class, "sItemStack2DataMap", true).get(null); - ItemData data = map.get(new GT_ItemStack(ItemList.Casing_LuV.get(1))); - data.mMaterial.mMaterial = WerkstoffLoader.LuVTierMaterial.getBridgeMaterial(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - GT_ModHandler.addCraftingRecipe(ItemList.Casing_LuV.get(1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[]{"PPP", "PwP", "PPP", 'P', WerkstoffLoader.LuVTierMaterial.get(plate)}); - for (GT_Recipe.GT_Recipe_Map map : GT_Recipe.GT_Recipe_Map.sMappings){ - for (GT_Recipe recipe : map.mRecipeList){ - - if (AdditionalRecipes.doStacksCointainAndReplace(recipe.mInputs,ItemList.Casing_LuV.get(1),false)) - AdditionalRecipes.doStacksCointainAndReplace(recipe.mInputs,GT_OreDictUnificator.get(plate,Materials.Chrome,1),true,WerkstoffLoader.LuVTierMaterial.get(plate)); - if (AdditionalRecipes.doStacksCointainAndReplace(recipe.mOutputs,ItemList.Casing_LuV.get(1),false)) - AdditionalRecipes.doStacksCointainAndReplace(recipe.mInputs,GT_OreDictUnificator.get(plate,Materials.Chrome,1),true,WerkstoffLoader.LuVTierMaterial.get(plate)); - - if (AdditionalRecipes.doStacksCointainAndReplace(recipe.mInputs,ItemList.Hull_LuV.get(1),false)) - AdditionalRecipes.doStacksCointainAndReplace(recipe.mInputs,GT_OreDictUnificator.get(plate,Materials.Chrome,1),true,WerkstoffLoader.LuVTierMaterial.get(plate)); - if (AdditionalRecipes.doStacksCointainAndReplace(recipe.mOutputs,ItemList.Hull_LuV.get(1),false)) - AdditionalRecipes.doStacksCointainAndReplace(recipe.mInputs,GT_OreDictUnificator.get(plate,Materials.Chrome,1),true,WerkstoffLoader.LuVTierMaterial.get(plate)); - - if (AdditionalRecipes.doStacksCointainAndReplace(recipe.mInputs,ItemList.Casing_LuV.get(1),false)) - AdditionalRecipes.doStacksCointainAndReplace(recipe.mFluidInputs,Materials.Chrome.getMolten(1),true,WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid()); - if (AdditionalRecipes.doStacksCointainAndReplace(recipe.mOutputs,ItemList.Casing_LuV.get(1),false)) - AdditionalRecipes.doStacksCointainAndReplace(recipe.mFluidInputs,Materials.Chrome.getMolten(1),true,WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid()); - if (AdditionalRecipes.doStacksCointainAndReplace(recipe.mInputs,ItemList.Casing_LuV.get(1),false)) - AdditionalRecipes.doStacksCointainAndReplace(recipe.mFluidOutputs,Materials.Chrome.getMolten(1),true,WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid()); - if (AdditionalRecipes.doStacksCointainAndReplace(recipe.mOutputs,ItemList.Casing_LuV.get(1),false)) - AdditionalRecipes.doStacksCointainAndReplace(recipe.mFluidOutputs,Materials.Chrome.getMolten(1),true,WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid()); - - if (AdditionalRecipes.doStacksCointainAndReplace(recipe.mInputs,ItemList.Hull_LuV.get(1),false)) - AdditionalRecipes.doStacksCointainAndReplace(recipe.mFluidInputs,Materials.Chrome.getMolten(1),true,WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid()); - if (AdditionalRecipes.doStacksCointainAndReplace(recipe.mOutputs,ItemList.Hull_LuV.get(1),false)) - AdditionalRecipes.doStacksCointainAndReplace(recipe.mFluidInputs,Materials.Chrome.getMolten(1),true,WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid()); - if (AdditionalRecipes.doStacksCointainAndReplace(recipe.mInputs,ItemList.Hull_LuV.get(1),false)) - AdditionalRecipes.doStacksCointainAndReplace(recipe.mFluidOutputs,Materials.Chrome.getMolten(1),true,WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid()); - if (AdditionalRecipes.doStacksCointainAndReplace(recipe.mOutputs,ItemList.Hull_LuV.get(1),false)) - AdditionalRecipes.doStacksCointainAndReplace(recipe.mFluidOutputs,Materials.Chrome.getMolten(1),true,WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid()); + public static class LuVHullReplacer implements Runnable { + public void run() { + List<IRecipe> bufferedRecipeList = null; + try { + bufferedRecipeList = (List<IRecipe>) FieldUtils.getDeclaredField(GT_ModHandler.class, "sBufferRecipeList", true).get(null); + } catch (IllegalAccessException e) { + e.printStackTrace(); } - } + assert bufferedRecipeList != null; - for (Object obj : CraftingManager.getInstance().getRecipeList()) { - if (!(obj instanceof GT_Shaped_Recipe)) - continue; - if (BW_Util.areStacksEqualOrNull(((GT_Shaped_Recipe) obj).getRecipeOutput(), ItemList.Hull_LuV.get(1))) { - toRemove = obj;//AdditionalRecipes.doStacksCointainAndReplace(((GT_Shaped_Recipe) obj).getInput(),GT_OreDictUnificator.get(plate,Materials.Chrome,1),true,WerkstoffLoader.LuVTierMaterial.get(plate)); - break; + HashSet<ItemStack> LuVMachines = new HashSet<>(); + OrePrefixes[] LuVMaterialsGenerated = {dust, ingot, plate, stick, stickLong, rotor, plateDouble, plateDense}; + for (ItemList item : ItemList.values()) { + if (item.toString().contains("LuV") && item.hasBeenSet()) + LuVMachines.add(item.get(1)); } - } - CraftingManager.getInstance().getRecipeList().remove(toRemove); - for (Object obj : bufferedRecipeList) { - if (!(obj instanceof GT_Shaped_Recipe)) - continue; - if (BW_Util.areStacksEqualOrNull(((GT_Shaped_Recipe) obj).getRecipeOutput(), ItemList.Hull_LuV.get(1))) { - toRemove = obj;//AdditionalRecipes.doStacksCointainAndReplace(((GT_Shaped_Recipe) obj).getInput(),GT_OreDictUnificator.get(plate,Materials.Chrome,1),true,WerkstoffLoader.LuVTierMaterial.get(plate)); - break; + if (Loader.isModLoaded("dreamcraft")) { + try { + Class customItemListClass = Class.forName("com.dreammaster.gthandler.CustomItemList"); + Method hasnotBeenSet = MethodUtils.getAccessibleMethod(customItemListClass, "hasBeenSet"); + Method get = MethodUtils.getAccessibleMethod(customItemListClass, "get", long.class, Object[].class); + for (Enum customItemList : (Enum[]) FieldUtils.getField(customItemListClass, "$VALUES", true).get(null)) { + if (customItemList.toString().contains("LuV") && (boolean) hasnotBeenSet.invoke(customItemList)) + LuVMachines.add((ItemStack) get.invoke(customItemList, 1, new Object[0])); + } + } catch (IllegalAccessException | ClassNotFoundException | InvocationTargetException e) { + e.printStackTrace(); + } + } + GT_ModHandler.addCraftingRecipe(ItemList.Casing_LuV.get(1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[]{"PPP", "PwP", "PPP", 'P', WerkstoffLoader.LuVTierMaterial.get(plate)}); + for (ItemStack stack : LuVMachines) { + for (GT_Recipe.GT_Recipe_Map map : GT_Recipe.GT_Recipe_Map.sMappings) { + for (GT_Recipe recipe : map.mRecipeList) { + for (OrePrefixes prefixes : LuVMaterialsGenerated) { + if (AdditionalRecipes.LuVHullReplacer.doStacksCointainAndReplace(recipe.mInputs, stack, false)) { + AdditionalRecipes.LuVHullReplacer.doStacksCointainAndReplace(recipe.mInputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes)); + AdditionalRecipes.LuVHullReplacer.doStacksCointainAndReplace(recipe.mOutputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes)); + } + if (AdditionalRecipes.LuVHullReplacer.doStacksCointainAndReplace(recipe.mOutputs, stack, false)) { + AdditionalRecipes.LuVHullReplacer.doStacksCointainAndReplace(recipe.mInputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes)); + AdditionalRecipes.LuVHullReplacer.doStacksCointainAndReplace(recipe.mOutputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes)); + } + } + if (AdditionalRecipes.LuVHullReplacer.doStacksCointainAndReplace(recipe.mInputs, stack, false)) { + AdditionalRecipes.LuVHullReplacer.doStacksCointainAndReplace(recipe.mFluidInputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid()); + AdditionalRecipes.LuVHullReplacer.doStacksCointainAndReplace(recipe.mFluidOutputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid()); + } + if (AdditionalRecipes.LuVHullReplacer.doStacksCointainAndReplace(recipe.mOutputs, stack, false)) { + AdditionalRecipes.LuVHullReplacer.doStacksCointainAndReplace(recipe.mFluidInputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid()); + AdditionalRecipes.LuVHullReplacer.doStacksCointainAndReplace(recipe.mFluidOutputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid()); + } + } + } + for (OrePrefixes prefixes : LuVMaterialsGenerated) { + for (Object obj : CraftingManager.getInstance().getRecipeList()) { + if (!(obj instanceof GT_Shaped_Recipe)) + continue; + if (GT_Utility.areStacksEqual(((GT_Shaped_Recipe) obj).getRecipeOutput(), stack, true)) { + AdditionalRecipes.LuVHullReplacer.doStacksCointainAndReplace(((GT_Shaped_Recipe) obj).getInput(), GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes)); + } + } + for (Object obj : bufferedRecipeList) { + if (!(obj instanceof GT_Shaped_Recipe)) + continue; + if (GT_Utility.areStacksEqual(((GT_Shaped_Recipe) obj).getRecipeOutput(), stack, true)) { + AdditionalRecipes.LuVHullReplacer.doStacksCointainAndReplace(((GT_Shaped_Recipe) obj).getInput(), GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes)); + } + } + } } - } - bufferedRecipeList.remove(toRemove); - try { - Map<GT_ItemStack, ItemData> map = (Map<GT_ItemStack, ItemData>) FieldUtils.getDeclaredField(GT_OreDictUnificator.class, "sItemStack2DataMap", true).get(null); - ItemData data = map.get(new GT_ItemStack(ItemList.Hull_LuV.get(1))); - data.mMaterial.mMaterial = WerkstoffLoader.LuVTierMaterial.getBridgeMaterial(); - } catch (IllegalAccessException e) { - e.printStackTrace(); } - GT_ModHandler.addCraftingRecipe(ItemList.Hull_LuV.get(1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[]{"KPK", "CHC", 'P', WerkstoffLoader.LuVTierMaterial.get(plate), 'K',Materials.Polytetrafluoroethylene.getPlates(1), 'C', GT_OreDictUnificator.get(cableGt01, Materials.VanadiumGallium,1L), 'H',ItemList.Casing_LuV}); - } - private static boolean doStacksCointainAndReplace(FluidStack[] stacks, FluidStack stack, boolean replace, Fluid... replacement){ - boolean replaced = false; - for (int i = 0; i < stacks.length; i++) { - if (GT_Utility.areFluidsEqual(stack, stacks[i])) - if (!replace) - return true; - else { - int amount = stacks[i].amount; - stacks[i] = new FluidStack(replacement[0],amount); - replaced = true; - } + private static boolean doStacksCointainAndReplace(FluidStack[] stacks, FluidStack stack, boolean replace, Fluid... replacement) { + boolean replaced = false; + for (int i = 0; i < stacks.length; i++) { + if (GT_Utility.areFluidsEqual(stack, stacks[i])) + if (!replace) + return true; + else { + int amount = stacks[i].amount; + stacks[i] = new FluidStack(replacement[0], amount); + replaced = true; + } + } + return replaced; } - return replaced; - } - private static boolean doStacksCointainAndReplace(Object[] stacks, ItemStack stack, boolean replace, ItemStack... replacement){ - boolean replaced = false; - for (int i = 0; i < stacks.length; i++) { - if (!GT_Utility.isStackValid(stacks[i])){ - continue; + + private static boolean doStacksCointainAndReplace(Object[] stacks, ItemStack stack, boolean replace, ItemStack... replacement) { + boolean replaced = false; + for (int i = 0; i < stacks.length; i++) { + if (!GT_Utility.isStackValid(stacks[i])) { + if (stacks[i] instanceof ArrayList && ((ArrayList)stacks[i]).size() > 0) { + if (GT_Utility.areStacksEqual(stack, (ItemStack) ((ArrayList)stacks[i]).get(0), true)) + if (!replace) + return true; + else { + int amount = ((ItemStack) ((ArrayList)stacks[i]).get(0)).stackSize; + stacks[i] = new ArrayList<>(); + ((ArrayList)stacks[i]).add(replacement[0].splitStack(amount)); + replaced = true; + } + + } else + continue; + } else if (GT_Utility.areStacksEqual(stack, (ItemStack) stacks[i], true)) + if (!replace) + return true; + else { + int amount = ((ItemStack) stacks[i]).stackSize; + stacks[i] = replacement[0].splitStack(amount); + replaced = true; + } } - else if (GT_Utility.areStacksEqual(stack, (ItemStack) stacks[i])) - if (!replace) - return true; - else { - stacks[i] = replacement[0]; - replaced = true; - } + return replaced; } - return replaced; } - private static void oldGThelperMethod(){ //manual override for older GT Werkstoff werkstoff = WerkstoffLoader.Oganesson; diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/PlatinumSludgeOverHaul.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/PlatinumSludgeOverHaul.java index 0f45f7ceec..2a56658e81 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/PlatinumSludgeOverHaul.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/PlatinumSludgeOverHaul.java @@ -71,9 +71,11 @@ public class PlatinumSludgeOverHaul { //FormicAcid GT_Values.RA.addChemicalRecipe(Materials.CarbonMonoxide.getCells(1), Materials.SodiumHydroxide.getDust(1), null, null, Sodiumformate.get(cell), null, 15); GT_Values.RA.addChemicalRecipe(Sodiumformate.get(cell, 2), GT_Utility.getIntegratedCircuit(1), Materials.SulfuricAcid.getFluid(1000), null, FormicAcid.get(cell, 2), Sodiumsulfate.get(dust), 15); - GT_Values.RA.addChemicalRecipe(Materials.SulfuricAcid.getCells(2), GT_Utility.getIntegratedCircuit(1), Sodiumformate.getFluidOrGas(1000), FormicAcid.getFluidOrGas(2000), Materials.Empty.getCells(2), Sodiumsulfate.get(dust), 15); + GT_Values.RA.addChemicalRecipe(Materials.SulfuricAcid.getCells(1), GT_Utility.getIntegratedCircuit(1), Sodiumformate.getFluidOrGas(2000), FormicAcid.getFluidOrGas(2000), Materials.Empty.getCells(1), Sodiumsulfate.get(dust), 15); //AquaRegia GT_Values.RA.addMixerRecipe(Materials.DilutedSulfuricAcid.getCells(1), Materials.NitricAcid.getCells(1), GT_Utility.getIntegratedCircuit(1), null, null, null, AquaRegia.get(cell, 2), 30, 30); + GT_Values.RA.addMixerRecipe(Materials.DilutedSulfuricAcid.getCells(1), Materials.NitricAcid.getCells(1), GT_Utility.getIntegratedCircuit(2), null, null, AquaRegia.getFluidOrGas(2000), Materials.Empty.getCells(2), 30, 30); + //AmmoniumCloride GT_Values.RA.addChemicalRecipe(Materials.Ammonia.getCells(1), GT_Utility.getIntegratedCircuit(1), Materials.HydrochloricAcid.getFluid(1000), null, AmmoniumChloride.get(cell, 1), null, 15); GT_Values.RA.addChemicalRecipe(Materials.HydrochloricAcid.getCells(1), GT_Utility.getIntegratedCircuit(1), Materials.Ammonia.getGas(1000), AmmoniumChloride.getFluidOrGas(1000), Materials.Empty.getCells(1), null, 15); @@ -128,7 +130,7 @@ public class PlatinumSludgeOverHaul { GT_Values.RA.addMultiblockChemicalRecipe(new ItemStack[]{PDRawPowder.get(dust, 2)}, new FluidStack[]{FormicAcid.getFluidOrGas(4000)}, new FluidStack[]{Materials.Ammonia.getGas(2000), Materials.Ethylene.getGas(1000), Materials.Water.getFluid(1000)}, new ItemStack[]{Materials.Palladium.getDust(2)}, 250, 30); GT_Values.RA.addChemicalRecipe(Sodiumsulfate.get(dust, 2), Materials.Hydrogen.getCells(1), null, Materials.SulfuricAcid.getFluid(2000), Materials.Sodium.getDust(1), Materials.Empty.getCells(3), 30); //K2S2O7 - GT_Values.RA.addChemicalRecipe(Sodiumsulfate.get(dust), Materials.Potassium.getDust(2), Materials.Oxygen.getGas(3000), null, PotassiumDisulfate.get(dust), Materials.Empty.getCells(1), 30); + GT_Values.RA.addChemicalRecipe(Sodiumsulfate.get(dust), Materials.Potassium.getDust(2), Materials.Oxygen.getGas(3000), null, PotassiumDisulfate.get(dust), null, 30); //Rh/Os/Ir/Ru GT_Values.RA.addBlastRecipe(PTResidue.get(dust), GT_Utility.getIntegratedCircuit(11), PotassiumDisulfate.getMolten(1440), RHSulfate.getFluidOrGas(1440), LeachResidue.get(dust), null, 200, 120, 775); |