diff options
author | Alkalus <draknyte1@hotmail.com> | 2017-09-08 20:35:09 +1000 |
---|---|---|
committer | Alkalus <draknyte1@hotmail.com> | 2017-09-08 20:35:09 +1000 |
commit | 4fd354bed6a53a9319392b5a300cb8aa77cacb34 (patch) | |
tree | fda4a7c35a801ab52f67ed078250683cac876eae | |
parent | d37252418e361dc154fa33156755ec35dfc0c331 (diff) | |
download | GT5-Unofficial-4fd354bed6a53a9319392b5a300cb8aa77cacb34.tar.gz GT5-Unofficial-4fd354bed6a53a9319392b5a300cb8aa77cacb34.tar.bz2 GT5-Unofficial-4fd354bed6a53a9319392b5a300cb8aa77cacb34.zip |
$ Improved multiblock recipe handling.
-rw-r--r-- | src/Java/gregtech/api/util/CustomRecipeMap.java | 29 | ||||
-rw-r--r-- | src/Java/gregtech/api/util/MultiblockRecipeMapHandler.java (renamed from src/Java/gtPlusPlus/xmod/gregtech/recipes/MultiblockRecipeMapHandler.java) | 142 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java | 8 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java | 4 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialCentrifuge.java | 12 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialElectrolyzer.java | 19 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialMacerator.java | 30 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialWireMill.java | 17 |
8 files changed, 154 insertions, 107 deletions
diff --git a/src/Java/gregtech/api/util/CustomRecipeMap.java b/src/Java/gregtech/api/util/CustomRecipeMap.java index 3a0f1724b0..d01beb1486 100644 --- a/src/Java/gregtech/api/util/CustomRecipeMap.java +++ b/src/Java/gregtech/api/util/CustomRecipeMap.java @@ -22,6 +22,14 @@ public class CustomRecipeMap/* extends GT_Recipe_Map*/{ //Fission Fuel Plant Recipes public static final CustomRecipeMap sFissionFuelProcessing = new CustomRecipeMap(new HashSet<GT_Recipe>(50), "gt.recipe.fissionfuel", "Fission Fuel Processing", null, RES_PATH_GUI + "basicmachines/FissionFuel", 0, 0, 0, 4, 1, E, 1, E, true, true); + + public static final CustomRecipeMap mMultiWireMill = new CustomRecipeMap(new HashSet<GT_Recipe>(500), "gt.recipe.multi.wiremill", "Multiblock Wiremill", null, RES_PATH_GUI + "basicmachines/FissionFuel", 1, 1, 0, 0, 1, E, 1, E, true, true); + public static final CustomRecipeMap mMultiMacerator = new CustomRecipeMap(new HashSet<GT_Recipe>(500), "gt.recipe.multi.macerator", "Maceration Stack", null, RES_PATH_GUI + "basicmachines/FissionFuel", 1, 3, 0, 0, 1, E, 1, E, true, true); + public static final CustomRecipeMap mMultiCentrifuge = new CustomRecipeMap(new HashSet<GT_Recipe>(500), "gt.recipe.multi.centrifuge", "Multiblock Centrifuge", null, RES_PATH_GUI + "basicmachines/FissionFuel", 2, 6, 0, 0, 1, E, 1, E, true, true); + public static final CustomRecipeMap mMultiElectrolyzer = new CustomRecipeMap(new HashSet<GT_Recipe>(500), "gt.recipe.multi.electrolyzer", "Multiblock Electrolyzer", null, RES_PATH_GUI + "basicmachines/FissionFuel", 2, 6, 0, 0, 1, E, 1, E, true, true); + + + /** * HashMap of Recipes based on their Items */ @@ -101,7 +109,7 @@ public class CustomRecipeMap/* extends GT_Recipe_Map*/{ return this.addRecipe(aRecipe, true, false, false); } - protected GT_Recipe addRecipe(final GT_Recipe aRecipe, final boolean aCheckForCollisions, final boolean aFakeRecipe, final boolean aHidden) { + public GT_Recipe addRecipe(final GT_Recipe aRecipe, final boolean aCheckForCollisions, final boolean aFakeRecipe, final boolean aHidden) { aRecipe.mHidden = aHidden; aRecipe.mFakeRecipe = aFakeRecipe; if ((aRecipe.mFluidInputs.length < this.mMinimalInputFluids) && (aRecipe.mInputs.length < this.mMinimalInputItems)) { @@ -255,27 +263,38 @@ public class CustomRecipeMap/* extends GT_Recipe_Map*/{ // Check the Recipe which has been used last time in order to not have to search for it again, if possible. if (aRecipe != null) { if (!aRecipe.mFakeRecipe && aRecipe.mCanBeBuffered && aRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) { + Utils.LOG_INFO("BAD RECIPE [a]"); return aRecipe.mEnabled && ((aVoltage * this.mAmperage) >= aRecipe.mEUt) ? aRecipe : null; } } // Now look for the Recipes inside the Item HashMaps, but only when the Recipes usually have Items. if ((this.mUsualInputCount > 0) && (aInputs != null)) { + Utils.LOG_INFO("BAD RECIPE [b0]"); for (final ItemStack tStack : aInputs) { + Utils.LOG_INFO("BAD RECIPE [b1]"); if (tStack != null) { + Utils.LOG_INFO("BAD RECIPE [b2] | "+tStack.getDisplayName()); Collection<GT_Recipe> tRecipes = this.mRecipeItemMap.get(new GT_ItemStack(tStack)); if (tRecipes != null) { + Utils.LOG_INFO("BAD RECIPE [b3]"); for (final GT_Recipe tRecipe : tRecipes) { + Utils.LOG_INFO("BAD RECIPE [b4]"); if (!tRecipe.mFakeRecipe && tRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) { + Utils.LOG_INFO("BAD RECIPE [b5]"); return tRecipe.mEnabled && ((aVoltage * this.mAmperage) >= tRecipe.mEUt) ? tRecipe : null; } } } + Utils.LOG_INFO("BAD RECIPE [b6]"); tRecipes = this.mRecipeItemMap.get(new GT_ItemStack(GT_Utility.copyMetaData(W, tStack))); if (tRecipes != null) { + Utils.LOG_INFO("BAD RECIPE [b7]"); for (final GT_Recipe tRecipe : tRecipes) { + Utils.LOG_INFO("BAD RECIPE [b8]"); if (!tRecipe.mFakeRecipe && tRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) { + Utils.LOG_INFO("BAD RECIPE [b9]"); return tRecipe.mEnabled && ((aVoltage * this.mAmperage) >= tRecipe.mEUt) ? tRecipe : null; } } @@ -285,14 +304,20 @@ public class CustomRecipeMap/* extends GT_Recipe_Map*/{ } // If the minimal Amount of Items for the Recipe is 0, then it could be a Fluid-Only Recipe, so check that Map too. - if ((this.mMinimalInputItems == 0) && (aFluids != null)) { + if ((this.mMinimalInputItems == 0) && (aFluids != null && aFluids.length > 0)) { + Utils.LOG_INFO("BAD RECIPE [c0] "+aFluids.length); for (final FluidStack aFluid : aFluids) { + Utils.LOG_INFO("BAD RECIPE [c1]"); if (aFluid != null) { + Utils.LOG_INFO("BAD RECIPE [c2]"); final Collection<GT_Recipe> tRecipes = this.mRecipeFluidMap.get(aFluid.getFluid()); if (tRecipes != null) { + Utils.LOG_INFO("BAD RECIPE [c3]"); for (final GT_Recipe tRecipe : tRecipes) { + Utils.LOG_INFO("BAD RECIPE [c4]"); if (!tRecipe.mFakeRecipe && tRecipe.isRecipeInputEqual(false, true, aFluids, aInputs)) { + Utils.LOG_INFO("BAD RECIPE [c5]"); return tRecipe.mEnabled && ((aVoltage * this.mAmperage) >= tRecipe.mEUt) ? tRecipe : null; } } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/recipes/MultiblockRecipeMapHandler.java b/src/Java/gregtech/api/util/MultiblockRecipeMapHandler.java index 5680951cae..143f465233 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/recipes/MultiblockRecipeMapHandler.java +++ b/src/Java/gregtech/api/util/MultiblockRecipeMapHandler.java @@ -1,13 +1,8 @@ -package gtPlusPlus.xmod.gregtech.recipes; - -import static gregtech.api.enums.GT_Values.E; -import static gregtech.api.enums.GT_Values.RES_PATH_GUI; +package gregtech.api.util; import java.util.ArrayList; import java.util.Collection; -import java.util.HashSet; -import gregtech.api.util.CustomRecipeMap; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gtPlusPlus.core.lib.CORE; @@ -18,54 +13,50 @@ import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidStack; public class MultiblockRecipeMapHandler{ - - public static final CustomRecipeMap mMultiElectrolyzer = new CustomRecipeMap(new HashSet<GT_Recipe>(50), "gt.recipe.fissionfuel", "Fission Fuel Processing", null, RES_PATH_GUI + "basicmachines/FissionFuel", 0, 0, 0, 0, 1, E, 1, E, true, true); - public static final CustomRecipeMap mMultiCentrifuge = new CustomRecipeMap(new HashSet<GT_Recipe>(50), "gt.recipe.fissionfuel", "Fission Fuel Processing", null, RES_PATH_GUI + "basicmachines/FissionFuel", 0, 0, 0, 0, 1, E, 1, E, true, true); - public static final CustomRecipeMap mMultiMacerator = new CustomRecipeMap(new HashSet<GT_Recipe>(50), "gt.recipe.fissionfuel", "Fission Fuel Processing", null, RES_PATH_GUI + "basicmachines/FissionFuel", 0, 0, 0, 0, 1, E, 1, E, true, true); - public static final CustomRecipeMap mMultiWireMill = new CustomRecipeMap(new HashSet<GT_Recipe>(50), "gt.recipe.fissionfuel", "Fission Fuel Processing", null, RES_PATH_GUI + "basicmachines/FissionFuel", 0, 0, 0, 0, 1, E, 1, E, true, true); - - - + public static void run() { - + if(CORE.configSwitches.enableMultiblock_IndustrialElectrolyzer){ - generateMultimachineRecipeMap(GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes, mMultiElectrolyzer); + generateSimpleMultimachineRecipeMap(GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes, CustomRecipeMap.mMultiElectrolyzer); } if(CORE.configSwitches.enableMultiblock_IndustrialCentrifuge){ - generateMultimachineRecipeMap(GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, mMultiCentrifuge); + generateSimpleMultimachineRecipeMap(GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, CustomRecipeMap.mMultiCentrifuge); } if(CORE.configSwitches.enableMultiblock_IndustrialMacerationStack){ - generateMultimachineRecipeMap(GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, mMultiMacerator); + generateSimpleMultimachineRecipeMap(GT_Recipe.GT_Recipe_Map.sMaceratorRecipes, CustomRecipeMap.mMultiMacerator); } if(CORE.configSwitches.enableMultiblock_IndustrialWireMill){ - generateMultimachineRecipeMap(GT_Recipe.GT_Recipe_Map.sWiremillRecipes, mMultiWireMill); + generateSimpleMultimachineRecipeMap(GT_Recipe.GT_Recipe_Map.sWiremillRecipes, CustomRecipeMap.mMultiWireMill); } - + } - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + public static boolean isCell(ItemStack cell) { + if (cell == null){ + return false; + } if (cell.getDisplayName().toLowerCase().contains("cell") || cell.getUnlocalizedName().toLowerCase().contains("cell") || FluidContainerRegistry.isFilledContainer(cell)) { @@ -77,7 +68,7 @@ public class MultiblockRecipeMapHandler{ } return false; } - + public static boolean isCellEmpty(ItemStack cell){ if (cell.getDisplayName().toLowerCase().contains("empty") || cell.getUnlocalizedName().toLowerCase().contains("empty") @@ -86,7 +77,7 @@ public class MultiblockRecipeMapHandler{ } return false; } - + private static ItemStack[] copyItemElements(ItemStack[] items){ int inputCount = 0; ItemStack[] item = new ItemStack[9]; @@ -99,26 +90,40 @@ public class MultiblockRecipeMapHandler{ return item; } - private FluidStack[] copyFluidElements(FluidStack[] fluids){ + private static ItemStack[] copyItemElementsWithCells(ItemStack[] items){ + int inputCount = 0; + ItemStack[] item = new ItemStack[9]; + for (ItemStack input : items) { + item[inputCount] = input; + inputCount++; + } + return item; + } + + private static FluidStack[] copyFluidElements(FluidStack[] fluids){ FluidStack fluid[] = new FluidStack[9]; for (int r = 0; r<fluids.length;r++){ fluid[r] = fluids[r]; } return fluid; } - + private static FluidStack[] addRemovedCellsToArray(ItemStack[] items, FluidStack[] fluids){ ArrayList<FluidStack> fluidInputs = new ArrayList<FluidStack>(); - + for (FluidStack fluid : fluids){ fluidInputs.add(fluid); } - + for (ItemStack input : items) { - if (isCell(input) && !isCellEmpty(input)){ - FluidStack cellFluid = FluidContainerRegistry.getFluidForFilledItem(input); - cellFluid.amount = 1000; - fluidInputs.add(cellFluid); + if (input != null){ + if (isCell(input) && !isCellEmpty(input)){ + FluidStack cellFluid = FluidContainerRegistry.getFluidForFilledItem(input); + if (cellFluid != null){ + cellFluid.amount = 1000; + fluidInputs.add(cellFluid); + } + } } } FluidStack[] returnArray = new FluidStack[fluidInputs.size()]; @@ -128,16 +133,30 @@ public class MultiblockRecipeMapHandler{ return returnArray; } + private static void generateSimpleMultimachineRecipeMap(GT_Recipe_Map inputMap, CustomRecipeMap newMap) { + GT_Recipe_Map r = inputMap; + final Collection<GT_Recipe> x = r.mRecipeList; + for (final GT_Recipe newBo : x) { + int duration = MathUtils.findPercentageOfInt(newBo.mDuration, 80); + if (newMap.addRecipe(new GT_Recipe(true, newBo.mInputs, newBo.mOutputs, newBo.mSpecialItems, newBo.mChances, newBo.mFluidInputs, newBo.mFluidOutputs, duration, newBo.mEUt, newBo.mSpecialValue), false, true, true) != null){ + Utils.LOG_INFO("Successfully added a simple recipe to the "+newMap.mNEIName+" map."); + } + else { + Utils.LOG_INFO("Failed adding a simple recipe to the "+newMap.mNEIName+" map."); + } + } + } + private static void generateMultimachineRecipeMap(GT_Recipe_Map inputMap, CustomRecipeMap newMap) { GT_Recipe_Map r = inputMap; final Collection<GT_Recipe> x = r.mRecipeList; for (final GT_Recipe newBo : x) { - ItemStack[] mInputs = copyItemElements(newBo.mInputs); - ItemStack[] mOutputs = copyItemElements(newBo.mOutputs); - FluidStack[] mFluidInputs = addRemovedCellsToArray(newBo.mInputs, newBo.mFluidInputs); - FluidStack[] mFluidOutputs = addRemovedCellsToArray(newBo.mOutputs, newBo.mFluidOutputs); + ItemStack[] mInputs = copyItemElementsWithCells(newBo.mInputs); + ItemStack[] mOutputs = copyItemElementsWithCells(newBo.mOutputs); + FluidStack[] mFluidInputs = copyFluidElements(newBo.mFluidInputs); + FluidStack[] mFluidOutputs = copyFluidElements(newBo.mFluidOutputs); int duration = MathUtils.findPercentageOfInt(newBo.mDuration, 80); - + //Change bonus chances int[] outputChances = null; if (newBo.mChances != null){ @@ -161,10 +180,15 @@ public class MultiblockRecipeMapHandler{ } } } - newMap.addRecipe(true, mInputs, mOutputs, newBo.mSpecialItems, outputChances, mFluidInputs, mFluidOutputs, duration, newBo.mEUt, newBo.mSpecialValue); + if (newMap.addRecipe(new GT_Recipe(true, mInputs, mOutputs, newBo.mSpecialItems, outputChances, mFluidInputs, mFluidOutputs, duration, newBo.mEUt, newBo.mSpecialValue), false, true, true) != null){ + Utils.LOG_INFO("Successfully added a recipe to the "+newMap.mNEIName+" map."); + } + else { + Utils.LOG_INFO("Failed adding a recipe to the "+newMap.mNEIName+" map."); + } } } - + } diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java index 3fad9c5ffb..cf72318cb3 100644 --- a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java +++ b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java @@ -6,6 +6,7 @@ import java.util.LinkedList; import java.util.Queue; import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.MultiblockRecipeMapHandler; import gtPlusPlus.core.common.compat.*; import gtPlusPlus.core.handler.Recipes.LateRegistrationHandler; import gtPlusPlus.core.handler.Recipes.RegistrationHandler; @@ -16,7 +17,6 @@ import gtPlusPlus.core.recipe.*; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.core.util.recipe.RecipeUtils; -import gtPlusPlus.xmod.gregtech.recipes.MultiblockRecipeMapHandler; import gtPlusPlus.xmod.gregtech.registration.gregtech.*; import net.minecraft.item.ItemStack; @@ -41,11 +41,7 @@ public class COMPAT_HANDLER { } public static void registerGregtechMachines() { - if (Gregtech) { - - //Register some custom recipe maps for any enabled multiblocks. - MultiblockRecipeMapHandler.run(); - + if (Gregtech) { new RECIPES_LaserEngraver(); GregtechEnergyBuffer.run(); GregtechLFTR.run(); diff --git a/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java b/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java index 1a5ef735f5..a206dafd59 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java @@ -6,6 +6,7 @@ import java.util.List; import gregtech.api.GregTech_API; import gregtech.api.util.GT_Config; +import gregtech.api.util.MultiblockRecipeMapHandler; import gregtech.api.world.GT_Worldgen; import gtPlusPlus.core.handler.COMPAT_HANDLER; import gtPlusPlus.core.lib.CORE; @@ -62,7 +63,8 @@ public class HANDLER_GT { } public static void postInit(){ - + //Register some custom recipe maps for any enabled multiblocks. + MultiblockRecipeMapHandler.run(); } } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialCentrifuge.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialCentrifuge.java index 8c71ccc6fc..28195a321f 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialCentrifuge.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialCentrifuge.java @@ -14,15 +14,17 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.CustomRecipeMap; import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.xmod.gregtech.api.gui.GUI_MultiMachine; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock.CustomIcon; -import gtPlusPlus.xmod.gregtech.recipes.MultiblockRecipeMapHandler; import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; @@ -84,11 +86,6 @@ extends GregtechMeta_MultiBlockBase { } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return MultiblockRecipeMapHandler.mMultiCentrifuge; - } - - @Override public boolean isFacingValid(final byte aFacing) { return aFacing > 1; } @@ -103,7 +100,7 @@ extends GregtechMeta_MultiBlockBase { }*/ Utils.LOG_WARNING("Centrifuge Debug - 1"); - final GT_Recipe.GT_Recipe_Map map = this.getRecipeMap(); + final GT_Recipe_Map map = GT_Recipe_Map.sCentrifugeRecipes; if (map == null) { Utils.LOG_WARNING("Centrifuge Debug - False - No recipe map"); return false; @@ -118,6 +115,7 @@ extends GregtechMeta_MultiBlockBase { final FluidStack[] tFluids = tFluidList.toArray(new FluidStack[tFluidList.size()]); if ((tInputList.size() > 0) || (tFluids.length > 0)) { final GT_Recipe tRecipe = map.findRecipe(this.getBaseMetaTileEntity(), this.mLastRecipe, false, gregtech.api.enums.GT_Values.V[tTier], tFluids, tInputs); + tRecipe.mDuration = MathUtils.findPercentageOfInt(tRecipe.mDuration, 80); if (tRecipe != null) { Utils.LOG_WARNING("Recipe was not invalid"); this.mLastRecipe = tRecipe; diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialElectrolyzer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialElectrolyzer.java index 523886578e..5234fa0a01 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialElectrolyzer.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialElectrolyzer.java @@ -13,14 +13,16 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.CustomRecipeMap; import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.xmod.gregtech.api.gui.GUI_MultiMachine; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; -import gtPlusPlus.xmod.gregtech.recipes.MultiblockRecipeMapHandler; import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; @@ -72,11 +74,6 @@ extends GregtechMeta_MultiBlockBase { } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return MultiblockRecipeMapHandler.mMultiElectrolyzer; - } - - @Override public boolean isFacingValid(final byte aFacing) { return aFacing > 1; } @@ -123,7 +120,15 @@ extends GregtechMeta_MultiBlockBase { if ((tInputList.size() > 0) && (tValidOutputSlots >= 1)) { final long tVoltage = this.getMaxInputVoltage(); final byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage)); - final GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes.findRecipe(this.getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], tFluids, tInputs); + + + + final GT_Recipe_Map map = GT_Recipe_Map.sElectrolyzerRecipes; + final GT_Recipe tRecipe = map.findRecipe(this.getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], tFluids, tInputs); + + tRecipe.mDuration = MathUtils.findPercentageOfInt(tRecipe.mDuration, 80); + + if ((tRecipe != null) && (7500 >= tRecipe.mSpecialValue) && (tRecipe.isRecipeInputEqual(true, tFluids, tInputs))) { this.mEfficiency = (10000 - ((this.getIdealStatus() - this.getRepairStatus()) * 1000)); this.mEfficiencyIncrease = 10000; diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialMacerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialMacerator.java index 134bec0d4e..a3cc09cb24 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialMacerator.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialMacerator.java @@ -12,15 +12,17 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus; import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.CustomRecipeMap; import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.xmod.gregtech.api.gui.GUI_MultiMachine; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; -import gtPlusPlus.xmod.gregtech.recipes.MultiblockRecipeMapHandler; import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; @@ -71,16 +73,6 @@ extends GregtechMeta_MultiBlockBase { } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return MultiblockRecipeMapHandler.mMultiMacerator; - } - - /*@Override - public boolean isCorrectMachinePart(ItemStack aStack) { - return true; - }*/ - - @Override public boolean isFacingValid(final byte aFacing) { return aFacing > 1; } @@ -134,16 +126,20 @@ extends GregtechMeta_MultiBlockBase { } //Make a recipe instance for the rest of the method. - final GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.findRecipe(this.getBaseMetaTileEntity(), false, 9223372036854775807L, null, tInputs); + final GT_Recipe_Map map = GT_Recipe_Map.sMaceratorRecipes; + final GT_Recipe tRecipe = map.findRecipe(this.getBaseMetaTileEntity(), false, 9223372036854775807L, null, tInputs); + + tRecipe.mDuration = MathUtils.findPercentageOfInt(tRecipe.mDuration, 80); + final int tValidOutputSlots = this.getValidOutputSlots(this.getBaseMetaTileEntity(), tRecipe, tInputs); - Utils.LOG_WARNING("Maceration Stack - Valid Output Hatches: "+tValidOutputSlots); + Utils.LOG_INFO("Maceration Stack - Valid Output Hatches: "+tValidOutputSlots); //More than or one input if ((tInputList.size() > 0) && (tValidOutputSlots >= 1)) { if ((tRecipe != null) && (tRecipe.isRecipeInputEqual(true, null, tInputs))) { - Utils.LOG_WARNING("Valid Recipe found - size "+tRecipe.mOutputs.length); + Utils.LOG_INFO("Valid Recipe found - size "+tRecipe.mOutputs.length); this.mEfficiency = (10000 - ((this.getIdealStatus() - this.getRepairStatus()) * 1000)); this.mEfficiencyIncrease = 10000; @@ -153,15 +149,15 @@ extends GregtechMeta_MultiBlockBase { final ItemStack[] outputs = new ItemStack[tRecipe.mOutputs.length]; for (int i = 0; i < tRecipe.mOutputs.length; i++){ if (i==0) { - Utils.LOG_WARNING("Adding the default output"); + Utils.LOG_INFO("Adding the default output"); outputs[0] = tRecipe.getOutput(i); } else if (this.getBaseMetaTileEntity().getRandomNumber(7500) < tRecipe.getOutputChance(i)){ - Utils.LOG_WARNING("Adding a bonus output"); + Utils.LOG_INFO("Adding a bonus output"); outputs[i] = tRecipe.getOutput(i); } else { - Utils.LOG_WARNING("Adding null output"); + Utils.LOG_INFO("Adding null output"); outputs[i] = null; } } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialWireMill.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialWireMill.java index 833178a1ae..6ea80f1afe 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialWireMill.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialWireMill.java @@ -10,14 +10,16 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.CustomRecipeMap; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; +import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.xmod.gregtech.api.gui.GUI_MultiMachine; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; -import gtPlusPlus.xmod.gregtech.recipes.MultiblockRecipeMapHandler; import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; @@ -65,11 +67,6 @@ extends GregtechMeta_MultiBlockBase { } @Override - public GT_Recipe.GT_Recipe_Map getRecipeMap() { - return MultiblockRecipeMapHandler.mMultiWireMill; - } - - @Override public boolean isFacingValid(final byte aFacing) { return aFacing > 1; } @@ -81,7 +78,11 @@ extends GregtechMeta_MultiBlockBase { final long tVoltage = this.getMaxInputVoltage(); final byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage)); - final GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sWiremillRecipes.findRecipe(this.getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], null, new ItemStack[]{tInput}); + + final GT_Recipe_Map map = GT_Recipe_Map.sWiremillRecipes; + final GT_Recipe tRecipe = map.findRecipe(this.getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], null, new ItemStack[]{tInput}); + + tRecipe.mDuration = MathUtils.findPercentageOfInt(tRecipe.mDuration, 80); if (tRecipe != null) { final int tValidOutputSlots = this.getValidOutputSlots(this.getBaseMetaTileEntity(), tRecipe, new ItemStack[]{tInput}); @@ -231,7 +232,7 @@ extends GregtechMeta_MultiBlockBase { public byte getCasingTextureIndex() { - return 1; + return (byte) TAE.GTPP_INDEX(6); } private boolean addToMachineList(final IGregTechTileEntity tTileEntity) { |