diff --git a/src/main/java/modtweaker2/mods/mekanism/Mekanism.java b/src/main/java/modtweaker2/mods/mekanism/Mekanism.java index 41f6b65..eb88dcd 100644 --- a/src/main/java/modtweaker2/mods/mekanism/Mekanism.java +++ b/src/main/java/modtweaker2/mods/mekanism/Mekanism.java @@ -5,7 +5,7 @@ import java.util.regex.Pattern; import minetweaker.MineTweakerAPI; import modtweaker2.mods.mekanism.gas.GasBracketHandler; import modtweaker2.mods.mekanism.handlers.v8.ChemicalInfuser; -import modtweaker2.mods.mekanism.handlers.ChemicalInjection; +import modtweaker2.mods.mekanism.handlers.v8.ChemicalInjection; import modtweaker2.mods.mekanism.handlers.ChemicalOxidizer; import modtweaker2.mods.mekanism.handlers.ChemicalWasher; import modtweaker2.mods.mekanism.handlers.Combiner; diff --git a/src/main/java/modtweaker2/mods/mekanism/handlers/v8/ChemicalDissolution.java b/src/main/java/modtweaker2/mods/mekanism/handlers/v8/ChemicalDissolution.java index 8981dca..0cd5c61 100644 --- a/src/main/java/modtweaker2/mods/mekanism/handlers/v8/ChemicalDissolution.java +++ b/src/main/java/modtweaker2/mods/mekanism/handlers/v8/ChemicalDissolution.java @@ -47,7 +47,6 @@ public class ChemicalDissolution { public GasStack output; public ItemStack input; - @SuppressWarnings("unused") public DissolutionRecipe(GasStack output, ItemStack input) { this.output = output; this.input = input; diff --git a/src/main/java/modtweaker2/mods/mekanism/handlers/v8/ChemicalInfuser.java b/src/main/java/modtweaker2/mods/mekanism/handlers/v8/ChemicalInfuser.java index ccdd458..fae3b50 100644 --- a/src/main/java/modtweaker2/mods/mekanism/handlers/v8/ChemicalInfuser.java +++ b/src/main/java/modtweaker2/mods/mekanism/handlers/v8/ChemicalInfuser.java @@ -8,17 +8,13 @@ import mekanism.api.gas.GasStack; import mekanism.common.recipe.RecipeHandler; import mekanism.common.recipe.RecipeHandler.Recipe; import mekanism.common.recipe.inputs.ChemicalPairInput; -import mekanism.common.recipe.inputs.InfusionInput; import mekanism.common.recipe.machines.ChemicalInfuserRecipe; import mekanism.common.recipe.outputs.GasOutput; import minetweaker.MineTweakerAPI; -import minetweaker.api.item.IItemStack; -import modtweaker2.helpers.InputHelper; import modtweaker2.mods.mekanism.MekanismHelper; import modtweaker2.mods.mekanism.gas.IGasStack; import modtweaker2.utils.BaseMapAddition; import modtweaker2.utils.BaseMapRemoval; -import net.minecraft.item.ItemStack; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; diff --git a/src/main/java/modtweaker2/mods/mekanism/handlers/v8/ChemicalInjection.java b/src/main/java/modtweaker2/mods/mekanism/handlers/v8/ChemicalInjection.java new file mode 100644 index 0000000..1a6eab0 --- /dev/null +++ b/src/main/java/modtweaker2/mods/mekanism/handlers/v8/ChemicalInjection.java @@ -0,0 +1,86 @@ +package modtweaker2.mods.mekanism.handlers.v8; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import mekanism.api.gas.GasStack; +import mekanism.common.recipe.RecipeHandler; +import mekanism.common.recipe.RecipeHandler.Recipe; +import mekanism.common.recipe.inputs.AdvancedMachineInput; +import mekanism.common.recipe.outputs.ItemStackOutput; +import minetweaker.MineTweakerAPI; +import minetweaker.api.item.IItemStack; +import modtweaker2.helpers.InputHelper; +import modtweaker2.mods.mekanism.MekanismHelper; +import modtweaker2.mods.mekanism.gas.IGasStack; +import modtweaker2.utils.BaseMapAddition; +import modtweaker2.utils.BaseMapRemoval; +import net.minecraft.item.ItemStack; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; + +@ZenClass("mods.mekanism.chemical.Injection") +public class ChemicalInjection { + + @ZenMethod + public static void addRecipe(IItemStack output, IItemStack input, IGasStack gas) { + MineTweakerAPI.apply(new Add(new InjectionRecipe(InputHelper.toStack(output), InputHelper.toStack(input), MekanismHelper.toGas(gas)))); + } + + private static class Add extends BaseMapAddition { + + public InjectionRecipe recipe; + + public Add(InjectionRecipe recipe) { + super("Chemical Injection", Recipe.CHEMICAL_INJECTION_CHAMBER.get(), recipe.input, recipe.output); + this.recipe = recipe; + } + + @Override + public void apply() { + RecipeHandler.addChemicalInjectionChamberRecipe(recipe.input, recipe.gas.getGas().getLocalizedName(), recipe.output); + } + } + + private static class InjectionRecipe { + public ItemStack output; + public ItemStack input; + public GasStack gas; + + public InjectionRecipe(ItemStack output, ItemStack input, GasStack gas) { + this.output = output; + this.input = input; + this.gas = gas; + } + + } + + @ZenMethod + public static void removeRecipe(IItemStack output) { + MineTweakerAPI.apply(new Remove(InputHelper.toStack(output))); + } + + private static class Remove extends BaseMapRemoval { + + public Remove(ItemStack output) { + super("Chemical Injection", Recipe.CHEMICAL_DISSOLUTION_CHAMBER.get(), output); + } + + @SuppressWarnings("unchecked") + @Override + public void apply() { + List toRemove = new ArrayList(); + for (AdvancedMachineInput stack : (Set) Recipe.CHEMICAL_DISSOLUTION_CHAMBER.get().keySet()) { + ItemStackOutput recipe = (ItemStackOutput) Recipe.CHEMICAL_DISSOLUTION_CHAMBER.get().get(stack); + if (recipe.output.isItemEqual((ItemStack)this.stack)) { + toRemove.add(stack); + } + } + for (AdvancedMachineInput stack : toRemove) { + Recipe.CHEMICAL_DISSOLUTION_CHAMBER.get().remove(stack); + } + } + + } +} diff --git a/src/main/java/modtweaker2/mods/mekanism/handlers/v8/Infuser.java b/src/main/java/modtweaker2/mods/mekanism/handlers/v8/Infuser.java index 2e11331..00dfaec 100644 --- a/src/main/java/modtweaker2/mods/mekanism/handlers/v8/Infuser.java +++ b/src/main/java/modtweaker2/mods/mekanism/handlers/v8/Infuser.java @@ -51,7 +51,6 @@ public class Infuser { public int amount; public InfuseType type; - @SuppressWarnings("unused") public InfuserRecipe(ItemStack output, ItemStack input, int amount, InfuseType type) { this.output = output; this.input = input;