diff options
Diffstat (limited to 'src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java')
-rw-r--r-- | src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java | 111 |
1 files changed, 58 insertions, 53 deletions
diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java index 7764ded2db..0bc88296da 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java @@ -1,5 +1,9 @@ package gregtech.loaders.oreprocessing; +import java.util.ArrayList; + +import net.minecraft.item.ItemStack; + import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; @@ -8,26 +12,24 @@ import gregtech.api.enums.SubTag; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; -import java.util.ArrayList; -import net.minecraft.item.ItemStack; public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistrator { + private ArrayList<Materials> mAlreadyListedOres = new ArrayList(1000); public ProcessingOre() { for (OrePrefixes tPrefix : OrePrefixes.values()) - if ((tPrefix.name().startsWith("ore")) - && (tPrefix != OrePrefixes.orePoor) + if ((tPrefix.name().startsWith("ore")) && (tPrefix != OrePrefixes.orePoor) && (tPrefix != OrePrefixes.oreSmall) && (tPrefix != OrePrefixes.oreRich) - && (tPrefix != OrePrefixes.oreNormal)) tPrefix.add(this); + && (tPrefix != OrePrefixes.oreNormal)) + tPrefix.add(this); } @Override - public void registerOre( - OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - boolean tIsRich = (aPrefix == OrePrefixes.oreNetherrack) - || (aPrefix == OrePrefixes.oreNether) + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + boolean tIsRich = (aPrefix == OrePrefixes.oreNetherrack) || (aPrefix == OrePrefixes.oreNether) || (aPrefix == OrePrefixes.oreEndstone) || (aPrefix == OrePrefixes.oreEnd) || (aPrefix == OrePrefixes.oreRich) @@ -45,7 +47,7 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra null, null, null, - new int[] {tIsRich ? 2000 : 4000}, + new int[] { tIsRich ? 2000 : 4000 }, tIsRich ? 600 : 300, 30); } else { @@ -54,20 +56,22 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra aMaterial, GT_Utility.copyAmount(1L, aStack), Math.max( - 1, - gregtech.api.GregTech_API.sOPStuff.get( - gregtech.api.enums.ConfigCategories.Materials.oreprocessingoutputmultiplier, - aMaterial.toString(), - 1)) + 1, + gregtech.api.GregTech_API.sOPStuff.get( + gregtech.api.enums.ConfigCategories.Materials.oreprocessingoutputmultiplier, + aMaterial.toString(), + 1)) * (tIsRich ? 2 : 1)); } } - private boolean registerStandardOreRecipes( - OrePrefixes aPrefix, Materials aMaterial, ItemStack aOreStack, int aMultiplier) { + private boolean registerStandardOreRecipes(OrePrefixes aPrefix, Materials aMaterial, ItemStack aOreStack, + int aMultiplier) { if ((aOreStack == null) || (aMaterial == null)) return false; GT_ModHandler.addValuableOre( - GT_Utility.getBlockFromStack(aOreStack), aOreStack.getItemDamage(), aMaterial.mOreValue); + GT_Utility.getBlockFromStack(aOreStack), + aOreStack.getItemDamage(), + aMaterial.mOreValue); Materials tMaterial = aMaterial.mOreReplacement; Materials tPrimaryByMaterial = null; aMultiplier = Math.max(1, aMultiplier); @@ -76,28 +80,28 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra ItemStack tIngot = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mDirectSmelting, 1L); ItemStack tGem = GT_OreDictUnificator.get(OrePrefixes.gem, tMaterial, 1L); - ItemStack tSmeltInto = tIngot == null - ? null - : aMaterial.contains(SubTag.SMELTING_TO_GEM) - ? GT_OreDictUnificator.get( - OrePrefixes.gem, - tMaterial.mDirectSmelting, - GT_OreDictUnificator.get( - OrePrefixes.crystal, + ItemStack tSmeltInto = tIngot + == null ? null + : aMaterial.contains(SubTag.SMELTING_TO_GEM) + ? GT_OreDictUnificator.get( + OrePrefixes.gem, tMaterial.mDirectSmelting, GT_OreDictUnificator.get( - OrePrefixes.gem, - tMaterial, - GT_OreDictUnificator.get(OrePrefixes.crystal, tMaterial, 1L), + OrePrefixes.crystal, + tMaterial.mDirectSmelting, + GT_OreDictUnificator.get( + OrePrefixes.gem, + tMaterial, + GT_OreDictUnificator.get(OrePrefixes.crystal, tMaterial, 1L), + 1L), 1L), - 1L), - 1L) - : tIngot; + 1L) + : tIngot; ItemStack tDust = GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial, tGem, 1L); ItemStack tCleaned = GT_OreDictUnificator.get(OrePrefixes.crushedPurified, tMaterial, tDust, 1L); - ItemStack tCrushed = - GT_OreDictUnificator.get(OrePrefixes.crushed, tMaterial, aMaterial.mOreMultiplier * aMultiplier); + ItemStack tCrushed = GT_OreDictUnificator + .get(OrePrefixes.crushed, tMaterial, aMaterial.mOreMultiplier * aMultiplier); ItemStack tPrimaryByProduct = null; if (tCrushed == null) { @@ -116,20 +120,18 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra if (tPrimaryByProduct == null) { tPrimaryByMaterial = tMat; tPrimaryByProduct = GT_OreDictUnificator.get(OrePrefixes.dust, tMat, 1L); - if (GT_OreDictUnificator.get(OrePrefixes.dustSmall, tMat, 1L) == null) - GT_OreDictUnificator.get( - OrePrefixes.dustTiny, tMat, GT_OreDictUnificator.get(OrePrefixes.nugget, tMat, 2L), 2L); + if (GT_OreDictUnificator.get(OrePrefixes.dustSmall, tMat, 1L) == null) GT_OreDictUnificator + .get(OrePrefixes.dustTiny, tMat, GT_OreDictUnificator.get(OrePrefixes.nugget, tMat, 2L), 2L); } GT_OreDictUnificator.get(OrePrefixes.dust, tMat, 1L); - if (GT_OreDictUnificator.get(OrePrefixes.dustSmall, tMat, 1L) == null) - GT_OreDictUnificator.get( - OrePrefixes.dustTiny, tMat, GT_OreDictUnificator.get(OrePrefixes.nugget, tMat, 2L), 2L); + if (GT_OreDictUnificator.get(OrePrefixes.dustSmall, tMat, 1L) == null) GT_OreDictUnificator + .get(OrePrefixes.dustTiny, tMat, GT_OreDictUnificator.get(OrePrefixes.nugget, tMat, 2L), 2L); } if ((!tByProductStacks.isEmpty()) && (!this.mAlreadyListedOres.contains(aMaterial))) { this.mAlreadyListedOres.add(aMaterial); gregtech.api.util.GT_Recipe.GT_Recipe_Map.sByProductList.addFakeRecipe( false, - new ItemStack[] {GT_OreDictUnificator.get(OrePrefixes.ore, aMaterial, aOreStack, 1L)}, + new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.ore, aMaterial, aOreStack, 1L) }, (ItemStack[]) tByProductStacks.toArray(new ItemStack[0]), null, null, @@ -149,7 +151,8 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra GT_ModHandler.removeFurnaceSmelting(aOreStack); } else { tHasSmelting = GT_ModHandler.addSmeltingRecipe( - aOreStack, GT_Utility.copyAmount(aMultiplier * aMaterial.mSmeltingMultiplier, tSmeltInto)); + aOreStack, + GT_Utility.copyAmount(aMultiplier * aMaterial.mSmeltingMultiplier, tSmeltInto)); } if (aMaterial.contains(SubTag.BLASTFURNACE_CALCITE_TRIPLE)) { @@ -160,8 +163,8 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra null, null, GT_Utility.mul(aMultiplier * 3 * aMaterial.mSmeltingMultiplier, tSmeltInto), - ItemList.TE_Slag.get( - 1L, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)), + ItemList.TE_Slag + .get(1L, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)), tSmeltInto.stackSize * 500, 120, 1500); @@ -171,8 +174,8 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra null, null, GT_Utility.mul(aMultiplier * 3 * aMaterial.mSmeltingMultiplier, tSmeltInto), - ItemList.TE_Slag.get( - 1L, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)), + ItemList.TE_Slag + .get(1L, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)), tSmeltInto.stackSize * 500, 120, 1500); @@ -185,8 +188,8 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra null, null, GT_Utility.mul(aMultiplier * 2 * aMaterial.mSmeltingMultiplier, tSmeltInto), - ItemList.TE_Slag.get( - 1L, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)), + ItemList.TE_Slag + .get(1L, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)), tSmeltInto.stackSize * 500, 120, 1500); @@ -196,8 +199,8 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra null, null, GT_Utility.mul(aMultiplier * 2 * aMaterial.mSmeltingMultiplier, tSmeltInto), - ItemList.TE_Slag.get( - 1L, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)), + ItemList.TE_Slag + .get(1L, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L)), tSmeltInto.stackSize * 500, 120, 1500); @@ -216,7 +219,10 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra if (tCrushed != null) { GT_Values.RA.addForgeHammerRecipe( - aOreStack, GT_Utility.copy(GT_Utility.copyAmount(tCrushed.stackSize, tGem), tCrushed), 16, 10); + aOreStack, + GT_Utility.copy(GT_Utility.copyAmount(tCrushed.stackSize, tGem), tCrushed), + 16, + 10); GT_ModHandler.addPulverisationRecipe( aOreStack, GT_Utility.mul(2L, tCrushed), @@ -235,8 +241,7 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra tPrimaryByMaterial, GT_Utility.copyAmount(1L, tPrimaryByProduct), 1L), - tPrimaryByProduct == null - ? 0 + tPrimaryByProduct == null ? 0 : tPrimaryByProduct.stackSize * 10 * aMultiplier * aMaterial.mByProductMultiplier, GT_OreDictUnificator.getDust(aPrefix.mSecondaryMaterial), 50, |