From 7ddb7f5e8ed9fe60b730183c7a04f3bce3b8f815 Mon Sep 17 00:00:00 2001 From: Jordan Byrne Date: Wed, 24 Jan 2018 18:38:51 +1000 Subject: $ Several 5.08 compat fixes. $ Fixed pollution, which was causing all multiblocks to fail. This was pointed out in #191 by @CodeWarrior0, however I decided to re-do it myself to better handle the .08 compat. $ Fixed all multiblocks being broken as fuck. Fixes #190, fixes #186 and also fixes #176. - Removed some useless logging from the mining explosives. --- .../xmod/gregtech/loaders/RecipeGen_Ore.java | 187 +++++++++++---------- 1 file changed, 102 insertions(+), 85 deletions(-) (limited to 'src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java') diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java index 928cc82302..bdcb30f930 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java @@ -2,6 +2,7 @@ package gtPlusPlus.xmod.gregtech.loaders; import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; +import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.lib.CORE; @@ -12,7 +13,6 @@ import gtPlusPlus.core.material.state.MaterialState; import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.array.AutoMap; import gtPlusPlus.core.util.array.Pair; -import gtPlusPlus.core.util.fluid.FluidUtils; import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.core.util.recipe.RecipeUtils; import net.minecraft.item.ItemStack; @@ -39,7 +39,7 @@ public class RecipeGen_Ore implements Runnable{ final ItemStack dustStone = ItemUtils.getItemStackOfAmountFromOreDict("dustStone", 1); Material bonusA; //Ni Material bonusB; //Tin - + if (material.getComposites().get(0) != null){ bonusA = material.getComposites().get(0).getStackMaterial(); } @@ -56,7 +56,7 @@ public class RecipeGen_Ore implements Runnable{ //Ultra Bonus bonusB = ELEMENT.getInstance().GALLIUM; } - + AutoMap> componentMap = new AutoMap>(); for (MaterialStack r : material.getComposites()){ @@ -64,7 +64,7 @@ public class RecipeGen_Ore implements Runnable{ componentMap.put(new Pair(r.getPartsPerOneHundred(), r.getStackMaterial())); } } - + /** * Macerate */ @@ -89,22 +89,39 @@ public class RecipeGen_Ore implements Runnable{ * Wash */ //Wash into Purified Crushed - if (GT_Values.RA.addOreWasherRecipe(material.getCrushed(1), material.getCrushedPurified(1), bonusA.getTinyDust(1), dustStone, FluidUtils.getWater(1000), 25*20, 16)){ + /*if (GT_Values.RA.addOreWasherRecipe(material.getCrushed(1), material.getCrushedPurified(1), bonusA.getTinyDust(1), dustStone, FluidUtils.getWater(1000), 25*20, 16)){ + Logger.MATERIALS("[OreWasher] Added Recipe: 'Wash Crushed ore into Purified Crushed ore'"); + }*/ + //.08 compat method + if (GT_ModHandler.addOreWasherRecipe(material.getCrushed(1), 1000, material.getCrushedPurified(1), bonusA.getTinyDust(1), dustStone)){ Logger.MATERIALS("[OreWasher] Added Recipe: 'Wash Crushed ore into Purified Crushed ore'"); } + + + + /** * Thermal Centrifuge */ - //Crushed ore to Centrifuged Ore + /*//Crushed ore to Centrifuged Ore if (GT_Values.RA.addThermalCentrifugeRecipe(material.getCrushed(1), material.getCrushedCentrifuged(1), bonusB.getTinyDust(1), dustStone, 25*20, 24)){ Logger.MATERIALS("[ThermalCentrifuge] Added Recipe: 'Crushed ore to Centrifuged Ore'"); } //Washed ore to Centrifuged Ore if (GT_Values.RA.addThermalCentrifugeRecipe(material.getCrushedPurified(1), material.getCrushedCentrifuged(1), bonusA.getTinyDust(1), dustStone, 25*20, 24)){ Logger.MATERIALS("[ThermalCentrifuge] Added Recipe: 'Washed ore to Centrifuged Ore'"); + }*/ + //.08 compat + if (GT_ModHandler.addThermalCentrifugeRecipe(material.getCrushed(1), 200, material.getCrushedCentrifuged(1), bonusB.getTinyDust(1), dustStone)){ + Logger.MATERIALS("[ThermalCentrifuge] Added Recipe: 'Crushed ore to Centrifuged Ore'"); } + if (GT_ModHandler.addThermalCentrifugeRecipe(material.getCrushedPurified(1), 200, material.getCrushedCentrifuged(1), bonusA.getTinyDust(1), dustStone)){ + Logger.MATERIALS("[ThermalCentrifuge] Added Recipe: 'Washed ore to Centrifuged Ore'"); + } + + /** * Forge Hammer */ @@ -117,7 +134,7 @@ public class RecipeGen_Ore implements Runnable{ if (GT_Values.RA.addForgeHammerRecipe(material.getOre(1), material.getCrushed(1), 10, 16)){ Logger.MATERIALS("[ForgeHammer] Added Recipe: 'Ore to Crushed'"); } - + /** * Centrifuge */ @@ -133,7 +150,7 @@ public class RecipeGen_Ore implements Runnable{ 5)){ //Time Logger.MATERIALS("[Centrifuge] Added Recipe: Purified Dust to Clean Dust"); } - + //Impure Dust to Clean if (GT_Values.RA.addCentrifugeRecipe( material.getDustImpure(1), null, @@ -146,21 +163,21 @@ public class RecipeGen_Ore implements Runnable{ 5)){ //Time Logger.MATERIALS("[Centrifuge] Added Recipe: Inpure Dust to Clean Dust"); } - - + + /** * Electrolyzer */ - + //Process Dust if (componentMap.size() > 0 && componentMap.size() <= 6){ - + ItemStack mInternalOutputs[] = new ItemStack[6]; int mChances[] = new int[6]; int mCellCount = 0; - + int mTotalCount = 0; - + int mCounter = 0; for (Pair f : componentMap){ if (f.getValue().getState() != MaterialState.SOLID){ @@ -176,19 +193,19 @@ public class RecipeGen_Ore implements Runnable{ mTotalCount += f.getKey(); } } - + //Build Output Array for (int g=0;g 0){ emptyCell = ItemUtils.getItemStackOfAmountFromOreDict("cellEmpty", mCellCount); Logger.MATERIALS("[Electrolyzer] Recipe now requires "+mCellCount+" empty cells as input."); } - + ItemStack mainDust = material.getDust(material.smallestStackSizeWhenProcessing); if (mainDust != null){ Logger.MATERIALS("[Electrolyzer] Recipe now requires "+material.smallestStackSizeWhenProcessing+"x "+mainDust.getDisplayName()+" as input."); @@ -203,7 +220,7 @@ public class RecipeGen_Ore implements Runnable{ Logger.MATERIALS("[Electrolyzer] Could not find valid input dust, exiting."); } } - + for (int j=0;j 6 && componentMap.size() <= 9){ Logger.MATERIALS("[Issue][Electrolyzer] "+material.getLocalizedName()+" is composed of over 6 materials, so an electrolyzer recipe for processing cannot be generated. Trying to create one for the Dehydrator instead."); - + ItemStack mInternalOutputs[] = new ItemStack[9]; int mChances[] = new int[9]; int mCellCount = 0; - + int mTotalCount = 0; - + int mCounter = 0; for (Pair f : componentMap){ if (f.getValue().getState() != MaterialState.SOLID){ @@ -263,19 +280,19 @@ public class RecipeGen_Ore implements Runnable{ mTotalCount += f.getKey(); } } - + //Build Output Array for (int g=0;g 0){ emptyCell = ItemUtils.getItemStackOfAmountFromOreDict("cellEmpty", mCellCount); Logger.MATERIALS("[Dehydrator] Recipe now requires "+mCellCount+" empty cells as input."); } - + ItemStack mainDust = material.getDust(material.smallestStackSizeWhenProcessing); if (mainDust != null){ Logger.MATERIALS("[Dehydrator] Recipe now requires "+material.smallestStackSizeWhenProcessing+"x "+mainDust.getDisplayName()+" as input."); @@ -290,7 +307,7 @@ public class RecipeGen_Ore implements Runnable{ Logger.MATERIALS("[Dehydrator] Could not find valid input dust, exiting."); } } - + for (int j=0;j