diff options
author | bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> | 2019-09-07 13:23:58 +0200 |
---|---|---|
committer | bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> | 2019-09-07 13:23:58 +0200 |
commit | 1c73a9a064874d64684f300cbd786fd1cbef23ca (patch) | |
tree | 6dcc9e14884cdd15b2d41268e3458dcdb6e69a0e /src/main | |
parent | c6b938f6c98156b1b452032a98cf1214c3656a17 (diff) | |
download | GT5-Unofficial-1c73a9a064874d64684f300cbd786fd1cbef23ca.tar.gz GT5-Unofficial-1c73a9a064874d64684f300cbd786fd1cbef23ca.tar.bz2 GT5-Unofficial-1c73a9a064874d64684f300cbd786fd1cbef23ca.zip |
lot of fixes
+fixed translation for asembly line machines
+fixed UnificationEnforcer
+made diode recipes use new LuV Material
+use my own prefixLogic
+fixed my prefixLogic
+added plate, stick and stickLong to my Werkstoffs
+made LuV Hulls/LuV Casings use my LuV Material
+fixed wrong outputs of nerfed dusts
+fixed crop recipes give out pure metal
+fixed crafting recipes give out pure metal
+added Sodiumformate recipe
Signed-off-by: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>
Former-commit-id: 88e0e27dc697559c7ea2b455a557f3dfa5f807b8
Diffstat (limited to 'src/main')
7 files changed, 483 insertions, 240 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java b/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java index b3cd4aca0c..832b37716c 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java @@ -150,7 +150,6 @@ public final class MainMod { MinecraftForge.EVENT_BUS.register(serverEventHandler); // FMLCommonHandler.instance().bus().register(serverEventHandler); } - new LoaderRegistry().run(); if (ConfigHandler.BioLab) new BioLabLoader().run(); if (ConfigHandler.newStuff) { @@ -159,6 +158,7 @@ public final class MainMod { else INSTANCE.runInit(); } + new LoaderRegistry().run(); } @Mod.EventHandler @@ -179,10 +179,10 @@ public final class MainMod { INSTANCE.run(); GT_LanguageManager.addStringLocalization("achievement.gt.blockmachines.electricimplosioncompressor","Electric Implosions?"); GT_LanguageManager.addStringLocalization("achievement.gt.blockmachines.electricimplosioncompressor.desc","Basically a giant Hammer that presses Stuff - No more TNT!"); - GT_LanguageManager.addStringLocalization("achievement.gt.blockmachines.DEHP","Heat from below!"); - GT_LanguageManager.addStringLocalization("achievement.gt.blockmachines.DEHP.desc","Get ALL the thermal energy!"); - GT_LanguageManager.addStringLocalization("achievement.gt.blockmachines.CircuitAssemblyLine","Cheaper Circuits?"); - GT_LanguageManager.addStringLocalization("achievement.gt.blockmachines.CircuitAssemblyLine.desc","Well, yes, but actually no..."); + GT_LanguageManager.addStringLocalization("achievement.gt.blockmachines.dehp","Heat from below!"); + GT_LanguageManager.addStringLocalization("achievement.gt.blockmachines.dehp.desc","Get ALL the thermal energy!"); + GT_LanguageManager.addStringLocalization("achievement.gt.blockmachines.circuitassemblyline","Cheaper Circuits?"); + GT_LanguageManager.addStringLocalization("achievement.gt.blockmachines.circuitassemblyline.desc","Well, yes, but actually no..."); } } @Mod.EventHandler @@ -251,24 +251,30 @@ public final class MainMod { if (GT_Utility.areStacksEqual(recipe.mInputs[i], toReplace)) { if (removal) toRem.add(recipe); - else - recipe.mInputs[i] = replacement; + else { + int amount = recipe.mInputs[i].stackSize; + recipe.mInputs[i] = replacement.splitStack(amount); + } } } for (int i = 0; i < recipe.mOutputs.length; i++) { if (GT_Utility.areStacksEqual(recipe.mOutputs[i], toReplace)) { if (removal) toRem.add(recipe); - else - recipe.mOutputs[i] = replacement; + else { + int amount = recipe.mOutputs[i].stackSize; + recipe.mOutputs[i] = replacement.splitStack(amount); + } } } if (recipe.mSpecialItems instanceof ItemStack) { if (GT_Utility.areStacksEqual((ItemStack) recipe.mSpecialItems, toReplace)) { if (removal) toRem.add(recipe); - else - recipe.mSpecialItems = replacement; + else { + int amount = ((ItemStack) recipe.mSpecialItems).stackSize; + recipe.mSpecialItems = replacement.splitStack(amount); + } } } } diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java index 5426e20a99..9519d67aee 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java @@ -27,10 +27,13 @@ import com.github.bartimaeusnek.bartworks.common.tileentities.multis.GT_TileEnti import com.github.bartimaeusnek.bartworks.common.tileentities.multis.GT_TileEntity_ManualTrafo; import com.github.bartimaeusnek.bartworks.common.tileentities.multis.GT_TileEntity_THTR; import com.github.bartimaeusnek.bartworks.common.tileentities.multis.GT_TileEntity_Windmill; +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 gregtech.api.GregTech_API; import gregtech.api.enums.*; +import gregtech.api.interfaces.ISubTagContainer; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; @@ -293,7 +296,7 @@ public class RecipeLoader implements Runnable { ); Materials[] cables = {Materials.Lead, Materials.Tin, Materials.AnnealedCopper, Materials.Gold, Materials.Aluminium, Materials.Tungsten, Materials.VanadiumGallium, Materials.Naquadah, Materials.NaquadahAlloy, Materials.Superconductor}; - Materials[] hulls = {Materials.WroughtIron, Materials.Steel, Materials.Aluminium, Materials.StainlessSteel, Materials.Titanium, Materials.TungstenSteel, Materials.Chrome, Materials.Iridium, Materials.Osmium, Materials.Naquadah}; + ISubTagContainer[] hulls = {Materials.WroughtIron, Materials.Steel, Materials.Aluminium, Materials.StainlessSteel, Materials.Titanium, Materials.TungstenSteel, WerkstoffLoader.LuVTierMaterial, Materials.Iridium, Materials.Osmium, Materials.Naquadah}; ItemStack[] bats = {ItemList.Battery_Hull_LV.get(1L), ItemList.Battery_Hull_MV.get(1L), ItemList.Battery_Hull_HV.get(1L)}; ItemStack[] chreac = {ItemList.Machine_MV_ChemicalReactor.get(1L), ItemList.Machine_HV_ChemicalReactor.get(1L), ItemList.Machine_EV_ChemicalReactor.get(1L)}; @@ -318,7 +321,7 @@ public class RecipeLoader implements Runnable { for (int i = 0; i < GT_Values.VN.length; i++) { try { Materials cable = cables[i]; - Materials hull = hulls[i]; + ItemStack hull = hulls[i] instanceof Materials ? GT_OreDictUnificator.get(OrePrefixes.plate, hulls[i], 1L) : ((Werkstoff) hulls[i]).get(OrePrefixes.plate); ItemStack machinehull = ItemList.MACHINE_HULLS[i].get(1L); GT_ModHandler.addCraftingRecipe( @@ -329,7 +332,7 @@ public class RecipeLoader implements Runnable { "WCW", "PWP", 'W', GT_OreDictUnificator.get(OrePrefixes.wireGt16, cable, 1L), - 'P', GT_OreDictUnificator.get(OrePrefixes.plate, hull, 1L), + 'P', hull, 'C', machinehull }); GT_ModHandler.addCraftingRecipe( @@ -341,7 +344,7 @@ public class RecipeLoader implements Runnable { "PDP", 'D', ItemList.Circuit_Parts_Diode.get(1L, ItemList.Circuit_Parts_DiodeSMD.get(1L)), 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt12, cable, 1L), - 'P', GT_OreDictUnificator.get(OrePrefixes.plate, hull, 1L), + 'P', hull, 'C', machinehull } ); @@ -354,7 +357,7 @@ public class RecipeLoader implements Runnable { "PDP", 'D', ItemList.Circuit_Parts_DiodeSMD.get(1L, ItemList.Circuit_Parts_Diode.get(1L)), 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt12, cable, 1L), - 'P', GT_OreDictUnificator.get(OrePrefixes.plate, hull, 1L), + 'P', hull, 'C', machinehull } ); @@ -367,7 +370,7 @@ public class RecipeLoader implements Runnable { "PDP", 'D', ItemList.Circuit_Parts_Diode.get(1L, ItemList.Circuit_Parts_DiodeSMD.get(1L)), 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt08, cable, 1L), - 'P', GT_OreDictUnificator.get(OrePrefixes.plate, hull, 1L), + 'P', hull, 'C', machinehull } ); @@ -380,7 +383,7 @@ public class RecipeLoader implements Runnable { "PDP", 'D', ItemList.Circuit_Parts_DiodeSMD.get(1L, ItemList.Circuit_Parts_Diode.get(1L)), 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt08, cable, 1L), - 'P', GT_OreDictUnificator.get(OrePrefixes.plate, hull, 1L), + 'P', hull, 'C', machinehull } ); @@ -393,7 +396,7 @@ public class RecipeLoader implements Runnable { "PDP", 'D', ItemList.Circuit_Parts_Diode.get(1L, ItemList.Circuit_Parts_DiodeSMD.get(1L)), 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt04, cable, 1L), - 'P', GT_OreDictUnificator.get(OrePrefixes.plate, hull, 1L), + 'P', hull, 'C', machinehull } ); @@ -406,7 +409,7 @@ public class RecipeLoader implements Runnable { "PDP", 'D', ItemList.Circuit_Parts_DiodeSMD.get(1L, ItemList.Circuit_Parts_Diode.get(1L)), 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt04, cable, 1L), - 'P', GT_OreDictUnificator.get(OrePrefixes.plate, hull, 1L), + 'P', hull, 'C', machinehull } ); @@ -419,7 +422,7 @@ public class RecipeLoader implements Runnable { "PDP", 'D', ItemList.Circuit_Parts_Diode.get(1L, ItemList.Circuit_Parts_DiodeSMD.get(1L)), 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt02, cable, 1L), - 'P', GT_OreDictUnificator.get(OrePrefixes.plate, hull, 1L), + 'P', hull, 'C', machinehull } ); @@ -432,7 +435,7 @@ public class RecipeLoader implements Runnable { "PDP", 'D', ItemList.Circuit_Parts_DiodeSMD.get(1L, ItemList.Circuit_Parts_Diode.get(1L)), 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt02, cable, 1L), - 'P', GT_OreDictUnificator.get(OrePrefixes.plate, hull, 1L), + 'P', hull, 'C', machinehull } ); @@ -446,7 +449,7 @@ public class RecipeLoader implements Runnable { 'H', ItemList.Circuit_Parts_Coil.get(1L), 'D', ItemList.Circuit_Parts_Diode.get(1L, ItemList.Circuit_Parts_DiodeSMD.get(1L)), 'W', GT_OreDictUnificator.get(OrePrefixes.wireGt16, cable, 1L), - 'P', GT_OreDictUnificator.get(OrePrefixes.plate, hull, 1L), + 'P', hull, 'C', machinehull } ); @@ -460,7 +463,7 @@ public class RecipeLoader implements Runnable { 'H', ItemList.Circuit_Parts_Coil.get(1L), 'D', ItemList.Circuit_Parts_DiodeSMD.get(1L, ItemList.Circuit_Parts_Diode.get(1L)), 'W', GT_OreDictUnificator.get(OrePrefixes.wireGt16, cable, 1L), - 'P', GT_OreDictUnificator.get(OrePrefixes.plate, hull, 1L), + 'P', hull, 'C', machinehull } ); diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Items.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Items.java index d3bd73964b..5da4d63e25 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Items.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Items.java @@ -24,6 +24,7 @@ package com.github.bartimaeusnek.bartworks.system.material; import com.github.bartimaeusnek.bartworks.API.IRadMaterial; import com.github.bartimaeusnek.bartworks.common.configs.ConfigHandler; +import com.github.bartimaeusnek.bartworks.system.log.DebugLog; import com.github.bartimaeusnek.bartworks.system.oredict.OreDictAdder; import com.github.bartimaeusnek.bartworks.util.ChatColorHelper; import com.github.bartimaeusnek.bartworks.util.Pair; @@ -76,9 +77,9 @@ public class BW_MetaGenerated_Items extends GT_MetaGenerated_Item implements IRa for (int i = 0; i < this.aNumToGen; i++) { ItemStack tStack = new ItemStack(this, 1, i); Werkstoff w = werkstoffHashMap.get((short) i); - if (w == null || ((w.getGenerationFeatures().blacklist & orePrefixes.mMaterialGenerationBits) != 0) ) + if (w == null || ((w.getGenerationFeatures().blacklist & Werkstoff.GenerationFeatures.prefixLogic.get(this.orePrefixes)) != 0) ) continue; - if ((w.getGenerationFeatures().toGenerate & orePrefixes.mMaterialGenerationBits) == 0 && orePrefixes.mMaterialGenerationBits != 0) + if ((w.getGenerationFeatures().toGenerate & Werkstoff.GenerationFeatures.prefixLogic.get(this.orePrefixes)) == 0 && Werkstoff.GenerationFeatures.prefixLogic.get(this.orePrefixes) != 0) continue; GT_LanguageManager.addStringLocalization(this.getUnlocalizedName(tStack) + ".name", this.getDefaultLocalization(w)); GT_LanguageManager.addStringLocalization(this.getUnlocalizedName(tStack) + ".tooltip", w.getToolTip()); @@ -153,12 +154,12 @@ public class BW_MetaGenerated_Items extends GT_MetaGenerated_Item implements IRa public final void getSubItems(Item var1, CreativeTabs aCreativeTab, List aList) { for (int i = 0; i < this.aNumToGen; i++) { Werkstoff werkstoff = werkstoffHashMap.get((short) i); - if (werkstoff != null && ((werkstoff.getGenerationFeatures().toGenerate & this.orePrefixes.mMaterialGenerationBits) != 0) && ((werkstoff.getGenerationFeatures().blacklist & this.orePrefixes.mMaterialGenerationBits) == 0)) { + if (werkstoff != null && ((werkstoff.getGenerationFeatures().toGenerate & Werkstoff.GenerationFeatures.prefixLogic.get(this.orePrefixes)) != 0) && ((werkstoff.getGenerationFeatures().blacklist & Werkstoff.GenerationFeatures.prefixLogic.get(this.orePrefixes)) == 0)) { ItemStack tStack = new ItemStack(this, 1, i); aList.add(tStack); } } - super.getSubItems(var1, aCreativeTab, aList); + //super.getSubItems(var1, aCreativeTab, aList); } @Override 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 83aeae3afc..3ece0e03d3 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 @@ -58,6 +58,15 @@ public class Werkstoff implements IColorModulationContainer, ISubTagContainer { private final Werkstoff.GenerationFeatures generationFeatures; private final short mID; private final TextureSet texSet; + private Materials bridgeMaterial; + + public Materials getBridgeMaterial() { + return this.bridgeMaterial; + } + + public void setBridgeMaterial(Materials bridgeMaterial) { + this.bridgeMaterial = bridgeMaterial; + } public static void init(){ Werkstoff.default_null_Werkstoff = new Werkstoff(new short[3], "_NULL", "Default null Werkstoff", Werkstoff.DEFAULT_NULL_STATS, Werkstoff.Types.UNDEFINED, Werkstoff.DEFAULT_NULL_GENERATION_FEATURES, -1, TextureSet.SET_NONE); @@ -354,7 +363,7 @@ public class Werkstoff implements IColorModulationContainer, ISubTagContainer { molten 1000000 crafting metal 10000000 (sticks, plates) meta crafting metal 100000000 (gears, screws, bolts, springs) - multiple ingotWorth stuff 1000000000 (double, triple, quadrupe, ingot/plates) + multiple ingotWorth stuff 1000000000 (double, triple, quadruple, ingot/plates) */ public short toGenerate = 0b0001001; public static final HashMap<OrePrefixes,Integer> prefixLogic = new HashMap<>(); @@ -363,30 +372,30 @@ public class Werkstoff implements IColorModulationContainer, ISubTagContainer { for (OrePrefixes p : OrePrefixes.values()){ Werkstoff.GenerationFeatures.prefixLogic.put(p,0); } - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.dust,1); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.dustTiny,1); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.dustSmall,1); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.ingot,10); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.ingotHot,10); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.nugget,10); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.gem,100); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.gemFlawed,100); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.gemExquisite,100); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.gemChipped,100); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.gemFlawless,100); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.ore,1000); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.dustImpure,1000); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.dustPure,1000); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.crushed,1000); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.crushedPurified,1000); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.crushedCentrifuged,1000); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.cell,10000); - Werkstoff.GenerationFeatures.prefixLogic.put(WerkstoffLoader.cellMolten,1000000); - Werkstoff.GenerationFeatures.prefixLogic.put(WerkstoffLoader.cellMolten,1000000); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.plate,10000000); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.stick,10000000); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.rod,10000000); - Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.stickLong,10000000); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.dust,0b1); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.dustTiny,0b1); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.dustSmall,0b1); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.ingot,0b10); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.ingotHot,0b10); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.nugget,0b10); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.gem,0b100); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.gemFlawed,0b100); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.gemExquisite,0b100); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.gemChipped,0b100); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.gemFlawless,0b100); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.ore,0b1000); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.dustImpure,0b1000); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.dustPure,0b1000); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.crushed,0b1000); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.crushedPurified,0b1000); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.crushedCentrifuged,0b1000); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.cell,0b10000); + Werkstoff.GenerationFeatures.prefixLogic.put(WerkstoffLoader.cellMolten,0b1000000); + Werkstoff.GenerationFeatures.prefixLogic.put(WerkstoffLoader.cellMolten,0b1000000); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.plate,0b10000000); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.stick,0b10000000); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.rod,0b10000000); + Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.stickLong,0b10000000); } //public byte toGenerateSecondary = 0b0000000; @@ -504,6 +513,13 @@ public class Werkstoff implements IColorModulationContainer, ISubTagContainer { this.toGenerate = (byte) (this.toGenerate | 0x4); return this; } + public Werkstoff.GenerationFeatures addSimpleMetalWorkingItems() { + this.toGenerate = (byte) (this.toGenerate | 0b10000000); + return this; + } + public boolean hasSimpleMetalWorkingItems() { + return (this.toGenerate & 0b10000000) != 0; + } } 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 26f4783a0f..157b5ca643 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,7 +33,6 @@ 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; @@ -49,6 +48,7 @@ import gregtech.api.objects.GT_Fluid; import gregtech.api.objects.GT_MultiTexture; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.*; +import gregtech.common.GT_Proxy; import gregtech.common.items.behaviors.Behaviour_DataOrb; import ic2.api.recipe.IRecipeInput; import ic2.api.recipe.RecipeInputOreDict; @@ -1168,11 +1168,11 @@ public class WerkstoffLoader implements Runnable { TextureSet.SET_QUARTZ ); public static final Werkstoff LuVTierMaterial = new Werkstoff( - new short[]{0xff, 0xee, 0xee}, + Materials.Chrome.getRGBA(), "Rhodium-Plated Palladium", new Werkstoff.Stats().setCentrifuge(true).setBlastFurnace(true).setMeltingPoint(4500), Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust().addMetalItems().addMixerRecipes(), + new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems().addMixerRecipes().addSimpleMetalWorkingItems(), 88, TextureSet.SET_METALLIC, new Pair<>(Materials.Palladium,3), @@ -1257,6 +1257,8 @@ public class WerkstoffLoader implements Runnable { this.addCellRecipes(werkstoff); DebugLog.log("Loading Meltdown Recipes"+" " +(System.nanoTime()-timepreone)); this.addMoltenRecipes(werkstoff); + DebugLog.log("Loading Simple MetalWorking Recipes"+" " +(System.nanoTime()-timepreone)); + this.addSimpleMetalRecipes(werkstoff); if (Loader.isModLoaded("Thaumcraft")) { DebugLog.log("Loading Aspects"+" " +(System.nanoTime()-timepreone)); ThaumcraftHandler.AspectAdder.addAspectToAll(werkstoff); @@ -1358,10 +1360,8 @@ public class WerkstoffLoader implements Runnable { WerkstoffLoader.items.put(ingotHot, new BW_MetaGenerated_Items(ingotHot)); //1750 WerkstoffLoader.items.put(nugget, new BW_MetaGenerated_Items(nugget)); -// WerkstoffLoader.items.put(plate, new BW_MetaGenerated_Items(plate)); -// WerkstoffLoader.items.put(rod, new BW_MetaGenerated_Items(rod)); -// WerkstoffLoader.items.put(stickLong, new BW_MetaGenerated_Items(stickLong)); -// + + // 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)); @@ -1408,6 +1408,13 @@ public class WerkstoffLoader implements Runnable { if ((WerkstoffLoader.toGenerateGlobal & 0b1000000) != 0) { WerkstoffLoader.items.put(cellMolten, new BW_MetaGenerated_Items(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)); + } + + } @@ -1439,9 +1446,10 @@ public class WerkstoffLoader implements Runnable { } if (werkstoff.getGenerationFeatures().hasMolten()) { werkstoffBridgeMaterial.mStandardMoltenFluid = werkstoff.getMolten(1).getFluid(); - } + werkstoffBridgeMaterial.mName = werkstoff.getDefaultName(); toRem.add(werkstoffBridgeMaterial); + werkstoff.setBridgeMaterial(werkstoffBridgeMaterial); } try { Field f = Materials.class.getDeclaredField("MATERIALS_MAP"); @@ -1556,6 +1564,31 @@ public class WerkstoffLoader implements Runnable { } } + private void addSimpleMetalRecipes(Werkstoff werkstoff) { + if ((werkstoff.getGenerationFeatures().toGenerate & 0b10000000) != 0) { + if (werkstoff.getGenerationFeatures().hasGems()) { + GT_Values.RA.addLatheRecipe(werkstoff.get(gem), werkstoff.get(stick), werkstoff.get(dustSmall), (int) Math.max(werkstoff.getStats().getMass() * 5L, 1L), 16); + GT_ModHandler.addCraftingRecipe(werkstoff.get(stick, 2), GT_Proxy.tBits, new Object[]{"s", "X", 'X', werkstoff.get(stickLong)}); + GT_ModHandler.addCraftingRecipe(werkstoff.get(stick), GT_Proxy.tBits, new Object[]{"f ", " X", 'X', werkstoff.get(gem)}); + GT_Values.RA.addForgeHammerRecipe(werkstoff.get(stick, 2), werkstoff.get(stickLong), (int) Math.max(werkstoff.getStats().getMass(), 1L), 16); + return; + } + + GT_ModHandler.addCraftingRecipe(werkstoff.get(stick, 2), GT_Proxy.tBits, new Object[]{"s", "X", 'X', werkstoff.get(stickLong)}); + GT_ModHandler.addCraftingRecipe(werkstoff.get(stick), GT_Proxy.tBits, new Object[]{"f ", " X", 'X', werkstoff.get(ingot)}); + + 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); + + GT_Values.RA.addLatheRecipe(werkstoff.get(ingot), werkstoff.get(stick), werkstoff.get(dustSmall), (int) Math.max(werkstoff.getStats().getMass() * 5L, 1L), 16); + + GT_Values.RA.addForgeHammerRecipe(werkstoff.get(stick, 2), werkstoff.get(stickLong), (int) Math.max(werkstoff.getStats().getMass(), 1L), 16); + + 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); + } + } + private void addDustRecipes(Werkstoff werkstoff) { if ((werkstoff.getGenerationFeatures().toGenerate & 0b1) != 0) { List<FluidStack> flOutputs = new ArrayList<>(); @@ -1918,9 +1951,11 @@ public class WerkstoffLoader implements Runnable { if ((werkstoff.getGenerationFeatures().toGenerate & 0b10) != 0) { GT_Values.RA.addFluidExtractionRecipe(werkstoff.get(ingot),null,werkstoff.getMolten(144),0,werkstoff.getStats().getMass() > 128 ? 64 : 30, (int) werkstoff.getStats().mass); - //GT_Values.RA.addFluidExtractionRecipe(werkstoff.get(stickLong),null,werkstoff.getMolten(144),0,werkstoff.getStats().getMass() > 128 ? 64 : 30, (int) werkstoff.getStats().mass); - //GT_Values.RA.addFluidExtractionRecipe(werkstoff.get(plate),null,werkstoff.getMolten(144),0,werkstoff.getStats().getMass() > 128 ? 64 : 30, (int) werkstoff.getStats().mass); - //GT_Values.RA.addFluidExtractionRecipe(werkstoff.get(stick),null,werkstoff.getMolten(72),0,werkstoff.getStats().getMass() > 128 ? 64 : 30, (int) werkstoff.getStats().mass); + if ((werkstoff.getGenerationFeatures().toGenerate & 0b10000000) != 0) { + GT_Values.RA.addFluidExtractionRecipe(werkstoff.get(stickLong), null, werkstoff.getMolten(144), 0, werkstoff.getStats().getMass() > 128 ? 64 : 30, (int) werkstoff.getStats().mass); + GT_Values.RA.addFluidExtractionRecipe(werkstoff.get(plate), null, werkstoff.getMolten(144), 0, werkstoff.getStats().getMass() > 128 ? 64 : 30, (int) werkstoff.getStats().mass); + GT_Values.RA.addFluidExtractionRecipe(werkstoff.get(stick), null, werkstoff.getMolten(72), 0, werkstoff.getStats().getMass() > 128 ? 64 : 30, (int) werkstoff.getStats().mass); + } GT_Values.RA.addFluidExtractionRecipe(werkstoff.get(nugget),null,werkstoff.getMolten(16),0,werkstoff.getStats().getMass() > 128 ? 64 : 30, (int) werkstoff.getStats().mass); GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Ingot.get(0), werkstoff.getMolten(144), werkstoff.get(ingot), werkstoff.getStats().getMass() > 128 ? 64 : 30, (int) werkstoff.getStats().mass); 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 f829306575..0dfd487d20 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 @@ -29,14 +29,22 @@ import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; import com.github.bartimaeusnek.bartworks.util.BWRecipes; import com.github.bartimaeusnek.bartworks.util.BW_Util; import gregtech.api.enums.*; -import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; +import gregtech.api.objects.GT_ItemStack; +import gregtech.api.objects.ItemData; +import gregtech.api.util.*; import gregtech.common.items.behaviors.Behaviour_DataOrb; import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.CraftingManager; +import net.minecraft.item.crafting.IRecipe; +import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.oredict.OreDictionary; +import org.apache.commons.lang3.reflect.FieldUtils; +import sun.reflect.FieldInfo; import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import static com.github.bartimaeusnek.bartworks.util.BW_Util.CLEANROOM; @@ -47,7 +55,7 @@ public class AdditionalRecipes implements Runnable { @Override public void run() { //Thorium/Yttrium Glas - GT_Values.RA.addBlastRecipe(WerkstoffLoader.YttriumOxide.get(dustSmall,2),WerkstoffLoader.Thorianit.get(dustSmall,2),Materials.Glass.getMolten(144),null,new ItemStack(ItemRegistry.bw_glasses[0],1,12),null,800, BW_Util.getMachineVoltageFromTier(5),3663); + GT_Values.RA.addBlastRecipe(WerkstoffLoader.YttriumOxide.get(dustSmall, 2), WerkstoffLoader.Thorianit.get(dustSmall, 2), Materials.Glass.getMolten(144), null, new ItemStack(ItemRegistry.bw_glasses[0], 1, 12), null, 800, BW_Util.getMachineVoltageFromTier(5), 3663); //Thorianit recipes GT_Values.RA.addSifterRecipe(WerkstoffLoader.Thorianit.get(crushedPurified), new ItemStack[]{ @@ -57,66 +65,196 @@ public class AdditionalRecipes implements Runnable { Materials.Thorium.getDust(1), Materials.Thorium.getDust(1), WerkstoffLoader.Thorium232.get(dust), - }, new int[]{7000,1300,700,600,300,100}, + }, new int[]{7000, 1300, 700, 600, 300, 100}, 400, BW_Util.getMachineVoltageFromTier(5) - ); - GT_Values.RA.addChemicalRecipe(WerkstoffLoader.Thorianit.get(dust),Materials.Aluminium.getDust(1),Materials.Thorium.getDust(1),1000); - GT_Values.RA.addChemicalRecipe(WerkstoffLoader.Thorianit.get(dust),Materials.Magnesium.getDust(1),Materials.Thorium.getDust(1),1000); - GT_Values.RA.addChemicalRecipe(WerkstoffLoader.Thorianit.get(crushed), ItemList.Crop_Drop_Thorium.get(9),Materials.Water.getFluid(1000),Materials.Thorium.getMolten(144),WerkstoffLoader.Thorianit.get(crushedPurified,4),96,24); + ); + GT_Values.RA.addChemicalRecipe(WerkstoffLoader.Thorianit.get(dust), Materials.Aluminium.getDust(1), Materials.Thorium.getDust(1), 1000); + GT_Values.RA.addChemicalRecipe(WerkstoffLoader.Thorianit.get(dust), Materials.Magnesium.getDust(1), Materials.Thorium.getDust(1), 1000); + GT_Values.RA.addChemicalRecipe(WerkstoffLoader.Thorianit.get(crushed), ItemList.Crop_Drop_Thorium.get(9), Materials.Water.getFluid(1000), Materials.Thorium.getMolten(144), WerkstoffLoader.Thorianit.get(crushedPurified, 4), 96, 24); //Prasiolite - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(dust,Materials.Quartzite,40L),Materials.Amethyst.getDust(10),GT_Values.NF,GT_Values.NF,WerkstoffLoader.Prasiolite.get(OrePrefixes.gemFlawed,20),GT_Values.NI,800, BW_Util.getMachineVoltageFromTier(2),500); - GT_Values.RA.addPrimitiveBlastRecipe(GT_OreDictUnificator.get(dust,Materials.Quartzite,40L),Materials.Amethyst.getDust(10),6,WerkstoffLoader.Prasiolite.get(OrePrefixes.gemFlawed,20),GT_Values.NI,800); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(dust, Materials.Quartzite, 40L), Materials.Amethyst.getDust(10), GT_Values.NF, GT_Values.NF, WerkstoffLoader.Prasiolite.get(OrePrefixes.gemFlawed, 20), GT_Values.NI, 800, BW_Util.getMachineVoltageFromTier(2), 500); + GT_Values.RA.addPrimitiveBlastRecipe(GT_OreDictUnificator.get(dust, Materials.Quartzite, 40L), Materials.Amethyst.getDust(10), 6, WerkstoffLoader.Prasiolite.get(OrePrefixes.gemFlawed, 20), GT_Values.NI, 800); //Cubic Circonia - GT_Values.RA.addChemicalRecipe(Materials.Yttrium.getDust(2), GT_Utility.getIntegratedCircuit(11),Materials.Oxygen.getGas(3000),null, WerkstoffLoader.YttriumOxide.get(dust,5),64, BW_Util.getMachineVoltageFromTier(4)); - GT_Recipe.GT_Recipe_Map.sBlastRecipes.addRecipe(false, new ItemStack[]{WerkstoffLoader.Zirconium.get(dust,10), WerkstoffLoader.YttriumOxide.get(dust)}, new ItemStack[]{WerkstoffLoader.YttriumOxide.get(dust), WerkstoffLoader.CubicZirconia.get(gemFlawed, 40)}, null, null, new FluidStack[]{Materials.Oxygen.getGas(20000)}, null, 14400, BW_Util.getMachineVoltageFromTier(4), 2953); + GT_Values.RA.addChemicalRecipe(Materials.Yttrium.getDust(2), GT_Utility.getIntegratedCircuit(11), Materials.Oxygen.getGas(3000), null, WerkstoffLoader.YttriumOxide.get(dust, 5), 64, BW_Util.getMachineVoltageFromTier(4)); + GT_Recipe.GT_Recipe_Map.sBlastRecipes.addRecipe(false, new ItemStack[]{WerkstoffLoader.Zirconium.get(dust, 10), WerkstoffLoader.YttriumOxide.get(dust)}, new ItemStack[]{WerkstoffLoader.YttriumOxide.get(dust), WerkstoffLoader.CubicZirconia.get(gemFlawed, 40)}, null, null, new FluidStack[]{Materials.Oxygen.getGas(20000)}, null, 14400, BW_Util.getMachineVoltageFromTier(4), 2953); //Tellurium - GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(crushed,Materials.Lead,10L),GT_Utility.getIntegratedCircuit(17),GT_Values.NF,GT_Values.NF,Materials.Lead.getIngots(10),Materials.Tellurium.getNuggets(20),800, BW_Util.getMachineVoltageFromTier(2),722); - GT_Values.RA.addFusionReactorRecipe(Materials.Plutonium.getMolten(16), Materials.Beryllium.getMolten(16), WerkstoffLoader.Californium.getMolten(16), 250,49152, 480000000); - GT_Values.RA.addFusionReactorRecipe(WerkstoffLoader.Californium.getMolten(16), WerkstoffLoader.Calcium.getMolten(16), WerkstoffLoader.Oganesson.getFluidOrGas(16), 500,49152, 600000000); - GT_Values.RA.addDistillationTowerRecipe(Materials.LiquidAir.getFluid(100000000),new FluidStack[]{Materials.Nitrogen.getGas(78084000),Materials.Oxygen.getGas(20946000),Materials.Argon.getGas(934000),Materials.CarbonDioxide.getGas(40700),WerkstoffLoader.Neon.getFluidOrGas(1818),Materials.Helium.getGas(524),Materials.Methane.getGas(180),WerkstoffLoader.Krypton.getFluidOrGas(114),Materials.Hydrogen.getGas(55),WerkstoffLoader.Xenon.getFluidOrGas(9)},null,7500, BW_Util.getMachineVoltageFromTier(4)); - GT_Values.RA.addAutoclaveRecipe(WerkstoffLoader.MagnetoResonaticDust.get(dust),WerkstoffLoader.Neon.getFluidOrGas(1000),WerkstoffLoader.MagnetoResonaticDust.get(gemChipped,9),9000,4500, BW_Util.getMachineVoltageFromTier(5)); - GT_Values.RA.addAutoclaveRecipe(WerkstoffLoader.MagnetoResonaticDust.get(dust),WerkstoffLoader.Krypton.getFluidOrGas(1000),WerkstoffLoader.MagnetoResonaticDust.get(gem),10000,4500, BW_Util.getMachineVoltageFromTier(5)); + GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(crushed, Materials.Lead, 10L), GT_Utility.getIntegratedCircuit(17), GT_Values.NF, GT_Values.NF, Materials.Lead.getIngots(10), Materials.Tellurium.getNuggets(20), 800, BW_Util.getMachineVoltageFromTier(2), 722); + GT_Values.RA.addFusionReactorRecipe(Materials.Plutonium.getMolten(16), Materials.Beryllium.getMolten(16), WerkstoffLoader.Californium.getMolten(16), 250, 49152, 480000000); + GT_Values.RA.addFusionReactorRecipe(WerkstoffLoader.Californium.getMolten(16), WerkstoffLoader.Calcium.getMolten(16), WerkstoffLoader.Oganesson.getFluidOrGas(16), 500, 49152, 600000000); + GT_Values.RA.addDistillationTowerRecipe(Materials.LiquidAir.getFluid(100000000), new FluidStack[]{Materials.Nitrogen.getGas(78084000), Materials.Oxygen.getGas(20946000), Materials.Argon.getGas(934000), Materials.CarbonDioxide.getGas(40700), WerkstoffLoader.Neon.getFluidOrGas(1818), Materials.Helium.getGas(524), Materials.Methane.getGas(180), WerkstoffLoader.Krypton.getFluidOrGas(114), Materials.Hydrogen.getGas(55), WerkstoffLoader.Xenon.getFluidOrGas(9)}, null, 7500, BW_Util.getMachineVoltageFromTier(4)); + GT_Values.RA.addAutoclaveRecipe(WerkstoffLoader.MagnetoResonaticDust.get(dust), WerkstoffLoader.Neon.getFluidOrGas(1000), WerkstoffLoader.MagnetoResonaticDust.get(gemChipped, 9), 9000, 4500, BW_Util.getMachineVoltageFromTier(5)); + GT_Values.RA.addAutoclaveRecipe(WerkstoffLoader.MagnetoResonaticDust.get(dust), WerkstoffLoader.Krypton.getFluidOrGas(1000), WerkstoffLoader.MagnetoResonaticDust.get(gem), 10000, 4500, BW_Util.getMachineVoltageFromTier(5)); for (int i = 0; i <= 6; i++) { - GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes.add( - new BWRecipes.DynamicGTRecipe(false, - new ItemStack[]{ - BW_Meta_Items.getNEWCIRCUITS().getStack(3), - WerkstoffLoader.MagnetoResonaticDust.get(gem), - BW_Meta_Items.getNEWCIRCUITS().getStack(i+3), - ItemList.Circuit_Parts_DiodeSMD.get((i+1)*4), - ItemList.Circuit_Parts_CapacitorSMD.get((i+1)*4), - ItemList.Circuit_Parts_TransistorSMD.get((i+1)*4) - }, - new ItemStack[]{ - BW_Meta_Items.getNEWCIRCUITS().getStack(i+4) - },null,null, - new FluidStack[]{ - Materials.SolderingAlloy.getMolten((i+1)*36) - },null,(i+1)*750, BW_Util.getMachineVoltageFromTier((i+1)),CLEANROOM)); + GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes.add( + new BWRecipes.DynamicGTRecipe(false, + new ItemStack[]{ + BW_Meta_Items.getNEWCIRCUITS().getStack(3), + WerkstoffLoader.MagnetoResonaticDust.get(gem), + BW_Meta_Items.getNEWCIRCUITS().getStack(i + 3), + ItemList.Circuit_Parts_DiodeSMD.get((i + 1) * 4), + ItemList.Circuit_Parts_CapacitorSMD.get((i + 1) * 4), + ItemList.Circuit_Parts_TransistorSMD.get((i + 1) * 4) + }, + new ItemStack[]{ + BW_Meta_Items.getNEWCIRCUITS().getStack(i + 4) + }, null, null, + new FluidStack[]{ + Materials.SolderingAlloy.getMolten((i + 1) * 36) + }, null, (i + 1) * 750, BW_Util.getMachineVoltageFromTier((i + 1)), CLEANROOM)); } for (int i = 7; i <= 10; i++) { GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes.add( new BWRecipes.DynamicGTRecipe(false, new ItemStack[]{ BW_Meta_Items.getNEWCIRCUITS().getStack(3), - WerkstoffLoader.MagnetoResonaticDust.get(gemExquisite,(2)), - BW_Meta_Items.getNEWCIRCUITS().getStack(i+3), - ItemList.Circuit_Parts_DiodeSMD.get((i+6)*4), - ItemList.Circuit_Parts_CapacitorSMD.get((i+6)*4), - ItemList.Circuit_Parts_TransistorSMD.get((i+6)*4) + WerkstoffLoader.MagnetoResonaticDust.get(gemExquisite, (2)), + BW_Meta_Items.getNEWCIRCUITS().getStack(i + 3), + ItemList.Circuit_Parts_DiodeSMD.get((i + 6) * 4), + ItemList.Circuit_Parts_CapacitorSMD.get((i + 6) * 4), + ItemList.Circuit_Parts_TransistorSMD.get((i + 6) * 4) }, new ItemStack[]{ - BW_Meta_Items.getNEWCIRCUITS().getStack(i+4) - },null,null, + BW_Meta_Items.getNEWCIRCUITS().getStack(i + 4) + }, null, null, new FluidStack[]{ - Materials.SolderingAlloy.getMolten((i+1)*144) - },null,(i+1)*1500, BW_Util.getMachineVoltageFromTier(i+1),CLEANROOM)); + Materials.SolderingAlloy.getMolten((i + 1) * 144) + }, null, (i + 1) * 1500, BW_Util.getMachineVoltageFromTier(i + 1), CLEANROOM)); + } + AdditionalRecipes.replaceLuVHull(); + 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()); + + } + } + + 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; + } + } + 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; + } + } + 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; + } + } + 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; + } + else if (GT_Utility.areStacksEqual(stack, (ItemStack) stacks[i])) + if (!replace) + return true; + else { + stacks[i] = replacement[0]; + replaced = true; + } } - oldGThelperMethod(); + return replaced; } private static void oldGThelperMethod(){ 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 b590615154..0f45f7ceec 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 @@ -22,60 +22,77 @@ package com.github.bartimaeusnek.bartworks.system.material.processingLoaders; +import com.github.bartimaeusnek.bartworks.MainMod; import com.github.bartimaeusnek.bartworks.system.material.BW_MetaGenerated_Items; -import com.github.bartimaeusnek.bartworks.system.material.CircuitGeneration.BW_Meta_Items; import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; import com.github.bartimaeusnek.bartworks.util.BW_Util; +import com.github.bartimaeusnek.crossmod.BartWorksCrossmod; +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; import gregtech.api.interfaces.ISubTagContainer; import gregtech.api.objects.MaterialStack; -import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; +import gregtech.api.util.*; +import net.minecraft.block.Block; import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.CraftingManager; import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.fluids.FluidStack; +import org.apache.commons.lang3.reflect.FieldUtils; +import java.lang.reflect.Field; import java.util.HashSet; +import java.util.List; import java.util.Map; import static com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader.*; import static gregtech.api.enums.OrePrefixes.*; public class PlatinumSludgeOverHaul { - private PlatinumSludgeOverHaul(){} + private static final Materials[] BLACKLIST = { + Materials.HSSS, + Materials.EnderiumBase, + Materials.Osmiridium, + Materials.get("Uraniumtriplatinid"), + Materials.get("Tetranaquadahdiindiumhexaplatiumosminid"), + Materials.get("Longasssuperconductornameforuvwire"), + }; - public static void runHelperrecipes(){ - //DilutedSulfuricAcid - GT_Values.RA.addMixerRecipe(Materials.SulfuricAcid.getCells(3),Materials.Water.getCells(1),GT_Utility.getIntegratedCircuit(1),null,null,null, Materials.DilutedSulfuricAcid.getCells(4),30,30); + private PlatinumSludgeOverHaul() { + } + public static void runHelperrecipes() { + //DilutedSulfuricAcid + GT_Values.RA.addMixerRecipe(Materials.SulfuricAcid.getCells(3), Materials.Water.getCells(1), GT_Utility.getIntegratedCircuit(1), null, null, null, Materials.DilutedSulfuricAcid.getCells(4), 30, 30); + GT_Values.RA.addMixerRecipe(Materials.Water.getCells(1), GT_Utility.getIntegratedCircuit(1), null, null, Materials.SulfuricAcid.getFluid(3000), Materials.DilutedSulfuricAcid.getFluid(4000), Materials.Empty.getCells(1), 30, 30); + GT_Values.RA.addMixerRecipe(Materials.SulfuricAcid.getCells(3), GT_Utility.getIntegratedCircuit(1), null, null, Materials.Water.getFluid(1000), Materials.DilutedSulfuricAcid.getFluid(4000), Materials.Empty.getCells(3), 30, 30); //FormicAcid - 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.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); //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(1), null, null, null, AquaRegia.get(cell, 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); + 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); //base sollution - for (Werkstoff w :Werkstoff.werkstoffHashMap.values()) - if (w.containsStuff(Materials.Sulfur)&&(w.containsStuff(Materials.Copper)||w.containsStuff(Materials.Nickel))) { + for (Werkstoff w : Werkstoff.werkstoffHashMap.values()) + if (w.containsStuff(Materials.Sulfur) && (w.containsStuff(Materials.Copper) || w.containsStuff(Materials.Nickel))) { GT_Values.RA.addChemicalRecipe(w.get(crushedPurified), GT_Utility.getIntegratedCircuit(1), AquaRegia.getFluidOrGas(150), PTConcentrate.getFluidOrGas(150), null, 250); GT_Values.RA.addChemicalRecipe(w.get(crushedPurified), PTMetallicPowder.get(dust), AquaRegia.getFluidOrGas(1150), PTConcentrate.getFluidOrGas(1150), PTResidue.get(dustTiny), 250); } for (Materials m : Materials.values()) - if (materialsContains(m,Materials.Sulfur)&&(materialsContains(m,Materials.Copper)||materialsContains(m,Materials.Nickel))){ - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(crushedPurified,m,1), GT_Utility.getIntegratedCircuit(1), AquaRegia.getFluidOrGas(150), PTConcentrate.getFluidOrGas(150), null, 250); - GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(crushedPurified,m,1), PTMetallicPowder.get(dust), AquaRegia.getFluidOrGas(1150), PTConcentrate.getFluidOrGas(1150), PTResidue.get(dustTiny), 250); + if (PlatinumSludgeOverHaul.materialsContains(m, Materials.Sulfur) && (PlatinumSludgeOverHaul.materialsContains(m, Materials.Copper) || PlatinumSludgeOverHaul.materialsContains(m, Materials.Nickel))) { + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(crushedPurified, m, 1), GT_Utility.getIntegratedCircuit(1), AquaRegia.getFluidOrGas(150), PTConcentrate.getFluidOrGas(150), null, 250); + GT_Values.RA.addChemicalRecipe(GT_OreDictUnificator.get(crushedPurified, m, 1), PTMetallicPowder.get(dust), AquaRegia.getFluidOrGas(1150), PTConcentrate.getFluidOrGas(1150), PTResidue.get(dustTiny), 250); } //Pt GT_Values.RA.addChemicalRecipe(PTMetallicPowder.get(dust), GT_Utility.getIntegratedCircuit(1), AquaRegia.getFluidOrGas(1000), PTConcentrate.getFluidOrGas(1000), PTResidue.get(dustTiny), 250); - GT_Values.RA.addMultiblockChemicalRecipe(new ItemStack[]{},new FluidStack[]{PTConcentrate.getFluidOrGas(1000), AmmoniumChloride.getFluidOrGas(1000)},new FluidStack[]{PDAmmonia.getFluidOrGas(100),Materials.Ammonia.getGas(900)},new ItemStack[]{PTSaltCrude.get(dustTiny,8),PTRawPowder.get(dustTiny)},600,30); - GT_Values.RA.addSifterRecipe(PTSaltCrude.get(dust),new ItemStack[]{ + GT_Values.RA.addMultiblockChemicalRecipe(new ItemStack[]{}, new FluidStack[]{PTConcentrate.getFluidOrGas(1000), AmmoniumChloride.getFluidOrGas(1000)}, new FluidStack[]{PDAmmonia.getFluidOrGas(100), Materials.Ammonia.getGas(900)}, new ItemStack[]{PTSaltCrude.get(dustTiny, 8), PTRawPowder.get(dustTiny)}, 600, 30); + GT_Values.RA.addSifterRecipe(PTSaltCrude.get(dust), new ItemStack[]{ PTSaltRefined.get(dust), PTSaltRefined.get(dust), PTSaltRefined.get(dust), @@ -85,16 +102,16 @@ public class PlatinumSludgeOverHaul { PTSaltRefined.get(dust), PTSaltRefined.get(dust), PTSaltRefined.get(dust), - },new int[]{ - 1000,1000,1000,1000,1000,1000,1000,1000,500, - },600,30); - GT_Values.RA.addBlastRecipe(PTSaltRefined.get(dust),GT_Utility.getIntegratedCircuit(1),null,null,PTMetallicPowder.get(dust),null,200,120,900); - GT_Values.RA.addChemicalRecipe(PTRawPowder.get(dust,2),Materials.Calcium.getDust(1),null,null,Materials.Platinum.getDust(2),CalciumChloride.get(dust),30); + }, new int[]{ + 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1500, + }, 600, 30); + GT_Values.RA.addBlastRecipe(PTSaltRefined.get(dust), GT_Utility.getIntegratedCircuit(1), null, null, PTMetallicPowder.get(dust), null, 200, 120, 900); + GT_Values.RA.addChemicalRecipe(PTRawPowder.get(dust, 2), Materials.Calcium.getDust(1), null, null, Materials.Platinum.getDust(2), CalciumChloride.get(dust), 30); //Pd - GT_Values.RA.addChemicalRecipe(PDMetallicPowder.get(dust),GT_Utility.getIntegratedCircuit(1),Materials.Ammonia.getGas(1000), PDAmmonia.getFluidOrGas(1000), null, 250); - GT_Values.RA.addChemicalRecipe(PDMetallicPowder.get(dust), GT_Utility.getIntegratedCircuit(1), PDAmmonia.getFluidOrGas(1000), null,PDSalt.get(dustTiny,16),PDRawPowder.get(dustTiny,2), 250); - GT_Values.RA.addChemicalRecipe(GT_Utility.getIntegratedCircuit(2),null,PDAmmonia.getFluidOrGas(1000), null, PDSalt.get(dustTiny,9), 250); - GT_Values.RA.addSifterRecipe(PDSalt.get(dust),new ItemStack[]{ + GT_Values.RA.addChemicalRecipe(PDMetallicPowder.get(dust), GT_Utility.getIntegratedCircuit(1), Materials.Ammonia.getGas(1000), PDAmmonia.getFluidOrGas(1000), null, 250); + GT_Values.RA.addChemicalRecipe(PDMetallicPowder.get(dust), GT_Utility.getIntegratedCircuit(1), PDAmmonia.getFluidOrGas(1000), null, PDSalt.get(dustTiny, 16), PDRawPowder.get(dustTiny, 2), 250); + GT_Values.RA.addChemicalRecipe(GT_Utility.getIntegratedCircuit(2), null, PDAmmonia.getFluidOrGas(1000), null, PDSalt.get(dustTiny, 9), 250); + GT_Values.RA.addSifterRecipe(PDSalt.get(dust), new ItemStack[]{ PDMetallicPowder.get(dust), PDMetallicPowder.get(dust), PDMetallicPowder.get(dust), @@ -104,46 +121,46 @@ public class PlatinumSludgeOverHaul { PDMetallicPowder.get(dust), PDMetallicPowder.get(dust), PDMetallicPowder.get(dust), - },new int[]{ - 1000,1000,1000,1000,1000,1000,1000,1000,500, - },600,30); - GT_Values.RA.addChemicalRecipeForBasicMachineOnly(PDRawPowder.get(dust,2), Materials.Empty.getCells(1), FormicAcid.getFluidOrGas(4000), Materials.Ammonia.getGas(2000),Materials.Palladium.getDust(2),Materials.Ethylene.getCells(1), 250,30); - 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); + }, new int[]{ + 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1500, + }, 600, 30); + GT_Values.RA.addChemicalRecipeForBasicMachineOnly(PDRawPowder.get(dust, 2), Materials.Empty.getCells(1), FormicAcid.getFluidOrGas(4000), Materials.Ammonia.getGas(2000), Materials.Palladium.getDust(2), Materials.Ethylene.getCells(1), 250, 30); + 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), Materials.Empty.getCells(1), 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); + GT_Values.RA.addBlastRecipe(PTResidue.get(dust), GT_Utility.getIntegratedCircuit(11), PotassiumDisulfate.getMolten(1440), RHSulfate.getFluidOrGas(1440), LeachResidue.get(dust), null, 200, 120, 775); //Ru - GT_Values.RA.addBlastRecipe(LeachResidue.get(dust,10),Materials.Saltpeter.getDust(10),Materials.SaltWater.getFluid(1000), GT_ModHandler.getSteam(1000),SodiumRuthenate.get(dust,3),IrOsLeachResidue.get(dust,6),200,120,775); - GT_Values.RA.addChemicalRecipe(SodiumRuthenate.get(dust,6),Materials.Chlorine.getCells(3),null,RutheniumTetroxideSollution.getFluidOrGas(9000),Materials.Empty.getCells(3),300); - GT_Values.RA.addFluidHeaterRecipe(null,RutheniumTetroxideSollution.getFluidOrGas(800),HotRutheniumTetroxideSollution.getFluidOrGas(1600),300,480); - GT_Values.RA.addCrackingRecipe(17,RutheniumTetroxideSollution.getFluidOrGas(1000),null,HotRutheniumTetroxideSollution.getFluidOrGas(2000),150,480); - GT_Values.RA.addDistillationTowerRecipe(HotRutheniumTetroxideSollution.getFluidOrGas(9000),new FluidStack[]{ + GT_Values.RA.addBlastRecipe(LeachResidue.get(dust, 10), Materials.Saltpeter.getDust(10), Materials.SaltWater.getFluid(1000), GT_ModHandler.getSteam(1000), SodiumRuthenate.get(dust, 3), IrOsLeachResidue.get(dust, 6), 200, 120, 775); + GT_Values.RA.addChemicalRecipe(SodiumRuthenate.get(dust, 6), Materials.Chlorine.getCells(3), null, RutheniumTetroxideSollution.getFluidOrGas(9000), Materials.Empty.getCells(3), 300); + GT_Values.RA.addFluidHeaterRecipe(null, RutheniumTetroxideSollution.getFluidOrGas(800), HotRutheniumTetroxideSollution.getFluidOrGas(1600), 300, 480); + GT_Values.RA.addCrackingRecipe(17, RutheniumTetroxideSollution.getFluidOrGas(1000), null, HotRutheniumTetroxideSollution.getFluidOrGas(2000), 150, 480); + GT_Values.RA.addDistillationTowerRecipe(HotRutheniumTetroxideSollution.getFluidOrGas(9000), new FluidStack[]{ Materials.Water.getFluid(1800), RutheniumTetroxide.getFluidOrGas(7200) - },Materials.Salt.getDust(6),1500,480); - GT_Values.RA.addChemicalRecipe(RutheniumTetroxide.get(dust,1),Materials.HydrochloricAcid.getCells(8),null,Materials.Water.getFluid(2000),Ruthenium.get(dust),Materials.Chlorine.getCells(6),300); + }, Materials.Salt.getDust(6), 1500, 480); + GT_Values.RA.addChemicalRecipe(RutheniumTetroxide.get(dust, 1), Materials.HydrochloricAcid.getCells(8), null, Materials.Water.getFluid(2000), Ruthenium.get(dust), Materials.Chlorine.getCells(6), 300); //Os - GT_Values.RA.addBlastRecipe(IrOsLeachResidue.get(dust,4),GT_Utility.getIntegratedCircuit(11),Materials.HydrochloricAcid.getFluid(1000), AcidicOsmiumSolution.getFluidOrGas(2000), IrLeachResidue.get(dust,2),null,200,120,775); - GT_Values.RA.addDistillationTowerRecipe(AcidicOsmiumSolution.getFluidOrGas(1000),new FluidStack[]{OsmiumSolution.getFluidOrGas(100),Materials.Water.getFluid(900)},null,150,BW_Util.getMachineVoltageFromTier(5)); - GT_Values.RA.addChemicalRecipe(OsmiumSolution.get(cell),Materials.HydrochloricAcid.getCells(8),null,Materials.Water.getFluid(2000),Materials.Osmium.getDust(1),Materials.Chlorine.getCells(6),300); + GT_Values.RA.addBlastRecipe(IrOsLeachResidue.get(dust, 4), GT_Utility.getIntegratedCircuit(11), Materials.HydrochloricAcid.getFluid(1000), AcidicOsmiumSolution.getFluidOrGas(2000), IrLeachResidue.get(dust, 2), null, 200, 120, 775); + GT_Values.RA.addDistillationTowerRecipe(AcidicOsmiumSolution.getFluidOrGas(1000), new FluidStack[]{OsmiumSolution.getFluidOrGas(100), Materials.Water.getFluid(900)}, null, 150, BW_Util.getMachineVoltageFromTier(5)); + GT_Values.RA.addChemicalRecipe(OsmiumSolution.get(cell), Materials.HydrochloricAcid.getCells(8), null, Materials.Water.getFluid(2000), Materials.Osmium.getDust(1), Materials.Chlorine.getCells(6), 300); //Ir - GT_Values.RA.addBlastRecipe(IrLeachResidue.get(dust),GT_Utility.getIntegratedCircuit(1),null, null,PGSDResidue.get(dust),IridiumDioxide.get(dust),200,120,775); - GT_Values.RA.addChemicalRecipe(IridiumDioxide.get(dust),Materials.HydrochloricAcid.getCells(1),null,AcidicIridiumSolution.getFluidOrGas(1000),Materials.Empty.getCells(1),null,300); - GT_Values.RA.addChemicalRecipe(AcidicIridiumSolution.get(cell), AmmoniumChloride.get(cell,3),null,Materials.Ammonia.getGas(3000),Materials.Empty.getCells(4),IridiumChloride.get(dust),300); - GT_Values.RA.addChemicalRecipe(IridiumChloride.get(dust),Materials.Calcium.getDust(3),null,CalciumChloride.getFluidOrGas(3000),PGSDResidue2.get(dust),Materials.Iridium.getDust(1),300,1920); + GT_Values.RA.addBlastRecipe(IrLeachResidue.get(dust), GT_Utility.getIntegratedCircuit(1), null, null, PGSDResidue.get(dust), IridiumDioxide.get(dust), 200, 120, 775); + GT_Values.RA.addChemicalRecipe(IridiumDioxide.get(dust), Materials.HydrochloricAcid.getCells(1), null, AcidicIridiumSolution.getFluidOrGas(1000), Materials.Empty.getCells(1), null, 300); + GT_Values.RA.addChemicalRecipe(AcidicIridiumSolution.get(cell), AmmoniumChloride.get(cell, 3), null, Materials.Ammonia.getGas(3000), Materials.Empty.getCells(4), IridiumChloride.get(dust), 300); + GT_Values.RA.addChemicalRecipe(IridiumChloride.get(dust), Materials.Calcium.getDust(3), null, CalciumChloride.getFluidOrGas(3000), PGSDResidue2.get(dust), Materials.Iridium.getDust(1), 300, 1920); //Rh - GT_Values.RA.addMixerRecipe(RHSulfate.get(cell,5),null,null,null,Materials.Water.getFluid(5000),RHSulfateSolution.getFluidOrGas(5000),LeachResidue.get(dustTiny),300,30); - GT_Values.RA.addChemicalRecipe(Materials.Zinc.getDust(1),null,RHSulfateSolution.getFluidOrGas(1000),null,ZincSulfate.get(dust),CrudeRhMetall.get(dust),300); - GT_Values.RA.addBlastRecipe(CrudeRhMetall.get(dust),Materials.Salt.getDust(1),Materials.Chlorine.getGas(1000),null,RHSalt.get(dust,3),null,300,120,600); - GT_Values.RA.addMixerRecipe(RHSalt.get(dust,10),null,null,null,Materials.Water.getFluid(2000),RHSaltSolution.getFluidOrGas(2000),null,300,30); - GT_Values.RA.addChemicalRecipe(SodiumNitrate.get(dust),GT_Utility.getIntegratedCircuit(1),RHSaltSolution.getFluidOrGas(1000),null,RHNitrate.get(dust),Materials.Salt.getDust(1),300); - GT_Values.RA.addSifterRecipe(RHNitrate.get(dust),new ItemStack[]{ + GT_Values.RA.addMixerRecipe(RHSulfate.get(cell, 5), null, null, null, Materials.Water.getFluid(5000), RHSulfateSolution.getFluidOrGas(5000), LeachResidue.get(dustTiny), 300, 30); + GT_Values.RA.addChemicalRecipe(Materials.Zinc.getDust(1), null, RHSulfateSolution.getFluidOrGas(1000), null, ZincSulfate.get(dust), CrudeRhMetall.get(dust), 300); + GT_Values.RA.addBlastRecipe(CrudeRhMetall.get(dust), Materials.Salt.getDust(1), Materials.Chlorine.getGas(1000), null, RHSalt.get(dust, 3), null, 300, 120, 600); + GT_Values.RA.addMixerRecipe(RHSalt.get(dust, 10), null, null, null, Materials.Water.getFluid(2000), RHSaltSolution.getFluidOrGas(2000), null, 300, 30); + GT_Values.RA.addChemicalRecipe(SodiumNitrate.get(dust), GT_Utility.getIntegratedCircuit(1), RHSaltSolution.getFluidOrGas(1000), null, RHNitrate.get(dust), Materials.Salt.getDust(1), 300); + GT_Values.RA.addSifterRecipe(RHNitrate.get(dust), new ItemStack[]{ RhFilterCake.get(dust), RhFilterCake.get(dust), RhFilterCake.get(dust), @@ -153,16 +170,15 @@ public class PlatinumSludgeOverHaul { RhFilterCake.get(dust), RhFilterCake.get(dust), RhFilterCake.get(dust), - },new int[]{ - 1000,1000,1000,1000,1000,1000,1000,1000,500, - },600,30); - GT_Values.RA.addMixerRecipe(RhFilterCake.get(dust),null,null,null,Materials.Water.getFluid(1000),RHFilterCakeSolution.getFluidOrGas(1000),null,300,30); - GT_Values.RA.addChemicalRecipe(GT_Utility.getIntegratedCircuit(2),null,RHFilterCakeSolution.getFluidOrGas(1000),null,ReRh.get(dust),null,300); - GT_Values.RA.addChemicalRecipe(ReRh.get(dust),Materials.Empty.getCells(1),Materials.HydrochloricAcid.getFluid(1000),Materials.Chlorine.getGas(1000),Rhodium.get(dust),Materials.Ammonia.getCells(1),300); + }, new int[]{ + 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1500, + }, 600, 30); + GT_Values.RA.addMixerRecipe(RhFilterCake.get(dust), null, null, null, Materials.Water.getFluid(1000), RHFilterCakeSolution.getFluidOrGas(1000), null, 300, 30); + GT_Values.RA.addChemicalRecipe(GT_Utility.getIntegratedCircuit(2), null, RHFilterCakeSolution.getFluidOrGas(1000), null, ReRh.get(dust), null, 300); + GT_Values.RA.addChemicalRecipe(ReRh.get(dust), Materials.Empty.getCells(1), Materials.HydrochloricAcid.getFluid(1000), Materials.Chlorine.getGas(1000), Rhodium.get(dust), Materials.Ammonia.getCells(1), 300); } - - private static boolean materialsContains(Materials one, ISubTagContainer other){ + private static boolean materialsContains(Materials one, ISubTagContainer other) { if (one == null || one.mMaterialList == null || one.mMaterialList.isEmpty()) return false; for (MaterialStack stack : one.mMaterialList) @@ -171,9 +187,8 @@ public class PlatinumSludgeOverHaul { return false; } - - public static void replacePureElements(){ - for (Object entry : FurnaceRecipes.smelting().getSmeltingList().entrySet()){ + public static void replacePureElements() { + for (Object entry : FurnaceRecipes.smelting().getSmeltingList().entrySet()) { Map.Entry realEntry = (Map.Entry) entry; if (GT_Utility.isStackValid(realEntry.getKey()) && BW_Util.checkStackAndPrefix((ItemStack) realEntry.getKey())) if (!GT_OreDictUnificator.getAssociation((ItemStack) realEntry.getKey()).mPrefix.equals(dust) && !GT_OreDictUnificator.getAssociation((ItemStack) realEntry.getKey()).mPrefix.equals(dustTiny)) @@ -184,9 +199,22 @@ public class PlatinumSludgeOverHaul { realEntry.setValue(PDMetallicPowder.get(dust)); } - maploop: for (GT_Recipe.GT_Recipe_Map map : GT_Recipe.GT_Recipe_Map.sMappings) { + for (Object obj : CraftingManager.getInstance().getRecipeList()) { + PlatinumSludgeOverHaul.setnewMaterialInRecipe(obj); + } + try { + for (Object obj : (List<IRecipe>) FieldUtils.getDeclaredField(GT_ModHandler.class, "sBufferRecipeList", true).get(null)) { + PlatinumSludgeOverHaul.setnewMaterialInRecipe(obj); + } + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + + maploop: + for (GT_Recipe.GT_Recipe_Map map : GT_Recipe.GT_Recipe_Map.sMappings) { HashSet toDel = new HashSet(); - recipeloop: for (GT_Recipe recipe : map.mRecipeList) { + recipeloop: + for (GT_Recipe recipe : map.mRecipeList) { if (recipe.mFakeRecipe) continue maploop; for (int i = 0; i < recipe.mFluidOutputs.length; i++) { @@ -196,18 +224,30 @@ public class PlatinumSludgeOverHaul { toDel.add(recipe); else if (GT_Utility.areFluidsEqual(Rhodium.getMolten(1), recipe.mFluidOutputs[i])) toDel.add(recipe); + else if (GT_Utility.areFluidsEqual(Materials.Iridium.getMolten(1), recipe.mFluidOutputs[i])) + recipe.mFluidOutputs[i] = Materials.Water.getFluid(1000); + else if (GT_Utility.areFluidsEqual(Materials.Platinum.getMolten(1), recipe.mFluidOutputs[i])) + recipe.mFluidOutputs[i] = Materials.Water.getFluid(1000); + else if (GT_Utility.areFluidsEqual(Materials.Osmium.getMolten(1), recipe.mFluidOutputs[i])) + recipe.mFluidOutputs[i] = Materials.Water.getFluid(1000); } for (int i = 0; i < recipe.mOutputs.length; i++) { if (!GT_Utility.isStackValid(recipe.mOutputs[i])) continue; if (BW_Util.areStacksEqualOrNull(Ruthenium.get(dust), recipe.mOutputs[i]) || BW_Util.areStacksEqualOrNull(Ruthenium.get(dustImpure), recipe.mOutputs[i]) || BW_Util.areStacksEqualOrNull(Ruthenium.get(dustPure), recipe.mOutputs[i])) { if (!BW_Util.areStacksEqualOrNull(Ruthenium.get(ingot), recipe.mInputs[0])) { + for (int j = 0; j < recipe.mInputs.length; j++) + if (PlatinumSludgeOverHaul.isInBlackList(recipe.mInputs[j])) + continue recipeloop; int amount = recipe.mOutputs[i].stackSize; recipe.mOutputs[i] = LeachResidue.get(dust, amount); } } if (BW_Util.areStacksEqualOrNull(Rhodium.get(dust), recipe.mOutputs[i]) || BW_Util.areStacksEqualOrNull(Rhodium.get(dustImpure), recipe.mOutputs[i]) || BW_Util.areStacksEqualOrNull(Rhodium.get(dustPure), recipe.mOutputs[i])) { if (!BW_Util.areStacksEqualOrNull(Rhodium.get(ingot), recipe.mInputs[0])) { + for (int j = 0; j < recipe.mInputs.length; j++) + if (PlatinumSludgeOverHaul.isInBlackList(recipe.mInputs[j])) + continue recipeloop; int amount = recipe.mOutputs[i].stackSize; recipe.mOutputs[i] = CrudeRhMetall.get(dust, amount); } @@ -217,9 +257,8 @@ public class PlatinumSludgeOverHaul { //Pt if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mMaterial.mMaterial.equals(Materials.Platinum)) { for (int j = 0; j < recipe.mInputs.length; j++) { - if (BW_Util.checkStackAndPrefix(recipe.mInputs[j])) - if (PlatinumSludgeOverHaul.isInBlackList(recipe.mInputs[j])) - continue recipeloop; + if (PlatinumSludgeOverHaul.isInBlackList(recipe.mInputs[j])) + continue recipeloop; } // if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(crushed) || GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(crushedCentrifuged) || GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(crushedPurified)) { // int amount = recipe.mOutputs[i].stackSize; @@ -237,9 +276,8 @@ public class PlatinumSludgeOverHaul { } } else if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mMaterial.mMaterial.equals(Materials.Palladium)) { for (int j = 0; j < recipe.mInputs.length; j++) { - if (BW_Util.checkStackAndPrefix(recipe.mInputs[j])) - if (PlatinumSludgeOverHaul.isInBlackList(recipe.mInputs[j])) - continue recipeloop; + if (PlatinumSludgeOverHaul.isInBlackList(recipe.mInputs[j])) + continue recipeloop; } // if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(crushed) || GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(crushedCentrifuged) || GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(crushedPurified)) { // int amount = recipe.mOutputs[i].stackSize; @@ -257,9 +295,8 @@ public class PlatinumSludgeOverHaul { } } else if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mMaterial.mMaterial.equals(Materials.Osmium)) { for (int j = 0; j < recipe.mInputs.length; j++) { - if (BW_Util.checkStackAndPrefix(recipe.mInputs[j])) - if (PlatinumSludgeOverHaul.isInBlackList(recipe.mInputs[j])) - continue recipeloop; + if (PlatinumSludgeOverHaul.isInBlackList(recipe.mInputs[j])) + continue recipeloop; } // if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(crushed) || GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(crushedCentrifuged) || GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(crushedPurified)) { // int amount = recipe.mOutputs[i].stackSize; @@ -277,9 +314,8 @@ public class PlatinumSludgeOverHaul { } } else if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mMaterial.mMaterial.equals(Materials.Iridium)) { for (int j = 0; j < recipe.mInputs.length; j++) { - if (BW_Util.checkStackAndPrefix(recipe.mInputs[j])) - if (PlatinumSludgeOverHaul.isInBlackList(recipe.mInputs[j])) - continue recipeloop; + if (PlatinumSludgeOverHaul.isInBlackList(recipe.mInputs[j])) + continue recipeloop; } // if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(crushed) || GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(crushedCentrifuged) || GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(crushedPurified)) { // int amount = recipe.mOutputs[i].stackSize; @@ -303,56 +339,64 @@ public class PlatinumSludgeOverHaul { PlatinumSludgeOverHaul.runHelperrecipes(); } - private static final OrePrefixes[] OPWHITELIST = { - dust, - dustTiny, - dustSmall, - dustPure, - dustImpure, - dustRefined, - crateGtDust, - ore, - oreBasalt, - oreBlackgranite, - oreDense, - oreEnd, - oreEndstone, - oreMarble, - oreNether, - oreNetherrack, - oreNormal, - orePoor, - oreRedgranite, - oreRich, - oreSmall, - oreGem, - denseore, - crushed, - crushedPurified, - crushedCentrifuged, - gem, - gemFlawed, - gemExquisite, - gemFlawless, - gemChipped, - crateGtGem, - }; - - private static final Materials[] BLACKLIST = { - Materials.HSSS, - Materials.EnderiumBase, - Materials.Osmiridium, - Materials.get("Uraniumtriplatinid"), - Materials.get("Tetranaquadahdiindiumhexaplatiumosminid"), - Materials.get("Longasssuperconductornameforuvwire"), - }; + private static void setnewMaterialInRecipe(Object obj){ + if (!(obj instanceof GT_Shaped_Recipe)) + return; + GT_Shaped_Recipe recipe = (GT_Shaped_Recipe) obj; + ItemStack otpt = recipe.getRecipeOutput(); + if (!BW_Util.checkStackAndPrefix(otpt)) + return; + Field out = FieldUtils.getDeclaredField(recipe.getClass(), "output", true); + if (out != null && GT_OreDictUnificator.getAssociation(otpt).mMaterial.mMaterial.equals(Materials.Platinum) && GT_OreDictUnificator.getAssociation(otpt).mPrefix == dust) { + try { + out.set(recipe, PTMetallicPowder.get(dust, otpt.stackSize)); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + else if (out != null && GT_OreDictUnificator.getAssociation(otpt).mMaterial.mMaterial.equals(Materials.Palladium) && GT_OreDictUnificator.getAssociation(otpt).mPrefix == dust) { + try { + out.set(recipe, PDMetallicPowder.get(dust, otpt.stackSize)); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + else if (out != null && GT_OreDictUnificator.getAssociation(otpt).mMaterial.mMaterial.equals(Materials.Iridium) && GT_OreDictUnificator.getAssociation(otpt).mPrefix == dust) { + try { + out.set(recipe, PTMetallicPowder.get(dust, otpt.stackSize * 2)); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + else if (out != null && GT_OreDictUnificator.getAssociation(otpt).mMaterial.mMaterial.equals(Materials.Osmium) && GT_OreDictUnificator.getAssociation(otpt).mPrefix == dust) { + try { + out.set(recipe, PTMetallicPowder.get(dust, otpt.stackSize * 4)); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } - private static boolean isInBlackList(ItemStack stack){ - if (!BW_Util.checkStackAndPrefix(stack)) - return false; + private static boolean isInBlackList(ItemStack stack) { if (stack.getItem() instanceof BW_MetaGenerated_Items) return true; - for (Materials m : PlatinumSludgeOverHaul.BLACKLIST){ + if (GameRegistry.findUniqueIdentifierFor(stack.getItem()).modId.equals(MainMod.MOD_ID)) + return true; + if (GameRegistry.findUniqueIdentifierFor(stack.getItem()).modId.equals(BartWorksCrossmod.MOD_ID)) + return true; + if (Loader.isModLoaded("miscutils")) { + try { + if (Class.forName("gtPlusPlus.core.item.base.BaseItemComponent").isAssignableFrom(stack.getItem().getClass()) && !(stack.getUnlocalizedName().contains("dust") || stack.getUnlocalizedName().contains("Dust"))) + return true; + if (Class.forName("gtPlusPlus.core.block.base.BlockBaseModular").isAssignableFrom(Block.getBlockFromItem(stack.getItem()).getClass())) + return true; + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + } + if (!BW_Util.checkStackAndPrefix(stack)) + return false; + for (Materials m : PlatinumSludgeOverHaul.BLACKLIST) { if (GT_OreDictUnificator.getAssociation(stack).mMaterial.mMaterial.equals(m)) return true; } |