Close #435
This commit is contained in:
parent
04e5a559e0
commit
94d69f8ba5
3 changed files with 453 additions and 359 deletions
|
@ -1,143 +1,183 @@
|
||||||
package modtweaker.mods.embers.handlers;
|
package modtweaker.mods.embers.handlers;
|
||||||
|
|
||||||
import com.blamejared.mtlib.helpers.LogHelper;
|
import com.blamejared.mtlib.helpers.LogHelper;
|
||||||
import com.blamejared.mtlib.helpers.StackHelper;
|
import com.blamejared.mtlib.utils.*;
|
||||||
import com.blamejared.mtlib.utils.BaseListAddition;
|
|
||||||
import com.blamejared.mtlib.utils.BaseListRemoval;
|
|
||||||
import com.blamejared.mtlib.utils.BaseMapAddition;
|
|
||||||
import com.blamejared.mtlib.utils.BaseMapRemoval;
|
|
||||||
|
|
||||||
import minetweaker.MineTweakerAPI;
|
import minetweaker.MineTweakerAPI;
|
||||||
import minetweaker.api.item.IIngredient;
|
|
||||||
import minetweaker.api.item.IItemStack;
|
import minetweaker.api.item.IItemStack;
|
||||||
import minetweaker.api.liquid.ILiquidStack;
|
import minetweaker.api.liquid.ILiquidStack;
|
||||||
import minetweaker.api.oredict.IOreDictEntry;
|
import minetweaker.api.oredict.IOreDictEntry;
|
||||||
import modtweaker.mods.embers.Embers;
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import stanhebben.zenscript.annotations.Optional;
|
import stanhebben.zenscript.annotations.*;
|
||||||
import stanhebben.zenscript.annotations.ZenClass;
|
import teamroots.embers.compat.jei.MeltingRecipeWrapper;
|
||||||
import stanhebben.zenscript.annotations.ZenMethod;
|
import teamroots.embers.recipe.*;
|
||||||
import teamroots.embers.recipe.ItemMeltingOreRecipe;
|
|
||||||
import teamroots.embers.recipe.ItemMeltingRecipe;
|
|
||||||
import teamroots.embers.recipe.RecipeRegistry;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
import static com.blamejared.mtlib.helpers.InputHelper.*;
|
import static com.blamejared.mtlib.helpers.InputHelper.*;
|
||||||
import static com.blamejared.mtlib.helpers.StackHelper.matches;
|
|
||||||
|
|
||||||
@ZenClass("mods.embers.Melter")
|
@ZenClass("mods.embers.Melter")
|
||||||
public class Melter {
|
public class Melter {
|
||||||
public static String name = "Embers Melter";
|
|
||||||
|
public static String name = "Embers Melter";
|
||||||
@ZenMethod
|
|
||||||
public static void addRecipe(IItemStack input, ILiquidStack outputOne, boolean matchMeta, boolean matchNBT) {
|
@ZenMethod
|
||||||
MineTweakerAPI.apply(new Add(toStack(input), new ItemMeltingRecipe(toStack(input),toFluid(outputOne), matchMeta, matchNBT)));
|
public static void addRecipe(IItemStack input, ILiquidStack outputOne, boolean matchMeta, boolean matchNBT) {
|
||||||
}
|
MineTweakerAPI.apply(new Add(toStack(input), new ItemMeltingRecipe(toStack(input), toFluid(outputOne), matchMeta, matchNBT)));
|
||||||
|
}
|
||||||
@ZenMethod
|
|
||||||
public static void addOreRecipe(IOreDictEntry key, ILiquidStack outputOne, boolean matchMeta, boolean matchNBT) {
|
@ZenMethod
|
||||||
MineTweakerAPI.apply(new AddOre(key.getName(), new ItemMeltingOreRecipe(key.getName(),toFluid(outputOne))));
|
public static void addOreRecipe(IOreDictEntry key, ILiquidStack outputOne, boolean matchMeta, boolean matchNBT) {
|
||||||
}
|
MineTweakerAPI.apply(new AddOre(key.getName(), new ItemMeltingOreRecipe(key.getName(), toFluid(outputOne))));
|
||||||
|
}
|
||||||
|
|
||||||
private static class AddOre extends BaseMapAddition<String, ItemMeltingOreRecipe> {
|
@ZenMethod
|
||||||
public AddOre(String stack, ItemMeltingOreRecipe recipe) {
|
public static void remove(ILiquidStack fluid) {
|
||||||
super(Melter.name, RecipeRegistry.meltingOreRecipes);
|
List<ItemStack> recipes = new ArrayList<>();
|
||||||
|
List<String> oreRecipes = new ArrayList<>();
|
||||||
this.recipes.put(stack, recipe);
|
if(fluid == null) {
|
||||||
}
|
LogHelper.logError(String.format("Required parameters missing for %s Recipe.", name));
|
||||||
|
return;
|
||||||
@Override
|
}
|
||||||
protected String getRecipeInfo(Entry<String, ItemMeltingOreRecipe> arg0) {
|
|
||||||
// TODO Auto-generated method stub
|
for(int i = 0; i < RecipeRegistry.meltingRecipes.size(); i++) {
|
||||||
return arg0.getValue().getOreName();
|
if(((ItemMeltingRecipe) RecipeRegistry.meltingRecipes.values().toArray()[i]).getFluid().getFluid().getName().equals(toFluid(fluid).getFluid().getName())) {
|
||||||
}
|
recipes.add(((ItemStack) RecipeRegistry.meltingRecipes.keySet().toArray()[i]));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static class Add extends BaseMapAddition<ItemStack, ItemMeltingRecipe> {
|
for(int i = 0; i < RecipeRegistry.meltingOreRecipes.size(); i++) {
|
||||||
public Add(ItemStack stack, ItemMeltingRecipe recipe) {
|
if(((ItemMeltingOreRecipe) RecipeRegistry.meltingOreRecipes.values().toArray()[i]).getFluid().getFluid().getName().equals(toFluid(fluid).getFluid().getName())) {
|
||||||
super(Melter.name, RecipeRegistry.meltingRecipes);
|
oreRecipes.add(((String) RecipeRegistry.meltingOreRecipes.keySet().toArray()[i]));
|
||||||
|
}
|
||||||
this.recipes.put(stack, recipe);
|
}
|
||||||
}
|
|
||||||
|
if(!recipes.isEmpty()) {
|
||||||
@Override
|
Map<ItemStack, ItemMeltingRecipe> map = new HashMap<ItemStack, ItemMeltingRecipe>();
|
||||||
protected String getRecipeInfo(Entry<ItemStack, ItemMeltingRecipe> arg0) {
|
for(int i = 0; i < recipes.size(); i++) {
|
||||||
// TODO Auto-generated method stub
|
map.put(recipes.get(i), RecipeRegistry.meltingRecipes.get(recipes.get(i)));
|
||||||
return LogHelper.getStackDescription(arg0.getValue().getStack());
|
}
|
||||||
}
|
MineTweakerAPI.apply(new Remove(map));
|
||||||
}
|
} else if(!oreRecipes.isEmpty()) {
|
||||||
|
Map<String, ItemMeltingOreRecipe> map = new HashMap<String, ItemMeltingOreRecipe>();
|
||||||
@ZenMethod
|
for(int i = 0; i < oreRecipes.size(); i++) {
|
||||||
public static void remove(ILiquidStack fluid) {
|
map.put(oreRecipes.get(i), RecipeRegistry.meltingOreRecipes.get(oreRecipes.get(i)));
|
||||||
List<ItemStack> recipes = new ArrayList<ItemStack>();
|
}
|
||||||
List<String> oreRecipes = new ArrayList<String>();
|
MineTweakerAPI.apply(new RemoveOre(map));
|
||||||
if (fluid == null) {
|
} else {
|
||||||
LogHelper.logError(String.format("Required parameters missing for %s Recipe.", name));
|
LogHelper.logWarning(String.format("No %s Recipe found for output %s. Command ignored!", Melter.name, fluid.toString()));
|
||||||
return;
|
}
|
||||||
}
|
|
||||||
|
}
|
||||||
for (int i = 0; i < RecipeRegistry.meltingRecipes.size(); i ++){
|
|
||||||
if (((ItemMeltingRecipe)RecipeRegistry.meltingRecipes.values().toArray()[i]).getFluid().getFluid().getName().equals(toFluid(fluid).getFluid().getName())){
|
private static class AddOre extends BaseMapAddition<String, ItemMeltingOreRecipe> {
|
||||||
recipes.add(((ItemStack)RecipeRegistry.meltingRecipes.keySet().toArray()[i]));
|
|
||||||
}
|
public AddOre(String stack, ItemMeltingOreRecipe recipe) {
|
||||||
}
|
super(Melter.name, RecipeRegistry.meltingOreRecipes);
|
||||||
|
|
||||||
for (int i = 0; i < RecipeRegistry.meltingOreRecipes.size(); i ++){
|
this.recipes.put(stack, recipe);
|
||||||
if (((ItemMeltingOreRecipe)RecipeRegistry.meltingOreRecipes.values().toArray()[i]).getFluid().getFluid().getName().equals(toFluid(fluid).getFluid().getName())){
|
}
|
||||||
oreRecipes.add(((String)RecipeRegistry.meltingOreRecipes.keySet().toArray()[i]));
|
|
||||||
}
|
@Override
|
||||||
}
|
public void apply() {
|
||||||
|
super.apply();
|
||||||
if (!recipes.isEmpty()) {
|
successful.forEach((stack, recipe) -> {
|
||||||
Map<ItemStack, ItemMeltingRecipe> map = new HashMap<ItemStack, ItemMeltingRecipe>();
|
MineTweakerAPI.getIjeiRecipeRegistry().addRecipe(new MeltingRecipeWrapper(recipe));
|
||||||
for (int i = 0; i < recipes.size(); i ++){
|
});
|
||||||
map.put(recipes.get(i), RecipeRegistry.meltingRecipes.get(recipes.get(i)));
|
}
|
||||||
}
|
|
||||||
MineTweakerAPI.apply(new Remove(map));
|
@Override
|
||||||
} else if (!oreRecipes.isEmpty()) {
|
public void undo() {
|
||||||
Map<String, ItemMeltingOreRecipe> map = new HashMap<String, ItemMeltingOreRecipe>();
|
super.undo();
|
||||||
for (int i = 0; i < oreRecipes.size(); i ++){
|
successful.forEach((stack, recipe) -> {
|
||||||
map.put(oreRecipes.get(i), RecipeRegistry.meltingOreRecipes.get(oreRecipes.get(i)));
|
MineTweakerAPI.getIjeiRecipeRegistry().removeRecipe(new MeltingRecipeWrapper(recipe));
|
||||||
}
|
});
|
||||||
MineTweakerAPI.apply(new RemoveOre(map));
|
}
|
||||||
} else {
|
|
||||||
LogHelper.logWarning(String.format("No %s Recipe found for output %s. Command ignored!", Melter.name,
|
@Override
|
||||||
fluid.toString()));
|
protected String getRecipeInfo(Entry<String, ItemMeltingOreRecipe> arg0) {
|
||||||
}
|
return arg0.getValue().getOreName();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class Remove extends BaseMapRemoval<ItemStack, ItemMeltingRecipe> {
|
private static class Add extends BaseMapAddition<ItemStack, ItemMeltingRecipe> {
|
||||||
|
|
||||||
public Remove(Map<ItemStack, ItemMeltingRecipe> recipes) {
|
public Add(ItemStack stack, ItemMeltingRecipe recipe) {
|
||||||
super(Melter.name, RecipeRegistry.meltingRecipes, recipes);
|
super(Melter.name, RecipeRegistry.meltingRecipes);
|
||||||
}
|
this.recipes.put(stack, recipe);
|
||||||
|
}
|
||||||
@Override
|
|
||||||
protected String getRecipeInfo(Entry<ItemStack, ItemMeltingRecipe> arg0) {
|
@Override
|
||||||
// TODO Auto-generated method stub
|
public void apply() {
|
||||||
return LogHelper.getStackDescription(arg0.getValue().getStack());
|
super.apply();
|
||||||
}
|
successful.forEach((stack, recipe) -> {
|
||||||
}
|
MineTweakerAPI.getIjeiRecipeRegistry().addRecipe(new MeltingRecipeWrapper(recipe));
|
||||||
|
});
|
||||||
private static class RemoveOre extends BaseMapRemoval<String, ItemMeltingOreRecipe> {
|
}
|
||||||
|
|
||||||
public RemoveOre(Map<String, ItemMeltingOreRecipe> recipes) {
|
@Override
|
||||||
super(Melter.name, RecipeRegistry.meltingOreRecipes, recipes);
|
public void undo() {
|
||||||
}
|
super.undo();
|
||||||
|
successful.forEach((stack, recipe) -> {
|
||||||
@Override
|
MineTweakerAPI.getIjeiRecipeRegistry().removeRecipe(new MeltingRecipeWrapper(recipe));
|
||||||
protected String getRecipeInfo(Entry<String, ItemMeltingOreRecipe> arg0) {
|
});
|
||||||
// TODO Auto-generated method stub
|
}
|
||||||
return arg0.getValue().getOreName();
|
|
||||||
}
|
@Override
|
||||||
}
|
protected String getRecipeInfo(Entry<ItemStack, ItemMeltingRecipe> arg0) {
|
||||||
|
return LogHelper.getStackDescription(arg0.getValue().getStack());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class Remove extends BaseMapRemoval<ItemStack, ItemMeltingRecipe> {
|
||||||
|
|
||||||
|
public Remove(Map<ItemStack, ItemMeltingRecipe> recipes) {
|
||||||
|
super(Melter.name, RecipeRegistry.meltingRecipes, recipes);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void apply() {
|
||||||
|
super.apply();
|
||||||
|
successful.forEach((stack, recipe) -> {
|
||||||
|
MineTweakerAPI.getIjeiRecipeRegistry().removeRecipe(new MeltingRecipeWrapper(recipe));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void undo() {
|
||||||
|
super.undo();
|
||||||
|
successful.forEach((stack, recipe) -> {
|
||||||
|
MineTweakerAPI.getIjeiRecipeRegistry().addRecipe(new MeltingRecipeWrapper(recipe));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected String getRecipeInfo(Entry<ItemStack, ItemMeltingRecipe> arg0) {
|
||||||
|
return LogHelper.getStackDescription(arg0.getValue().getStack());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class RemoveOre extends BaseMapRemoval<String, ItemMeltingOreRecipe> {
|
||||||
|
|
||||||
|
public RemoveOre(Map<String, ItemMeltingOreRecipe> recipes) {
|
||||||
|
super(Melter.name, RecipeRegistry.meltingOreRecipes, recipes);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void apply() {
|
||||||
|
super.apply();
|
||||||
|
successful.forEach((stack, recipe) -> {
|
||||||
|
MineTweakerAPI.getIjeiRecipeRegistry().removeRecipe(new MeltingRecipeWrapper(recipe));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void undo() {
|
||||||
|
super.undo();
|
||||||
|
successful.forEach((stack, recipe) -> {
|
||||||
|
MineTweakerAPI.getIjeiRecipeRegistry().addRecipe(new MeltingRecipeWrapper(recipe));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected String getRecipeInfo(Entry<String, ItemMeltingOreRecipe> arg0) {
|
||||||
|
return arg0.getValue().getOreName();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,107 +1,115 @@
|
||||||
package modtweaker.mods.embers.handlers;
|
package modtweaker.mods.embers.handlers;
|
||||||
|
|
||||||
import com.blamejared.mtlib.helpers.LogHelper;
|
import com.blamejared.mtlib.helpers.LogHelper;
|
||||||
import com.blamejared.mtlib.helpers.StackHelper;
|
import com.blamejared.mtlib.utils.*;
|
||||||
import com.blamejared.mtlib.utils.BaseListAddition;
|
|
||||||
import com.blamejared.mtlib.utils.BaseListRemoval;
|
|
||||||
import com.blamejared.mtlib.utils.BaseMapAddition;
|
|
||||||
import com.blamejared.mtlib.utils.BaseMapRemoval;
|
|
||||||
|
|
||||||
import minetweaker.MineTweakerAPI;
|
import minetweaker.MineTweakerAPI;
|
||||||
import minetweaker.api.item.IIngredient;
|
|
||||||
import minetweaker.api.item.IItemStack;
|
|
||||||
import minetweaker.api.liquid.ILiquidStack;
|
import minetweaker.api.liquid.ILiquidStack;
|
||||||
import minetweaker.api.oredict.IOreDictEntry;
|
|
||||||
import modtweaker.mods.embers.Embers;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
import stanhebben.zenscript.annotations.Optional;
|
import stanhebben.zenscript.annotations.*;
|
||||||
import stanhebben.zenscript.annotations.ZenClass;
|
import teamroots.embers.compat.jei.MixingRecipeWrapper;
|
||||||
import stanhebben.zenscript.annotations.ZenMethod;
|
import teamroots.embers.recipe.*;
|
||||||
import teamroots.embers.item.EnumStampType;
|
|
||||||
import teamroots.embers.recipe.FluidMixingRecipe;
|
|
||||||
import teamroots.embers.recipe.ItemMeltingOreRecipe;
|
|
||||||
import teamroots.embers.recipe.ItemMeltingRecipe;
|
|
||||||
import teamroots.embers.recipe.ItemStampingOreRecipe;
|
|
||||||
import teamroots.embers.recipe.ItemStampingRecipe;
|
|
||||||
import teamroots.embers.recipe.RecipeRegistry;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map.Entry;
|
|
||||||
|
|
||||||
import static com.blamejared.mtlib.helpers.InputHelper.*;
|
import static com.blamejared.mtlib.helpers.InputHelper.toFluid;
|
||||||
import static com.blamejared.mtlib.helpers.StackHelper.matches;
|
|
||||||
|
|
||||||
@ZenClass("mods.embers.Mixer")
|
@ZenClass("mods.embers.Mixer")
|
||||||
public class Mixer {
|
public class Mixer {
|
||||||
public static String name = "Embers Mixer";
|
|
||||||
|
public static String name = "Embers Mixer";
|
||||||
@ZenMethod
|
|
||||||
public static void addRecipe(ILiquidStack input1, ILiquidStack input2, ILiquidStack input3, ILiquidStack input4, ILiquidStack output) {
|
@ZenMethod
|
||||||
ArrayList<FluidStack> fluids = new ArrayList<FluidStack>();
|
public static void addRecipe(ILiquidStack input1, ILiquidStack input2, ILiquidStack input3, ILiquidStack input4, ILiquidStack output) {
|
||||||
if (input1 != null){
|
ArrayList<FluidStack> fluids = new ArrayList<>();
|
||||||
fluids.add(toFluid(input1));
|
if(input1 != null) {
|
||||||
}
|
fluids.add(toFluid(input1));
|
||||||
if (input2 != null){
|
}
|
||||||
fluids.add(toFluid(input2));
|
if(input2 != null) {
|
||||||
}
|
fluids.add(toFluid(input2));
|
||||||
if (input3 != null){
|
}
|
||||||
fluids.add(toFluid(input3));
|
if(input3 != null) {
|
||||||
}
|
fluids.add(toFluid(input3));
|
||||||
if (input4 != null){
|
}
|
||||||
fluids.add(toFluid(input4));
|
if(input4 != null) {
|
||||||
}
|
fluids.add(toFluid(input4));
|
||||||
MineTweakerAPI.apply(new Add(new FluidMixingRecipe(fluids.toArray(new FluidStack[fluids.size()]), toFluid(output))));
|
}
|
||||||
}
|
MineTweakerAPI.apply(new Add(new FluidMixingRecipe(fluids.toArray(new FluidStack[fluids.size()]), toFluid(output))));
|
||||||
|
}
|
||||||
private static class Add extends BaseListAddition<FluidMixingRecipe> {
|
|
||||||
public Add(FluidMixingRecipe recipe) {
|
|
||||||
super(Mixer.name, RecipeRegistry.mixingRecipes);
|
@ZenMethod
|
||||||
|
public static void remove(ILiquidStack output) {
|
||||||
this.recipes.add(recipe);
|
List<FluidMixingRecipe> recipes = new ArrayList<>();
|
||||||
}
|
|
||||||
|
for(int i = 0; i < RecipeRegistry.mixingRecipes.size(); i++) {
|
||||||
@Override
|
if(RecipeRegistry.mixingRecipes.get(i).output.getFluid().getName().equals(toFluid(output).getFluid().getName())) {
|
||||||
protected String getRecipeInfo(FluidMixingRecipe arg0) {
|
recipes.add(RecipeRegistry.mixingRecipes.get(i));
|
||||||
return LogHelper.getStackDescription(arg0.output);
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
if(!recipes.isEmpty()) {
|
||||||
@ZenMethod
|
for(int i = 0; i < recipes.size(); i++) {
|
||||||
public static void remove(ILiquidStack output) {
|
MineTweakerAPI.apply(new Remove(recipes.get(i)));
|
||||||
List<FluidMixingRecipe> recipes = new ArrayList<FluidMixingRecipe>();
|
}
|
||||||
|
} else {
|
||||||
for (int i = 0; i < RecipeRegistry.mixingRecipes.size(); i ++){
|
LogHelper.logWarning(String.format("No %s Recipe found for output %s. Command ignored!", Mixer.name, output.toString()));
|
||||||
if (RecipeRegistry.mixingRecipes.get(i).output.getFluid().getName().equals(toFluid(output).getFluid().getName())){
|
}
|
||||||
recipes.add(RecipeRegistry.mixingRecipes.get(i));
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
private static class Add extends BaseListAddition<FluidMixingRecipe> {
|
||||||
if (!recipes.isEmpty()) {
|
|
||||||
for (int i = 0; i < recipes.size(); i ++){
|
public Add(FluidMixingRecipe recipe) {
|
||||||
MineTweakerAPI.apply(new Remove(recipes.get(i)));
|
super(Mixer.name, RecipeRegistry.mixingRecipes);
|
||||||
}
|
this.recipes.add(recipe);
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
LogHelper.logWarning(String.format("No %s Recipe found for output %s. Command ignored!", Mixer.name,
|
@Override
|
||||||
output.toString()));
|
public void apply() {
|
||||||
}
|
super.apply();
|
||||||
|
successful.forEach(rec ->{
|
||||||
}
|
MineTweakerAPI.getIjeiRecipeRegistry().addRecipe(new MixingRecipeWrapper(rec));
|
||||||
|
});
|
||||||
private static class Remove extends BaseListRemoval<FluidMixingRecipe> {
|
}
|
||||||
|
|
||||||
public Remove(FluidMixingRecipe recipe) {
|
@Override
|
||||||
super(Mixer.name, RecipeRegistry.mixingRecipes);
|
public void undo() {
|
||||||
this.recipes.remove(recipe);
|
super.undo();
|
||||||
}
|
successful.forEach(rec ->{
|
||||||
|
MineTweakerAPI.getIjeiRecipeRegistry().removeRecipe(new MixingRecipeWrapper(rec));
|
||||||
@Override
|
});
|
||||||
protected String getRecipeInfo(FluidMixingRecipe arg0) {
|
}
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return LogHelper.getStackDescription(arg0.output);
|
@Override
|
||||||
}
|
protected String getRecipeInfo(FluidMixingRecipe arg0) {
|
||||||
}
|
return LogHelper.getStackDescription(arg0.output);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class Remove extends BaseListRemoval<FluidMixingRecipe> {
|
||||||
|
|
||||||
|
public Remove(FluidMixingRecipe recipe) {
|
||||||
|
super(Mixer.name, RecipeRegistry.mixingRecipes);
|
||||||
|
this.recipes.remove(recipe);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void apply() {
|
||||||
|
super.apply();
|
||||||
|
successful.forEach(rec ->{
|
||||||
|
MineTweakerAPI.getIjeiRecipeRegistry().removeRecipe(new MixingRecipeWrapper(rec));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void undo() {
|
||||||
|
super.undo();
|
||||||
|
successful.forEach(rec ->{
|
||||||
|
MineTweakerAPI.getIjeiRecipeRegistry().addRecipe(new MixingRecipeWrapper(rec));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected String getRecipeInfo(FluidMixingRecipe arg0) {
|
||||||
|
return LogHelper.getStackDescription(arg0.output);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,153 +1,199 @@
|
||||||
package modtweaker.mods.embers.handlers;
|
package modtweaker.mods.embers.handlers;
|
||||||
|
|
||||||
import com.blamejared.mtlib.helpers.LogHelper;
|
import com.blamejared.mtlib.helpers.LogHelper;
|
||||||
import com.blamejared.mtlib.helpers.StackHelper;
|
import com.blamejared.mtlib.utils.*;
|
||||||
import com.blamejared.mtlib.utils.BaseListAddition;
|
|
||||||
import com.blamejared.mtlib.utils.BaseListRemoval;
|
|
||||||
import com.blamejared.mtlib.utils.BaseMapAddition;
|
|
||||||
import com.blamejared.mtlib.utils.BaseMapRemoval;
|
|
||||||
|
|
||||||
import minetweaker.MineTweakerAPI;
|
import minetweaker.MineTweakerAPI;
|
||||||
import minetweaker.api.item.IIngredient;
|
|
||||||
import minetweaker.api.item.IItemStack;
|
import minetweaker.api.item.IItemStack;
|
||||||
import minetweaker.api.liquid.ILiquidStack;
|
import minetweaker.api.liquid.ILiquidStack;
|
||||||
import minetweaker.api.oredict.IOreDictEntry;
|
import minetweaker.api.oredict.IOreDictEntry;
|
||||||
import modtweaker.mods.embers.Embers;
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.oredict.OreDictionary;
|
import stanhebben.zenscript.annotations.*;
|
||||||
import stanhebben.zenscript.annotations.Optional;
|
import teamroots.embers.compat.jei.StampingRecipeWrapper;
|
||||||
import stanhebben.zenscript.annotations.ZenClass;
|
|
||||||
import stanhebben.zenscript.annotations.ZenMethod;
|
|
||||||
import teamroots.embers.item.EnumStampType;
|
import teamroots.embers.item.EnumStampType;
|
||||||
import teamroots.embers.recipe.ItemMeltingOreRecipe;
|
import teamroots.embers.recipe.*;
|
||||||
import teamroots.embers.recipe.ItemMeltingRecipe;
|
|
||||||
import teamroots.embers.recipe.ItemStampingOreRecipe;
|
|
||||||
import teamroots.embers.recipe.ItemStampingRecipe;
|
|
||||||
import teamroots.embers.recipe.RecipeRegistry;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map.Entry;
|
|
||||||
|
|
||||||
import static com.blamejared.mtlib.helpers.InputHelper.*;
|
import static com.blamejared.mtlib.helpers.InputHelper.*;
|
||||||
import static com.blamejared.mtlib.helpers.StackHelper.matches;
|
|
||||||
|
|
||||||
@ZenClass("mods.embers.Stamper")
|
@ZenClass("mods.embers.Stamper")
|
||||||
public class Stamper {
|
public class Stamper {
|
||||||
public static String name = "Embers Stamper";
|
|
||||||
|
public static String name = "Embers Stamper";
|
||||||
public static EnumStampType getStampFromString(String string){
|
|
||||||
switch (string){
|
|
||||||
default:
|
@ZenMethod
|
||||||
return EnumStampType.TYPE_NULL;
|
public static void addRecipe(IItemStack itemInput, ILiquidStack fluidInput, String stampType, IItemStack result, boolean matchMeta, boolean matchNBT) {
|
||||||
case "flat":
|
MineTweakerAPI.apply(new Add(new ItemStampingRecipe(toStack(itemInput), toFluid(fluidInput), getStampFromString(stampType), toStack(result), matchMeta, matchNBT)));
|
||||||
return EnumStampType.TYPE_FLAT;
|
}
|
||||||
case "bar":
|
|
||||||
return EnumStampType.TYPE_BAR;
|
@ZenMethod
|
||||||
case "plate":
|
public static void addRecipe(IOreDictEntry key, ILiquidStack fluidInput, String stampType, IItemStack result) {
|
||||||
return EnumStampType.TYPE_PLATE;
|
MineTweakerAPI.apply(new AddOre(new ItemStampingOreRecipe(key.getName(), toFluid(fluidInput), getStampFromString(stampType), toStack(result), false, false)));
|
||||||
case "null":
|
}
|
||||||
return EnumStampType.TYPE_NULL;
|
|
||||||
}
|
@ZenMethod
|
||||||
}
|
public static void remove(IItemStack item) {
|
||||||
|
List<ItemStampingRecipe> recipes = new ArrayList<ItemStampingRecipe>();
|
||||||
@ZenMethod
|
List<ItemStampingOreRecipe> oreRecipes = new ArrayList<ItemStampingOreRecipe>();
|
||||||
public static void addRecipe(IItemStack itemInput, ILiquidStack fluidInput, String stampType, IItemStack result, boolean matchMeta, boolean matchNBT) {
|
|
||||||
MineTweakerAPI.apply(new Add(new ItemStampingRecipe(toStack(itemInput), toFluid(fluidInput), getStampFromString(stampType), toStack(result), matchMeta, matchNBT)));
|
if(item == null) {
|
||||||
}
|
LogHelper.logError(String.format("Required parameters missing for %s Recipe.", name));
|
||||||
|
return;
|
||||||
@ZenMethod
|
}
|
||||||
public static void addRecipe(IOreDictEntry key, ILiquidStack fluidInput, String stampType, IItemStack result) {
|
|
||||||
MineTweakerAPI.apply(new AddOre(new ItemStampingOreRecipe(key.getName(), toFluid(fluidInput), getStampFromString(stampType), toStack(result), false, false)));
|
for(int i = 0; i < RecipeRegistry.stampingRecipes.size(); i++) {
|
||||||
}
|
if(ItemStack.areItemsEqual(RecipeRegistry.stampingRecipes.get(i).result, toStack(item))) {
|
||||||
|
recipes.add(RecipeRegistry.stampingRecipes.get(i));
|
||||||
|
}
|
||||||
private static class AddOre extends BaseListAddition<ItemStampingOreRecipe> {
|
}
|
||||||
public AddOre(ItemStampingOreRecipe recipe) {
|
|
||||||
super(Stamper.name, RecipeRegistry.stampingOreRecipes);
|
for(int i = 0; i < RecipeRegistry.stampingOreRecipes.size(); i++) {
|
||||||
|
if(ItemStack.areItemsEqual(RecipeRegistry.stampingOreRecipes.get(i).result, toStack(item))) {
|
||||||
this.recipes.add(recipe);
|
oreRecipes.add(RecipeRegistry.stampingOreRecipes.get(i));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
@Override
|
|
||||||
protected String getRecipeInfo(ItemStampingOreRecipe arg0) {
|
if(!recipes.isEmpty()) {
|
||||||
// TODO Auto-generated method stub
|
MineTweakerAPI.apply(new Remove(recipes));
|
||||||
return arg0.getOre();
|
} else if(!oreRecipes.isEmpty()) {
|
||||||
}
|
MineTweakerAPI.apply(new RemoveOre(oreRecipes));
|
||||||
}
|
} else {
|
||||||
|
LogHelper.logWarning(String.format("No %s Recipe found for output %s. Command ignored!", Stamper.name, item.toString()));
|
||||||
|
}
|
||||||
private static class Add extends BaseListAddition<ItemStampingRecipe> {
|
|
||||||
public Add(ItemStampingRecipe recipe) {
|
}
|
||||||
super(Stamper.name, RecipeRegistry.stampingRecipes);
|
|
||||||
|
private static class AddOre extends BaseListAddition<ItemStampingOreRecipe> {
|
||||||
this.recipes.add(recipe);
|
|
||||||
}
|
public AddOre(ItemStampingOreRecipe recipe) {
|
||||||
|
super(Stamper.name, RecipeRegistry.stampingOreRecipes);
|
||||||
@Override
|
|
||||||
protected String getRecipeInfo(ItemStampingRecipe arg0) {
|
this.recipes.add(recipe);
|
||||||
return LogHelper.getStackDescription(arg0.getStack());
|
}
|
||||||
}
|
|
||||||
}
|
@Override
|
||||||
|
public void apply() {
|
||||||
@ZenMethod
|
super.apply();
|
||||||
public static void remove(IItemStack item) {
|
successful.forEach(rec -> {
|
||||||
List<ItemStampingRecipe> recipes = new ArrayList<ItemStampingRecipe>();
|
MineTweakerAPI.getIjeiRecipeRegistry().addRecipe(new StampingRecipeWrapper(rec));
|
||||||
List<ItemStampingOreRecipe> oreRecipes = new ArrayList<ItemStampingOreRecipe>();
|
});
|
||||||
|
}
|
||||||
if (item == null) {
|
|
||||||
LogHelper.logError(String.format("Required parameters missing for %s Recipe.", name));
|
@Override
|
||||||
return;
|
public void undo() {
|
||||||
}
|
super.undo();
|
||||||
|
successful.forEach(rec -> {
|
||||||
for (int i = 0; i < RecipeRegistry.stampingRecipes.size(); i ++){
|
MineTweakerAPI.getIjeiRecipeRegistry().removeRecipe(new StampingRecipeWrapper(rec));
|
||||||
if (ItemStack.areItemsEqual(RecipeRegistry.stampingRecipes.get(i).result,toStack(item))){
|
});
|
||||||
recipes.add(RecipeRegistry.stampingRecipes.get(i));
|
}
|
||||||
}
|
|
||||||
}
|
@Override
|
||||||
|
protected String getRecipeInfo(ItemStampingOreRecipe arg0) {
|
||||||
for (int i = 0; i < RecipeRegistry.stampingOreRecipes.size(); i ++){
|
return arg0.getOre();
|
||||||
if (ItemStack.areItemsEqual(RecipeRegistry.stampingOreRecipes.get(i).result,toStack(item))){
|
}
|
||||||
oreRecipes.add(RecipeRegistry.stampingOreRecipes.get(i));
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
private static class Add extends BaseListAddition<ItemStampingRecipe> {
|
||||||
if (!recipes.isEmpty()) {
|
|
||||||
MineTweakerAPI.apply(new Remove(recipes));
|
public Add(ItemStampingRecipe recipe) {
|
||||||
}
|
super(Stamper.name, RecipeRegistry.stampingRecipes);
|
||||||
else if (!oreRecipes.isEmpty()) {
|
|
||||||
MineTweakerAPI.apply(new RemoveOre(oreRecipes));
|
this.recipes.add(recipe);
|
||||||
} else {
|
}
|
||||||
LogHelper.logWarning(String.format("No %s Recipe found for output %s. Command ignored!", Stamper.name,
|
|
||||||
item.toString()));
|
@Override
|
||||||
}
|
public void apply() {
|
||||||
|
super.apply();
|
||||||
}
|
successful.forEach(rec -> {
|
||||||
|
MineTweakerAPI.getIjeiRecipeRegistry().addRecipe(new StampingRecipeWrapper(rec));
|
||||||
private static class Remove extends BaseListRemoval<ItemStampingRecipe> {
|
});
|
||||||
|
}
|
||||||
public Remove(List<ItemStampingRecipe> recipes) {
|
|
||||||
super(Stamper.name, RecipeRegistry.stampingRecipes, recipes);
|
@Override
|
||||||
}
|
public void undo() {
|
||||||
|
super.undo();
|
||||||
@Override
|
successful.forEach(rec -> {
|
||||||
protected String getRecipeInfo(ItemStampingRecipe arg0) {
|
MineTweakerAPI.getIjeiRecipeRegistry().removeRecipe(new StampingRecipeWrapper(rec));
|
||||||
// TODO Auto-generated method stub
|
});
|
||||||
return LogHelper.getStackDescription(arg0.getStack());
|
}
|
||||||
}
|
|
||||||
}
|
@Override
|
||||||
|
protected String getRecipeInfo(ItemStampingRecipe arg0) {
|
||||||
private static class RemoveOre extends BaseListRemoval<ItemStampingOreRecipe> {
|
return LogHelper.getStackDescription(arg0.getStack());
|
||||||
|
}
|
||||||
public RemoveOre(List<ItemStampingOreRecipe> recipes) {
|
}
|
||||||
super(Stamper.name, RecipeRegistry.stampingOreRecipes, recipes);
|
|
||||||
}
|
private static class Remove extends BaseListRemoval<ItemStampingRecipe> {
|
||||||
|
|
||||||
@Override
|
public Remove(List<ItemStampingRecipe> recipes) {
|
||||||
protected String getRecipeInfo(ItemStampingOreRecipe arg0) {
|
super(Stamper.name, RecipeRegistry.stampingRecipes, recipes);
|
||||||
// TODO Auto-generated method stub
|
}
|
||||||
return arg0.getOre();
|
|
||||||
}
|
@Override
|
||||||
}
|
public void apply() {
|
||||||
|
super.apply();
|
||||||
|
successful.forEach(rec -> {
|
||||||
|
MineTweakerAPI.getIjeiRecipeRegistry().removeRecipe(new StampingRecipeWrapper(rec));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void undo() {
|
||||||
|
super.undo();
|
||||||
|
successful.forEach(rec -> {
|
||||||
|
MineTweakerAPI.getIjeiRecipeRegistry().addRecipe(new StampingRecipeWrapper(rec));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getRecipeInfo(ItemStampingRecipe arg0) {
|
||||||
|
return LogHelper.getStackDescription(arg0.getStack());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class RemoveOre extends BaseListRemoval<ItemStampingOreRecipe> {
|
||||||
|
|
||||||
|
public RemoveOre(List<ItemStampingOreRecipe> recipes) {
|
||||||
|
super(Stamper.name, RecipeRegistry.stampingOreRecipes, recipes);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void apply() {
|
||||||
|
super.apply();
|
||||||
|
successful.forEach(rec -> {
|
||||||
|
MineTweakerAPI.getIjeiRecipeRegistry().removeRecipe(new StampingRecipeWrapper(rec));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void undo() {
|
||||||
|
super.undo();
|
||||||
|
successful.forEach(rec -> {
|
||||||
|
MineTweakerAPI.getIjeiRecipeRegistry().addRecipe(new StampingRecipeWrapper(rec));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getRecipeInfo(ItemStampingOreRecipe arg0) {
|
||||||
|
return arg0.getOre();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static EnumStampType getStampFromString(String string) {
|
||||||
|
switch(string) {
|
||||||
|
default:
|
||||||
|
return EnumStampType.TYPE_NULL;
|
||||||
|
case "flat":
|
||||||
|
return EnumStampType.TYPE_FLAT;
|
||||||
|
case "bar":
|
||||||
|
return EnumStampType.TYPE_BAR;
|
||||||
|
case "plate":
|
||||||
|
return EnumStampType.TYPE_PLATE;
|
||||||
|
case "null":
|
||||||
|
return EnumStampType.TYPE_NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue