From 7567161204d5aa56ddd14cefd69fed0a0390f5d5 Mon Sep 17 00:00:00 2001 From: Zixxl Date: Mon, 20 Jul 2015 11:59:15 +0200 Subject: [PATCH] Revert "Removed fuel handler" This reverts commit e10f0e3431b892b7ae3ccf43bb05d708f495ce94. --- .../mods/railcraft/RailcraftHelper.java | 2 + .../mods/railcraft/handlers/BlastFurnace.java | 79 +++++++++++++++++++ 2 files changed, 81 insertions(+) diff --git a/src/main/java/modtweaker2/mods/railcraft/RailcraftHelper.java b/src/main/java/modtweaker2/mods/railcraft/RailcraftHelper.java index 6f88d3e..6364bdb 100644 --- a/src/main/java/modtweaker2/mods/railcraft/RailcraftHelper.java +++ b/src/main/java/modtweaker2/mods/railcraft/RailcraftHelper.java @@ -20,12 +20,14 @@ public class RailcraftHelper { public static List oven = null; public static List crusher = null; public static List rolling = null; + public static List fuels = null; static { try { furnace = RailcraftCraftingManager.blastFurnace.getRecipes(); oven = RailcraftCraftingManager.cokeOven.getRecipes(); crusher = RailcraftCraftingManager.rockCrusher.getRecipes(); rolling = RailcraftCraftingManager.rollingMachine.getRecipeList(); + fuels = ReflectionHelper.>getObject(RailcraftCraftingManager.blastFurnace, "fuels"); } catch (Exception e) { LogHelper.logError("Error in RailcraftHelper", e); } } diff --git a/src/main/java/modtweaker2/mods/railcraft/handlers/BlastFurnace.java b/src/main/java/modtweaker2/mods/railcraft/handlers/BlastFurnace.java index 7e5078c..c64e4f5 100644 --- a/src/main/java/modtweaker2/mods/railcraft/handlers/BlastFurnace.java +++ b/src/main/java/modtweaker2/mods/railcraft/handlers/BlastFurnace.java @@ -11,10 +11,14 @@ import minetweaker.MineTweakerAPI; import minetweaker.api.item.IIngredient; import minetweaker.api.item.IItemStack; import mods.railcraft.api.crafting.IBlastFurnaceRecipe; +import modtweaker2.helpers.InputHelper; import modtweaker2.helpers.LogHelper; +import modtweaker2.helpers.StackHelper; import modtweaker2.mods.railcraft.RailcraftHelper; import modtweaker2.utils.BaseListAddition; import modtweaker2.utils.BaseListRemoval; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntityFurnace; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; @@ -84,4 +88,79 @@ public class BlastFurnace { return LogHelper.getStackDescription(recipe.getOutput()); } } + + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + @ZenMethod + public static void addFuel(IIngredient itemInput) { + if(itemInput == null) { + LogHelper.logError(String.format("Required parameters missing for %s Recipe.", name)); + return; + } + + List fuels = new LinkedList(); + + for(IItemStack item : itemInput.getItems()) { + + boolean match = false; + + for(ItemStack fuel : RailcraftHelper.fuels) { + if(StackHelper.matches(item, InputHelper.toIItemStack(fuel))) { + match = true; + break; + } + } + + if(!match && TileEntityFurnace.isItemFuel(InputHelper.toStack(item))) { + fuels.add(InputHelper.toStack(item)); + } + } + + if(!fuels.isEmpty()) { + MineTweakerAPI.apply(new AddFuels(fuels)); + } else { + LogHelper.logWarning(String.format("No %s added.", nameFuel)); + } + } + + private static class AddFuels extends BaseListAddition { + public AddFuels(List fuels) { + super(BlastFurnace.nameFuel, RailcraftHelper.fuels, fuels); + } + + @Override + protected String getRecipeInfo(ItemStack recipe) { + return LogHelper.getStackDescription(recipe); + } + } + + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + @ZenMethod + private static void removeFuel(IIngredient itemInput) { + List fuels = new LinkedList(); + + for(ItemStack fuel : RailcraftHelper.fuels) { + if(StackHelper.matches(itemInput, InputHelper.toIItemStack(fuel))) { + fuels.add(fuel); + } + } + + if(!fuels.isEmpty()) { + MineTweakerAPI.apply(new RemoveFuels(fuels)); + } else { + LogHelper.logWarning(String.format("No %s found for argument %s.", nameFuel, itemInput.toString())); + } + } + + private static class RemoveFuels extends BaseListRemoval { + public RemoveFuels(List fuels) { + super(BlastFurnace.nameFuel, RailcraftHelper.fuels, fuels); + } + + @Override + protected String getRecipeInfo(ItemStack recipe) { + return LogHelper.getStackDescription(recipe); + } + } }