diff options
author | Jordan Byrne <draknyte1@hotmail.com> | 2017-12-29 02:11:59 +1000 |
---|---|---|
committer | Jordan Byrne <draknyte1@hotmail.com> | 2017-12-29 02:11:59 +1000 |
commit | 2625df7eb11b16c3aa55ff1099e821cb79d55a8b (patch) | |
tree | 9037781fe5bba80ad3fe08b930560d910745b3b1 /src/Java/gtPlusPlus/xmod | |
parent | 2092e4056de6c31594779679b80e7dbdb76a573c (diff) | |
download | GT5-Unofficial-2625df7eb11b16c3aa55ff1099e821cb79d55a8b.tar.gz GT5-Unofficial-2625df7eb11b16c3aa55ff1099e821cb79d55a8b.tar.bz2 GT5-Unofficial-2625df7eb11b16c3aa55ff1099e821cb79d55a8b.zip |
% Localized the Plasma Death Message.
$ Fixed electrolyzer recipes for ore dust.
$ Fixed bug with material generation system.
+ Added a custom renderer for the ore blocks.
$ Fixed renderer issue where the background texture was incorrect.
Diffstat (limited to 'src/Java/gtPlusPlus/xmod')
-rw-r--r-- | src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java | 148 |
1 files changed, 123 insertions, 25 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java index f060895ccc..5be4e13d28 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java @@ -1,7 +1,9 @@ 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.material.Material; import gtPlusPlus.core.material.MaterialStack; @@ -31,25 +33,26 @@ public class RecipeGen_Ore implements Runnable{ public static void generateRecipes(final Material material){ if (material.getMaterialComposites().length > 1){ - final int tVoltageMultiplier = material.getMeltingPointK() >= 2800 ? 60 : 15; + Logger.MATERIALS("[Recipe Generator Debug] ["+material.getLocalizedName()+"]"); + final int tVoltageMultiplier = material.getMeltingPointK() >= 2800 ? 120 : 30; final ItemStack dustStone = ItemUtils.getItemStackOfAmountFromOreDict("dustStone", 1); Material bonusA; //Ni Material bonusB; //Tin - if (material.getComposites().get(1) != null){ + if (material.getComposites().get(0) != null){ bonusA = material.getComposites().get(1).getStackMaterial(); } else { return ; } - if (material.getComposites().get(2) != null){ + if (material.getComposites().get(1) != null){ bonusB = material.getComposites().get(2).getStackMaterial(); } - else if (material.getComposites().get(1) != null){ - bonusB = material.getComposites().get(1).getStackMaterial(); + else if (material.getComposites().get(0) != null){ + bonusB = material.getComposites().get(0).getStackMaterial(); } else { - return ; + return; } AutoMap<Pair<Integer, Material>> componentMap = new AutoMap<Pair<Integer, Material>>(); @@ -64,40 +67,60 @@ public class RecipeGen_Ore implements Runnable{ * Macerate */ //Macerate ore to Crushed - GT_Values.RA.addPulveriserRecipe(material.getOre(1), new ItemStack[]{material.getCrushed(2)}, new int[]{10000}, 20*20, 2); + if (GT_Values.RA.addPulveriserRecipe(material.getOre(1), new ItemStack[]{material.getCrushed(2)}, new int[]{10000}, 20*20, 2)){ + Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate ore to Crushed ore'"); + } //Macerate Crushed to Impure Dust - GT_Values.RA.addPulveriserRecipe(material.getCrushed(1), new ItemStack[]{material.getDustImpure(1), bonusA.getDust(1)}, new int[]{10000, 1000}, 20*20, 2); + if (GT_Values.RA.addPulveriserRecipe(material.getCrushed(1), new ItemStack[]{material.getDustImpure(1), bonusA.getDust(1)}, new int[]{10000, 1000}, 20*20, 2)){ + Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate Crushed ore to Impure Dust'"); + } //Macerate Washed to Purified Dust - GT_Values.RA.addPulveriserRecipe(material.getCrushedPurified(1), new ItemStack[]{material.getDustPurified(1), bonusA.getDust(1)}, new int[]{10000, 1000}, 20*20, 2); + if (GT_Values.RA.addPulveriserRecipe(material.getCrushedPurified(1), new ItemStack[]{material.getDustPurified(1), bonusA.getDust(1)}, new int[]{10000, 1000}, 20*20, 2)){ + Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate Washed ore to Purified Dust'"); + } //Macerate Centrifuged to Pure Dust - GT_Values.RA.addPulveriserRecipe(material.getCrushedCentrifuged(1), new ItemStack[]{material.getDust(1), bonusA.getDust(1)}, new int[]{10000, 1000}, 20*20, 2); + if (GT_Values.RA.addPulveriserRecipe(material.getCrushedCentrifuged(1), new ItemStack[]{material.getDust(1), bonusA.getDust(1)}, new int[]{10000, 1000}, 20*20, 2)){ + Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate Centrifuged ore to Pure Dust'"); + } /** * Wash */ //Wash into Purified Crushed - 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 oer into Purified Crushed ore'"); + } /** * Thermal Centrifuge */ //Crushed ore to Centrifuged Ore - GT_Values.RA.addThermalCentrifugeRecipe(material.getCrushed(1), material.getCrushedCentrifuged(1), bonusB.getTinyDust(1), dustStone, 25*20, 24); + 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 - GT_Values.RA.addThermalCentrifugeRecipe(material.getCrushedPurified(1), material.getCrushedCentrifuged(1), bonusA.getTinyDust(1), dustStone, 25*20, 24); + 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'"); + } /** * Forge Hammer */ - GT_Values.RA.addForgeHammerRecipe(material.getCrushedCentrifuged(1), material.getDust(1), 10, 16); - GT_Values.RA.addForgeHammerRecipe(material.getCrushedPurified(1), material.getDustPurified(1), 10, 16); - GT_Values.RA.addForgeHammerRecipe(material.getOre(1), material.getCrushed(1), 10, 16); + if (GT_Values.RA.addForgeHammerRecipe(material.getCrushedCentrifuged(1), material.getDust(1), 10, 16)){ + Logger.MATERIALS("[ForgeHammer] Added Recipe: 'Crushed Centrifuged to Pure Dust'"); + } + if (GT_Values.RA.addForgeHammerRecipe(material.getCrushedPurified(1), material.getDustPurified(1), 10, 16)){ + Logger.MATERIALS("[ForgeHammer] Added Recipe: 'Crushed Purified to Purified Dust'"); + } + if (GT_Values.RA.addForgeHammerRecipe(material.getOre(1), material.getCrushed(1), 10, 16)){ + Logger.MATERIALS("[ForgeHammer] Added Recipe: 'Ore to Crushed'"); + } /** * Centrifuge */ //Purified Dust to Clean - GT_Values.RA.addCentrifugeRecipe( + if (GT_Values.RA.addCentrifugeRecipe( material.getDustPurified(1), null, null, //In Fluid null, //Out Fluid @@ -105,7 +128,22 @@ public class RecipeGen_Ore implements Runnable{ null, null,null, new int[]{10000, 10000}, //Chances 5*20, //Eu - 5); //Time + 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, + null, //In Fluid + null, //Out Fluid + material.getDust(1), bonusB.getTinyDust(1),null, + null, null,null, + new int[]{10000, 10000}, //Chances + 5*20, //Eu + 5)){ //Time + Logger.MATERIALS("[Centrifuge] Added Recipe: Inpure Dust to Clean Dust"); + } /** @@ -115,33 +153,68 @@ public class RecipeGen_Ore implements Runnable{ //Process Dust if (componentMap.size() > 0 && componentMap.size() <= 6){ - ItemStack mInternalOutputs[] = new ItemStack[componentMap.size()]; - int mChances[] = new int[componentMap.size()]; + ItemStack mInternalOutputs[] = new ItemStack[6]; + int mChances[] = new int[6]; int mCellCount = 0; + int mTotalCount = 0; + int mCounter = 0; for (Pair<Integer, Material> f : componentMap){ if (f.getValue().getState() != MaterialState.SOLID){ + Logger.MATERIALS("[Electrolyzer] Found Fluid Component, adding "+f.getKey()+" cells of "+f.getValue().getLocalizedName()+"."); mInternalOutputs[mCounter++] = f.getValue().getCell(f.getKey()); mCellCount += f.getKey(); + mTotalCount += f.getKey(); + Logger.MATERIALS("[Electrolyzer] In total, adding "+mCellCount+" cells for "+material.getLocalizedName()+" processing."); } else { + Logger.MATERIALS("[Electrolyzer] Found Solid Component, adding "+f.getKey()+" dusts of "+f.getValue().getLocalizedName()+"."); mInternalOutputs[mCounter++] = f.getValue().getDust(f.getKey()); + mTotalCount += f.getKey(); } } //Build Output Array for (int g=0;g<mInternalOutputs.length;g++){ + Logger.MATERIALS("[Electrolyzer] Is output["+g+"] valid with a chance? "+(mInternalOutputs[g] != null ? 10000 : 0)); mChances[g] = (mInternalOutputs[g] != null ? 10000 : 0); } ItemStack emptyCell = null; if (mCellCount > 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."); + } + else { + mainDust = material.getDust(mTotalCount); + Logger.MATERIALS("[Electrolyzer] Could not find valid input dust, trying alternative."); + if (mainDust != null){ + Logger.MATERIALS("[Electrolyzer] Recipe now requires "+mTotalCount+"x "+mainDust.getDisplayName()+" as input."); + } + else { + Logger.MATERIALS("[Electrolyzer] Could not find valid input dust, exiting."); + } } - GT_Values.RA.addElectrolyzerRecipe( - material.getDust(material.smallestStackSizeWhenProcessing), + for (int j=0;j<mInternalOutputs.length;j++){ + if (mInternalOutputs[j] == null){ + mInternalOutputs[j] = GT_Values.NI; + Logger.MATERIALS("[Electrolyzer] Set slot "+j+" to null."); + } + else { + Logger.MATERIALS("[Electrolyzer] Set slot "+j+" to "+mInternalOutputs[j].getDisplayName()+"."); + } + } + + try{ + if (addElectrolyzerRecipe( + mainDust, emptyCell, //input 2 null, //Input fluid 1 null, //Output fluid 1 @@ -153,10 +226,19 @@ public class RecipeGen_Ore implements Runnable{ mInternalOutputs[5], mChances, 20*90, - 240); + tVoltageMultiplier)){ + Logger.MATERIALS("[Electrolyzer] Generated Electrolyzer recipe for "+material.getDust(1).getDisplayName()); + } + else { + Logger.MATERIALS("[Electrolyzer] Failed to generate Electrolyzer recipe for "+material.getDust(1).getDisplayName()); + } + } + catch(Throwable t){ + t.printStackTrace(); + } } else if (componentMap.size() > 6){ - Logger.MATERIALS("[Issue] "+material.getLocalizedName()+" is composed of over 6 materials, so a recipe for processing cannot be generated."); + Logger.MATERIALS("[Issue][Electrolyzer] "+material.getLocalizedName()+" is composed of over 6 materials, so a recipe for processing cannot be generated."); } @@ -237,6 +319,22 @@ public class RecipeGen_Ore implements Runnable{ } - + public static boolean addElectrolyzerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt) { + if (((aInput1 == null) && (aFluidInput == null)) || ((aOutput1 == null) && (aFluidOutput == null))) { + Logger.MATERIALS("[Electrolyzer] Either both inputs or outputs are null."); + return false; + } + if ((aInput1 != null) && ((aDuration = GregTech_API.sRecipeFile.get("electrolyzer", aInput1, aDuration)) <= 0)) { + Logger.MATERIALS("[Electrolyzer] Fail 1."); + return false; + } + if ((aFluidInput != null) && ((aDuration = GregTech_API.sRecipeFile.get("electrolyzer", aFluidInput.getFluid().getName(), aDuration)) <= 0)) { + Logger.MATERIALS("[Electrolyzer] Fail 2."); + return false; + } + GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes.addRecipe(true, new ItemStack[]{aInput1, aInput2}, new ItemStack[]{aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6}, null, aChances, new FluidStack[]{aFluidInput}, new FluidStack[]{aFluidOutput}, aDuration, aEUt, 0); + Logger.MATERIALS("[Electrolyzer] Recipe added."); + return true; + } } |