aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlkalus <draknyte1@hotmail.com>2017-09-08 20:35:09 +1000
committerAlkalus <draknyte1@hotmail.com>2017-09-08 20:35:09 +1000
commit4fd354bed6a53a9319392b5a300cb8aa77cacb34 (patch)
treefda4a7c35a801ab52f67ed078250683cac876eae
parentd37252418e361dc154fa33156755ec35dfc0c331 (diff)
downloadGT5-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.java29
-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.java8
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java4
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialCentrifuge.java12
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialElectrolyzer.java19
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialMacerator.java30
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialWireMill.java17
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) {