diff options
7 files changed, 107 insertions, 32 deletions
diff --git a/src/Java/gregtech/api/util/Recipe_GT.java b/src/Java/gregtech/api/util/Recipe_GT.java index 3d4cc8ae10..986b7c7ac4 100644 --- a/src/Java/gregtech/api/util/Recipe_GT.java +++ b/src/Java/gregtech/api/util/Recipe_GT.java @@ -234,7 +234,7 @@ public class Recipe_GT extends GT_Recipe{ //public static final Gregtech_Recipe_Map sMatterFabRecipes = new Gregtech_Recipe_Map(new HashSet<GregtechRecipe>(200), "gt.recipe.matterfab", "Matter Fabricator", null, RES_PATH_GUI + "basicmachines/Massfabricator", 1, 3, 1, 1, 1, E, 1, E, true, true); public static final Gregtech_Recipe_Map_Fuel sRocketFuels = new Gregtech_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.rocketenginefuel", "Rocket Engine Fuel", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 3000, " EU", true, true); public static final Gregtech_Recipe_Map_Fuel sGeoThermalFuels = new Gregtech_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.geothermalfuel", "GeoThermal Fuel", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true); - public static final GT_Recipe_Map sChemicalDehydratorRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.chemicaldehydrator", "Chemical Dehydrator", null, RES_PATH_GUI + "basicmachines/Dehydrator", 1, 1, 0, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sChemicalDehydratorRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.chemicaldehydrator", "Chemical Dehydrator", null, RES_PATH_GUI + "basicmachines/Dehydrator", 1, 9, 0, 0, 1, E, 1, E, true, true); /** * HashMap of Recipes based on their Items diff --git a/src/Java/miscutil/MiscUtils.java b/src/Java/miscutil/MiscUtils.java index a2582cb259..040b187af0 100644 --- a/src/Java/miscutil/MiscUtils.java +++ b/src/Java/miscutil/MiscUtils.java @@ -10,10 +10,14 @@ import static miscutil.core.lib.CORE.configSwitches.enableCustomAlvearyBlocks; import static miscutil.core.lib.CORE.configSwitches.enableSolarGenerators; import static miscutil.core.lib.CORE.configSwitches.enableThaumcraftShardUnification; import gregtech.api.util.GT_Config; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Recipe.GT_Recipe_Map; +import gregtech.api.util.Recipe_GT.Gregtech_Recipe_Map; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; +import java.util.Collection; import miscutil.core.commands.CommandMath; import miscutil.core.common.CommonProxy; @@ -21,6 +25,7 @@ import miscutil.core.handler.events.LoginEventHandler; import miscutil.core.item.general.RF2EU_Battery; import miscutil.core.lib.CORE; import miscutil.core.util.Utils; +import miscutil.core.util.item.UtilsItems; import miscutil.core.util.math.MathUtils; import miscutil.xmod.gregtech.HANDLER_GT; import net.minecraftforge.common.config.Configuration; @@ -136,7 +141,12 @@ implements ActionListener //Post-Init @Mod.EventHandler public void postInit(FMLPostInitializationEvent event) { - proxy.postInit(event); + proxy.postInit(event); + + dumpGtRecipeMap(Gregtech_Recipe_Map.sChemicalDehydratorRecipes); + dumpGtRecipeMap(Gregtech_Recipe_Map.sCokeOvenRecipes); + dumpGtRecipeMap(Gregtech_Recipe_Map.sMatterFab2Recipes); + } @EventHandler @@ -155,5 +165,20 @@ implements ActionListener public void actionPerformed(ActionEvent arg0) { } + + protected void dumpGtRecipeMap(GT_Recipe_Map r){ + Collection<GT_Recipe> x = r.mRecipeList; + Utils.LOG_INFO("Dumping "+r.mUnlocalizedName+" Recipes for Debug."); + for(GT_Recipe newBo : x){ + Utils.LOG_INFO("========================"); + Utils.LOG_INFO("Dumping Input: "+UtilsItems.getArrayStackNames(newBo.mInputs)); + Utils.LOG_INFO("Dumping Inputs "+UtilsItems.getFluidArrayStackNames(newBo.mFluidInputs)); + Utils.LOG_INFO("Dumping Duration: "+newBo.mDuration); + Utils.LOG_INFO("Dumping EU/t: "+newBo.mEUt); + Utils.LOG_INFO("Dumping Output: "+UtilsItems.getArrayStackNames(newBo.mOutputs)); + Utils.LOG_INFO("Dumping Output: "+UtilsItems.getFluidArrayStackNames(newBo.mFluidOutputs)); + Utils.LOG_INFO("========================"); + } + } } diff --git a/src/Java/miscutil/core/recipe/RECIPES_GREGTECH.java b/src/Java/miscutil/core/recipe/RECIPES_GREGTECH.java index 6c3fe841fe..bff73a4db9 100644 --- a/src/Java/miscutil/core/recipe/RECIPES_GREGTECH.java +++ b/src/Java/miscutil/core/recipe/RECIPES_GREGTECH.java @@ -40,7 +40,7 @@ public class RECIPES_GREGTECH { //GT Logs to Charcoal Recipe //With Sulfuric Acid CORE.RA.addCokeOvenRecipe( - GT_OreDictUnificator.get(OrePrefixes.log, Materials.Wood, 2L), //Input 1 + GT_OreDictUnificator.get(OrePrefixes.log, Materials.Wood, 1L), //Input 1 GT_OreDictUnificator.get(OrePrefixes.log, Materials.Wood, 1L), //Input 2 Materials.SulfuricAcid.getFluid(20L), //Fluid Input Materials.Creosote.getFluid(175L), //Fluid Output @@ -53,7 +53,7 @@ public class RECIPES_GREGTECH { //Coal -> Coke Recipe //With Sulfuric Acid CORE.RA.addCokeOvenRecipe( - GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 2L), //Input 1 + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 1L), //Input 1 GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 1L), //Input 2 Materials.SulfuricAcid.getFluid(60L), //Fluid Input Materials.Creosote.getFluid(250L), //Fluid Output @@ -66,7 +66,7 @@ public class RECIPES_GREGTECH { //GT Logs to Charcoal Recipe //Without Sulfuric Acid CORE.RA.addCokeOvenRecipe( - GT_OreDictUnificator.get(OrePrefixes.log, Materials.Wood, 2L), //Input 1 + GT_OreDictUnificator.get(OrePrefixes.log, Materials.Wood, 1L), //Input 1 GT_OreDictUnificator.get(OrePrefixes.log, Materials.Wood, 1L), //Input 2 FluidUtils.getFluidStack("oxygen", 80), //Fluid Input Materials.Creosote.getFluid(145L), //Fluid Output @@ -79,7 +79,7 @@ public class RECIPES_GREGTECH { //Coal -> Coke Recipe //Without Sulfuric Acid CORE.RA.addCokeOvenRecipe( - GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 2L), //Input 1 + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 1L), //Input 1 GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 1L), //Input 2 FluidUtils.getFluidStack("oxygen", 185), //Fluid Input Materials.Creosote.getFluid(200L), //Fluid Output diff --git a/src/Java/miscutil/core/util/item/UtilsItems.java b/src/Java/miscutil/core/util/item/UtilsItems.java index e46b49074f..e7d7ca6f8e 100644 --- a/src/Java/miscutil/core/util/item/UtilsItems.java +++ b/src/Java/miscutil/core/util/item/UtilsItems.java @@ -31,6 +31,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.item.Item; import net.minecraft.item.Item.ToolMaterial; import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; import cpw.mods.fml.common.registry.GameRegistry; @@ -346,5 +347,15 @@ public class UtilsItems { return itemNames; } + + public static String getFluidArrayStackNames(FluidStack[] aStack){ + String itemNames = "Fluid Array: "; + for (FluidStack alph : aStack){ + String temp = itemNames; + itemNames = temp + ", " + alph.getFluid().getName() + " x" + alph.amount; + } + return itemNames; + + } } diff --git a/src/Java/miscutil/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityMassFabricator.java b/src/Java/miscutil/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityMassFabricator.java index 13d10e71de..45948cefbb 100644 --- a/src/Java/miscutil/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityMassFabricator.java +++ b/src/Java/miscutil/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityMassFabricator.java @@ -19,6 +19,7 @@ import java.util.Arrays; import miscutil.core.block.ModBlocks; import miscutil.core.lib.CORE; import miscutil.core.util.Utils; +import miscutil.core.util.fluid.FluidUtils; import miscutil.core.util.item.UtilsItems; import miscutil.xmod.gregtech.api.gui.GUI_MultiMachine; import net.minecraft.block.Block; @@ -37,6 +38,8 @@ public class GregtechMetaTileEntityMassFabricator extends GT_MetaTileEntity_Mult public static boolean sRequiresUUA = false; private int recipeCounter = 0; private static Block IC2Glass = Block.getBlockFromItem(UtilsItems.getItem("IC2:blockAlloyGlass")); + FluidStack tempFake = FluidUtils.getFluidStack("uuamplifier", 1); + GT_Recipe fakeRecipe; //public FluidStack mFluidOut = Materials.UUMatter.getFluid(1L); public GregtechMetaTileEntityMassFabricator(int aID, String aName, String aNameRegional) { @@ -109,6 +112,7 @@ public class GregtechMetaTileEntityMassFabricator extends GT_MetaTileEntity_Mult byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage)); FluidStack[] tFluids = (FluidStack[]) Arrays.copyOfRange(tFluidList.toArray(new FluidStack[tFluidList.size()]), 0, tFluidList.size()); if (tFluids.length > 0) { + //Utils.LOG_INFO("Input fluid found"); for(int i = 0;i<tFluids.length;i++){ GT_Recipe tRecipe = Recipe_GT.Gregtech_Recipe_Map.sMatterFab2Recipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], new FluidStack[]{tFluids[i]}, new ItemStack[]{}); if (tRecipe != null) { @@ -141,9 +145,52 @@ public class GregtechMetaTileEntityMassFabricator extends GT_MetaTileEntity_Mult } else { Utils.LOG_INFO("Invalid Recipe"); + return false; } } } + else if (tFluids.length == 0) { + //Utils.LOG_INFO("Input fluid not found"); + fakeRecipe = Recipe_GT.Gregtech_Recipe_Map.sMatterFab2Recipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], new FluidStack[]{tempFake}, new ItemStack[]{}); + + this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); + this.mEfficiencyIncrease = 10000; + + this.mEUt = 32; + this.mMaxProgresstime = (160*20); + while (this.mEUt <= gregtech.api.enums.GT_Values.V[(tTier - 1)]) { + this.mEUt *= 4; + this.mMaxProgresstime /= 2; + } + + if (this.mEUt > 0) { + this.mEUt = (-this.mEUt); + } + + if (fakeRecipe != null) { + this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime); + this.mOutputItems = new ItemStack[]{fakeRecipe.getOutput(0)}; + this.mOutputFluids = fakeRecipe.mFluidOutputs.clone(); + ArrayUtils.reverse(mOutputFluids); + recipeCounter++; + updateSlots(); + //Utils.LOG_INFO("Recipes Finished: "+recipeCounter); + return true; + } + Utils.LOG_INFO("fakeRecipe was Null"); + + this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime); + this.mOutputItems = new ItemStack[]{null}; + this.mOutputFluids = new FluidStack[] {FluidUtils.getFluidStack("uumatter", 1)}; + ArrayUtils.reverse(mOutputFluids); + recipeCounter++; + updateSlots(); + Utils.LOG_INFO("Recipes Finished: "+recipeCounter); + return true; + } + else { + Utils.LOG_INFO("Invalid no input Recipe"); + } return false; } diff --git a/src/Java/miscutil/xmod/gregtech/recipes/GregtechRecipeAdder.java b/src/Java/miscutil/xmod/gregtech/recipes/GregtechRecipeAdder.java index 2589ceee23..2eca5b40be 100644 --- a/src/Java/miscutil/xmod/gregtech/recipes/GregtechRecipeAdder.java +++ b/src/Java/miscutil/xmod/gregtech/recipes/GregtechRecipeAdder.java @@ -72,35 +72,17 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder { public boolean addMatterFabricatorRecipe(FluidStack aFluidInput, FluidStack aFluidOutput, int aDuration, int aEUt) { try { try { - RECIPEHANDLER_MatterFabricator.debug1(); + //RECIPEHANDLER_MatterFabricator.debug1(); if (aFluidOutput == null) { - Utils.LOG_WARNING("aFluidInput:"+aFluidInput.toString()+" aFluidOutput:"+aFluidOutput.toString()+" aDuration:"+aDuration+" aEU/t:"+aEUt); + //Utils.LOG_WARNING("aFluidInput:"+aFluidInput.toString()+" aFluidOutput:"+aFluidOutput.toString()+" aDuration:"+aDuration+" aEU/t:"+aEUt); Utils.LOG_WARNING("Something was null, returning false"); return false; } } catch (NullPointerException e){e.getStackTrace();} - try { - RECIPEHANDLER_MatterFabricator.debug2(aFluidInput, aFluidOutput, aDuration, aEUt); - if ((aFluidOutput == null)/* && ((aDuration = GregTech_API.sRecipeFile.get("matterfab", null, aDuration)) <= 0)*/) { - Utils.LOG_WARNING("aFluidInput:"+aFluidInput.toString()+" aFluidOutput:"+aFluidOutput.toString()+" aDuration:"+aDuration+" aEU/t:"+aEUt); - Utils.LOG_WARNING("Something was null, returning false"); - return false; - } - - } catch (NullPointerException e){e.getStackTrace();} - /*try { - - RECIPEHANDLER_MatterFabricator.debug3(aFluidInput, aFluidOutput, aDuration, aEUt); - if ((aFluidOutput == null) && ((aDuration = GregTech_API.sRecipeFile.get("matterfab", aFluidOutput.getFluid().getName(), aDuration)) <= 0)) { - Utils.LOG_WARNING("aFluidInput:"+aFluidInput.toString()+" aFluidOutput:"+aFluidOutput.toString()+" aDuration:"+aDuration+" aEU/t:"+aEUt); - Utils.LOG_WARNING("Something was null, returning false"); - return false; - } - - } catch (NullPointerException e){e.getStackTrace();}*/ - try { - RECIPEHANDLER_MatterFabricator.debug4(aFluidInput, aFluidOutput, aDuration, aEUt); + try{ + + //RECIPEHANDLER_MatterFabricator.debug4(aFluidInput, aFluidOutput, aDuration, aEUt); if (aFluidInput == null){ //Recipe_GT.Gregtech_Recipe_Map.sMatterFabRecipes.addRecipe(true, null, new FluidStack[]{aFluidOutput}, aDuration, aEUt, 0); Recipe_GT.Gregtech_Recipe_Map.sMatterFab2Recipes.addRecipe(true, null, null, null, null, new FluidStack[]{aFluidOutput}, aDuration, aEUt, 0); @@ -117,7 +99,7 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder { return false; } } catch (Throwable e){ - Utils.LOG_WARNING("aFluidInput:"+aFluidInput.toString()+" aFluidOutput:"+aFluidOutput.toString()+" aDuration:"+aDuration+" aEU/t:"+aEUt); + //Utils.LOG_WARNING("aFluidInput:"+aFluidInput.toString()+" aFluidOutput:"+aFluidOutput.toString()+" aDuration:"+aDuration+" aEU/t:"+aEUt); Utils.LOG_WARNING("Failed."); e.getStackTrace(); return false; @@ -204,7 +186,7 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder { Utils.LOG_INFO("Recipe requires input: "+aInput2.getDisplayName()+" x"+aInput2.stackSize); } if (aFluidInput != null){ - Utils.LOG_INFO("Recipe requires input: "+aFluidInput.getFluid().getName()+" "+aFluidInput.amount+"mb"); + Utils.LOG_INFO("Recipe requires input: "+aFluidInput.getFluid().getName()+" "+aFluidInput.amount+"mbst"); } if (((aInput1 == null) && (aFluidInput == null)) || ((aOutputItems == null) && (aFluidOutput == null))) { return false; diff --git a/src/Java/miscutil/xmod/gregtech/recipes/machines/RECIPEHANDLER_MatterFabricator.java b/src/Java/miscutil/xmod/gregtech/recipes/machines/RECIPEHANDLER_MatterFabricator.java index 165112451f..0e92004390 100644 --- a/src/Java/miscutil/xmod/gregtech/recipes/machines/RECIPEHANDLER_MatterFabricator.java +++ b/src/Java/miscutil/xmod/gregtech/recipes/machines/RECIPEHANDLER_MatterFabricator.java @@ -36,7 +36,17 @@ public class RECIPEHANDLER_MatterFabricator { } public static void debug5(FluidStack aFluidInput, FluidStack aFluidOutput, int aDuration, int aEUt){ - Utils.LOG_INFO("Successfully added a Matter Fabrication recipe for: "+aFluidOutput.getFluid().getName()+", Using "+" liquid "+aFluidInput.getFluid().getName()+". This takes "+(aDuration/20)+" seconds for "+aEUt+"eu/t."); + String a = "nothing"; + String b = ""; + + if (aFluidInput != null){ + a = aFluidInput.getFluid().getName(); + } + if (aFluidOutput != null){ + b = aFluidOutput.getFluid().getName(); + } + + Utils.LOG_INFO("Successfully added a Matter Fabrication recipe for: "+b+", Using "+" liquid "+a+". This takes "+(aDuration/20)+" seconds for "+aEUt+"eu/t."); Utils.LOG_WARNING("=================================================================================="); Utils.LOG_WARNING("=================================================================================="); Utils.LOG_WARNING("=================================================================================="); |