Merge pull request #392 from elucent/master

Embers support.
This commit is contained in:
Jared 2016-12-01 15:51:56 +02:00 committed by GitHub
commit 518dddcc88
6 changed files with 425 additions and 1 deletions

View file

@ -13,6 +13,7 @@ import modtweaker.mods.forestry.Forestry;
import modtweaker.mods.randomthings.RandomThings;
import modtweaker.mods.refinedstorage.RefinedStorage;
import modtweaker.mods.tconstruct.TConstruct;
import modtweaker.mods.embers.Embers;
import modtweaker.proxy.CommonProxy;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.*;
@ -52,6 +53,7 @@ public class ModTweaker {
TweakerPlugin.register("BloodMagic", BloodMagic.class);
TweakerPlugin.register("actuallyadditions", ActuallyAdditions.class);
TweakerPlugin.register("refinedstorage", RefinedStorage.class);
TweakerPlugin.register("embers", Embers.class);
TweakerPlugin.register("ExtraUtils2", ExtraUtilities.class);
TweakerPlugin.register("appliedenergistics2", AppliedEnergistics.class);
@ -80,4 +82,4 @@ public class ModTweaker {
proxy.registerCommands();
}
}
}

View file

@ -0,0 +1,19 @@
package modtweaker.mods.embers;
import minetweaker.MineTweakerAPI;
import modtweaker.mods.actuallyadditions.handlers.AtomicReconstructor;
import modtweaker.mods.actuallyadditions.handlers.CoffeeMaker;
import modtweaker.mods.actuallyadditions.handlers.Compost;
import modtweaker.mods.actuallyadditions.handlers.Crusher;
import modtweaker.mods.actuallyadditions.handlers.Empowerer;
import modtweaker.mods.embers.handlers.Melter;
import modtweaker.mods.embers.handlers.Mixer;
import modtweaker.mods.embers.handlers.Stamper;
public class Embers {
public Embers() {
MineTweakerAPI.registerClass(Melter.class);
MineTweakerAPI.registerClass(Stamper.class);
MineTweakerAPI.registerClass(Mixer.class);
}
}

View file

@ -0,0 +1,143 @@
package modtweaker.mods.embers.handlers;
import com.blamejared.mtlib.helpers.LogHelper;
import com.blamejared.mtlib.helpers.StackHelper;
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.api.item.IIngredient;
import minetweaker.api.item.IItemStack;
import minetweaker.api.liquid.ILiquidStack;
import minetweaker.api.oredict.IOreDictEntry;
import modtweaker.mods.embers.Embers;
import net.minecraft.item.ItemStack;
import stanhebben.zenscript.annotations.Optional;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenMethod;
import teamroots.embers.recipe.ItemMeltingOreRecipe;
import teamroots.embers.recipe.ItemMeltingRecipe;
import teamroots.embers.recipe.RecipeRegistry;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import static com.blamejared.mtlib.helpers.InputHelper.*;
import static com.blamejared.mtlib.helpers.StackHelper.matches;
@ZenClass("mods.embers.Melter")
public class Melter {
public static String name = "Embers Melter";
@ZenMethod
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) {
MineTweakerAPI.apply(new AddOre(key.getName(), new ItemMeltingOreRecipe(key.getName(),toFluid(outputOne))));
}
private static class AddOre extends BaseMapAddition<String, ItemMeltingOreRecipe> {
public AddOre(String stack, ItemMeltingOreRecipe recipe) {
super(Melter.name, RecipeRegistry.meltingOreRecipes);
this.recipes.put(stack, recipe);
}
@Override
protected String getRecipeInfo(Entry<String, ItemMeltingOreRecipe> arg0) {
// TODO Auto-generated method stub
return arg0.getValue().getOreName();
}
}
private static class Add extends BaseMapAddition<ItemStack, ItemMeltingRecipe> {
public Add(ItemStack stack, ItemMeltingRecipe recipe) {
super(Melter.name, RecipeRegistry.meltingRecipes);
this.recipes.put(stack, recipe);
}
@Override
protected String getRecipeInfo(Entry<ItemStack, ItemMeltingRecipe> arg0) {
// TODO Auto-generated method stub
return LogHelper.getStackDescription(arg0.getValue().getStack());
}
}
@ZenMethod
public static void remove(ILiquidStack fluid) {
List<ItemStack> recipes = new ArrayList<ItemStack>();
List<String> oreRecipes = new ArrayList<String>();
if (fluid == null) {
LogHelper.logError(String.format("Required parameters missing for %s Recipe.", name));
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())){
recipes.add(((ItemStack)RecipeRegistry.meltingRecipes.keySet().toArray()[i]));
}
}
for (int i = 0; i < RecipeRegistry.meltingOreRecipes.size(); i ++){
if (((ItemMeltingOreRecipe)RecipeRegistry.meltingOreRecipes.values().toArray()[i]).getFluid().getFluid().getName().equals(toFluid(fluid).getFluid().getName())){
oreRecipes.add(((String)RecipeRegistry.meltingOreRecipes.keySet().toArray()[i]));
}
}
if (!recipes.isEmpty()) {
Map<ItemStack, ItemMeltingRecipe> map = new HashMap<ItemStack, ItemMeltingRecipe>();
for (int i = 0; i < recipes.size(); i ++){
map.put(recipes.get(i), RecipeRegistry.meltingRecipes.get(recipes.get(i)));
}
MineTweakerAPI.apply(new Remove(map));
} else if (!oreRecipes.isEmpty()) {
Map<String, ItemMeltingOreRecipe> map = new HashMap<String, ItemMeltingOreRecipe>();
for (int i = 0; i < oreRecipes.size(); i ++){
map.put(oreRecipes.get(i), RecipeRegistry.meltingOreRecipes.get(oreRecipes.get(i)));
}
MineTweakerAPI.apply(new RemoveOre(map));
} else {
LogHelper.logWarning(String.format("No %s Recipe found for output %s. Command ignored!", Melter.name,
fluid.toString()));
}
}
private static class Remove extends BaseMapRemoval<ItemStack, ItemMeltingRecipe> {
public Remove(Map<ItemStack, ItemMeltingRecipe> recipes) {
super(Melter.name, RecipeRegistry.meltingRecipes, recipes);
}
@Override
protected String getRecipeInfo(Entry<ItemStack, ItemMeltingRecipe> arg0) {
// TODO Auto-generated method stub
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
protected String getRecipeInfo(Entry<String, ItemMeltingOreRecipe> arg0) {
// TODO Auto-generated method stub
return arg0.getValue().getOreName();
}
}
}

View file

@ -0,0 +1,107 @@
package modtweaker.mods.embers.handlers;
import com.blamejared.mtlib.helpers.LogHelper;
import com.blamejared.mtlib.helpers.StackHelper;
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.api.item.IIngredient;
import minetweaker.api.item.IItemStack;
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 stanhebben.zenscript.annotations.Optional;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenMethod;
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.LinkedList;
import java.util.List;
import java.util.Map.Entry;
import static com.blamejared.mtlib.helpers.InputHelper.*;
import static com.blamejared.mtlib.helpers.StackHelper.matches;
@ZenClass("mods.embers.Mixer")
public class Mixer {
public static String name = "Embers Mixer";
@ZenMethod
public static void addRecipe(ILiquidStack input1, ILiquidStack input2, ILiquidStack input3, ILiquidStack input4, ILiquidStack output) {
ArrayList<FluidStack> fluids = new ArrayList<FluidStack>();
if (input1 != null){
fluids.add(toFluid(input1));
}
if (input2 != null){
fluids.add(toFluid(input2));
}
if (input3 != null){
fluids.add(toFluid(input3));
}
if (input4 != null){
fluids.add(toFluid(input4));
}
MineTweakerAPI.apply(new Add(new FluidMixingRecipe(fluids.toArray(new FluidStack[]{null,null,null,null}), toFluid(output))));
}
private static class Add extends BaseListAddition<FluidMixingRecipe> {
public Add(FluidMixingRecipe recipe) {
super(Mixer.name, RecipeRegistry.mixingRecipes);
this.recipes.add(recipe);
}
@Override
protected String getRecipeInfo(FluidMixingRecipe arg0) {
return LogHelper.getStackDescription(arg0.output);
}
}
@ZenMethod
public static void remove(ILiquidStack output) {
List<FluidMixingRecipe> recipes = new ArrayList<FluidMixingRecipe>();
for (int i = 0; i < RecipeRegistry.mixingRecipes.size(); i ++){
if (RecipeRegistry.mixingRecipes.get(i).output.getFluid().getName().equals(toFluid(output).getFluid().getName())){
recipes.add(RecipeRegistry.mixingRecipes.get(i));
}
}
if (!recipes.isEmpty()) {
for (int i = 0; i < recipes.size(); i ++){
MineTweakerAPI.apply(new Remove(recipes.get(i)));
}
}
else {
LogHelper.logWarning(String.format("No %s Recipe found for output %s. Command ignored!", Mixer.name,
output.toString()));
}
}
private static class Remove extends BaseListRemoval<FluidMixingRecipe> {
public Remove(FluidMixingRecipe recipe) {
super(Mixer.name, RecipeRegistry.mixingRecipes);
this.recipes.remove(recipe);
}
@Override
protected String getRecipeInfo(FluidMixingRecipe arg0) {
// TODO Auto-generated method stub
return LogHelper.getStackDescription(arg0.output);
}
}
}

View file

@ -0,0 +1,153 @@
package modtweaker.mods.embers.handlers;
import com.blamejared.mtlib.helpers.LogHelper;
import com.blamejared.mtlib.helpers.StackHelper;
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.api.item.IIngredient;
import minetweaker.api.item.IItemStack;
import minetweaker.api.liquid.ILiquidStack;
import minetweaker.api.oredict.IOreDictEntry;
import modtweaker.mods.embers.Embers;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
import stanhebben.zenscript.annotations.Optional;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenMethod;
import teamroots.embers.item.EnumStampType;
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.LinkedList;
import java.util.List;
import java.util.Map.Entry;
import static com.blamejared.mtlib.helpers.InputHelper.*;
import static com.blamejared.mtlib.helpers.StackHelper.matches;
@ZenClass("mods.embers.Stamper")
public class Stamper {
public static String name = "Embers Stamper";
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;
}
}
@ZenMethod
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)));
}
@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)));
}
private static class AddOre extends BaseListAddition<ItemStampingOreRecipe> {
public AddOre(ItemStampingOreRecipe recipe) {
super(Stamper.name, RecipeRegistry.stampingOreRecipes);
this.recipes.add(recipe);
}
@Override
protected String getRecipeInfo(ItemStampingOreRecipe arg0) {
// TODO Auto-generated method stub
return arg0.getOre();
}
}
private static class Add extends BaseListAddition<ItemStampingRecipe> {
public Add(ItemStampingRecipe recipe) {
super(Stamper.name, RecipeRegistry.stampingRecipes);
this.recipes.add(recipe);
}
@Override
protected String getRecipeInfo(ItemStampingRecipe arg0) {
return LogHelper.getStackDescription(arg0.getStack());
}
}
@ZenMethod
public static void remove(IItemStack item) {
List<ItemStampingRecipe> recipes = new ArrayList<ItemStampingRecipe>();
List<ItemStampingOreRecipe> oreRecipes = new ArrayList<ItemStampingOreRecipe>();
if (item == null) {
LogHelper.logError(String.format("Required parameters missing for %s Recipe.", name));
return;
}
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));
}
}
for (int i = 0; i < RecipeRegistry.stampingOreRecipes.size(); i ++){
if (ItemStack.areItemsEqual(RecipeRegistry.stampingOreRecipes.get(i).result,toStack(item))){
oreRecipes.add(RecipeRegistry.stampingOreRecipes.get(i));
}
}
if (!recipes.isEmpty()) {
MineTweakerAPI.apply(new Remove(recipes));
}
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 Remove extends BaseListRemoval<ItemStampingRecipe> {
public Remove(List<ItemStampingRecipe> recipes) {
super(Stamper.name, RecipeRegistry.stampingRecipes, recipes);
}
@Override
protected String getRecipeInfo(ItemStampingRecipe arg0) {
// TODO Auto-generated method stub
return LogHelper.getStackDescription(arg0.getStack());
}
}
private static class RemoveOre extends BaseListRemoval<ItemStampingOreRecipe> {
public RemoveOre(List<ItemStampingOreRecipe> recipes) {
super(Stamper.name, RecipeRegistry.stampingOreRecipes, recipes);
}
@Override
protected String getRecipeInfo(ItemStampingOreRecipe arg0) {
// TODO Auto-generated method stub
return arg0.getOre();
}
}
}