Added CraftTweaker integration

This commit is contained in:
TheDarkDnKTv 2022-05-06 04:00:27 +09:00
parent 996e38c9f3
commit 13acbced03
54 changed files with 722 additions and 197 deletions

View file

@ -1,5 +1,6 @@
package gregtechmod;
import gregtechmod.api.GTConsts;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.enums.Element;
import gregtechmod.api.enums.GT_ConfigCategories;
@ -61,6 +62,7 @@ import gregtechmod.common.tileentities.deprecated.GT_TileEntity_PlayerDetector;
import gregtechmod.common.tileentities.deprecated.GT_TileEntity_Sonictron;
import gregtechmod.common.tileentities.deprecated.GT_TileEntity_Superconductor;
import gregtechmod.integration.crafttweaker.GregTechTweaker;
import gregtechmod.loaders.load.GT_CoverBehaviorLoader;
import gregtechmod.loaders.load.GT_ItemIterator;
import gregtechmod.loaders.load.GT_LiquidAndFuelLoader;
@ -542,6 +544,11 @@ public class GT_Mod implements IGT_Mod {
RecipeSorter.register("gregtech_addon:shapeless" , GT_Shapeless_Recipe.class , RecipeSorter.Category.SHAPELESS , "after:minecraft:shapeless");
RecipeSorter.register("gregtech_addon:shapeless_nbt_keeping" , GT_Shapeless_NBT_Keeping_Recipe.class , RecipeSorter.Category.SHAPELESS , "after:gregtech_addon:shapeless");
// CraftTweaker (MineTweaker3) Integration
if (Loader.isModLoaded(GTConsts.CT_MODID)) {
GregTechTweaker.init();
}
GregTech_API.sPreloadFinished = true;
GT_Log.log.info("Preload-Phase finished!");
for (Runnable tRunnable : GregTech_API.sAfterGTPreload) {

View file

@ -0,0 +1,7 @@
package gregtechmod.api;
public final class GTConsts {
public final static String CT_MODID = "MineTweaker3";
}

View file

@ -127,7 +127,6 @@ public class Recipe {
/**
* Will check if recipe matches for shaped recipe
* @param actionPerfomer will calls every loop, will put in a ItemStack of slot and amount needed for recipe
*/
private boolean checkShaped(boolean decrease, List<ItemStack> inputs, List<FluidStack> fluidInputs) {
for (int i = 0; i < this.itemInputs.size(); i++) {
@ -268,6 +267,10 @@ public class Recipe {
return metadata.get(name);
}
public List<String> getMetaKeys() {
return new ArrayList<>(metadata.keySet());
}
/**
* @return list containing all possible outputs
*/

View file

@ -1,10 +1,13 @@
package gregtechmod.api.recipe;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import gregtechmod.api.enums.Materials;
import gregtechmod.api.enums.OrePrefixes;
import gregtechmod.api.util.GT_ItsNotMyFaultException;
import gregtechmod.api.util.GT_Utility;
import net.minecraft.item.ItemStack;
@ -19,6 +22,7 @@ public abstract class RecipeFactory<F extends RecipeFactory<F>> {
public static final int MAX_CHANCE = 100_00; // i.m 100.00%
protected RecipeMap<F> map;
protected Map<String, Object> metadata;
protected List<ItemStack> outputItems;
protected List<ChancedOutput> chancedOutput;
protected List<Ingredient> inputItems;
@ -37,6 +41,7 @@ public abstract class RecipeFactory<F extends RecipeFactory<F>> {
this.inputItems = new ArrayList<>();
this.inputFluids = new ArrayList<>();
this.outputFluids = new ArrayList<>();
this.metadata = new HashMap<>();
this.reset();
}
@ -53,6 +58,7 @@ public abstract class RecipeFactory<F extends RecipeFactory<F>> {
inputItems.clear();
inputFluids.clear();
outputFluids.clear();
metadata.clear();
EUt = -1;
startEU = 0;
duration = -1;
@ -201,6 +207,11 @@ public abstract class RecipeFactory<F extends RecipeFactory<F>> {
return this;
}
public RecipeFactory<F> withMeta(String key, Object value) {
this.metadata.put(key, value);
return this;
}
/**
* Chance is in format of int => 9575 == 95.75%, no more than 2 letters after comma
*/

View file

@ -1,27 +1,32 @@
package gregtechmod.api.recipe;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.*;
import java.util.function.IntConsumer;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import com.google.common.collect.Lists;
import cpw.mods.fml.common.Optional.Method;
import gregtechmod.api.GTConsts;
import gregtechmod.api.util.GT_RecipeException;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.integration.crafttweaker.recipe.CTRecipe;
import gregtechmod.integration.crafttweaker.recipe.CTRecipeFactory;
import minetweaker.api.item.IItemStack;
import minetweaker.api.liquid.ILiquidStack;
import minetweaker.api.minecraft.MineTweakerMC;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenGetter;
import stanhebben.zenscript.annotations.ZenMethod;
/**
* Unificated map of recipes for GT machines
* @author TheDarkDnKTv
*
*/
@ZenClass("mods.gregtechmod.recipe.RecipeMap")
public class RecipeMap<F extends RecipeFactory<F>> {
protected final transient Map<Integer, List<Recipe>> MAPPINGS = new HashMap<>();
@ -200,6 +205,85 @@ public class RecipeMap<F extends RecipeFactory<F>> {
return this.recipeList.remove(recipe);
}
/*** CRAFT TWEAKER START ***/
@ZenMethod("getRecipes")
@Method(modid = GTConsts.CT_MODID)
public List<CTRecipe> getRecipesCT() {
return this.recipeList.stream()
.map(CTRecipe::new)
.collect(Collectors.toList());
}
@ZenMethod("findRecipe")
@Method(modid = GTConsts.CT_MODID)
public CTRecipe findRecipeCT(IItemStack[] itemsIn, ILiquidStack[] liquidsIn) {
List<ItemStack> items = Lists.newArrayList(MineTweakerMC.getItemStacks(itemsIn));
List<FluidStack> fluids = Lists.newArrayList(MineTweakerMC.getLiquidStacks(liquidsIn));
Recipe recipe = this.findRecipe(items, fluids, meta -> true);
return recipe == null ? null : new CTRecipe(recipe);
}
@ZenMethod("register")
@Method(modid = GTConsts.CT_MODID)
public boolean registerCT(CTRecipe recipe) {
return this.register(recipe.backingRecipe);
}
@ZenMethod
@Method(modid = GTConsts.CT_MODID)
public boolean remove(CTRecipe recipe) {
return this.remove(recipe.backingRecipe);
}
@ZenMethod("factory")
@Method(modid = GTConsts.CT_MODID)
public CTRecipeFactory factoryCT() {
return new CTRecipeFactory(this.factory());
}
@ZenGetter("minInputs")
public int getMinInputs() {
return minInputs;
}
@ZenGetter("maxInputs")
public int getMaxInputs() {
return maxInputs;
}
@ZenGetter("minOutputs")
public int getMinOutputs() {
return minOutputs;
}
@ZenGetter("maxOutputs")
public int getMaxOutputs() {
return maxOutputs;
}
@ZenGetter("minFluidInputs")
public int getMinFluidInputs() {
return minFluidInputs;
}
@ZenGetter("maxFluidInputs")
public int getMaxFluidInputs() {
return maxFluidInputs;
}
@ZenGetter("minFluidOutputs")
public int getMinFluidOutputs() {
return minFluidOutputs;
}
@ZenGetter("maxFluidOutputs")
public int getMaxFluidOutputs() {
return maxFluidOutputs;
}
/*** CRAFT TWEAKER END ***/
@Override
public boolean equals(Object o) {
return o instanceof RecipeMap && o == this;

View file

@ -37,12 +37,12 @@ public class GT_RecipeAdder implements IGT_RecipeAdder {
@Override
public RecipeMap<? extends RecipeFactory<?>> blastRecipes() {
return RecipeMaps.BLAST_FURNANCE;
return RecipeMaps.BLAST_FURNACE;
}
@Override
public RecipeMap<? extends RecipeFactory<?>> canningRecipes() {
return RecipeMaps.CANINNING;
return RecipeMaps.CANNING;
}
@Override

View file

@ -2,7 +2,7 @@ package gregtechmod.common.recipe;
import gregtechmod.api.recipe.RecipeMap;
import gregtechmod.api.util.GT_ModHandler;
import gregtechmod.common.recipe.factory.BlastFurnanceRecipeFactory;
import gregtechmod.common.recipe.factory.BlastFurnaceRecipeFactory;
import gregtechmod.common.recipe.factory.GeneratorRecipeFactory;
import gregtechmod.common.recipe.factory.SimpleRecipeFactory;
import gregtechmod.common.recipe.factory.ThermalBoilerRecipeMap;
@ -23,9 +23,9 @@ public class RecipeMaps {
public static final RecipeMap<SimpleRecipeFactory> CENTRIFUGE = new RecipeMap<>(0, 2, 1, 4, 0, 1, 0, 0, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> ELECTROLYZER = new RecipeMap<>(0, 2, 1, 4, 0, 1, 0, 0, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> GRINDER = new RecipeMap<>(1, 2, 1, 4, 0, 1, 0, 0, new SimpleRecipeFactory());
public static final RecipeMap<BlastFurnanceRecipeFactory> BLAST_FURNANCE = new RecipeMap<>(1, 2, 1, 2, new BlastFurnanceRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> BRONZE_BLAST_FURNANCE = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> IMPLOSION_COMPRESSOR= new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<BlastFurnaceRecipeFactory> BLAST_FURNACE = new RecipeMap<>(1, 2, 1, 2, new BlastFurnaceRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> BRONZE_BLAST_FURNACE = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> IMPLOSION_COMPRESSOR = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> SAWMILL = new RecipeMap<>(1, 2, 1, 3, 0, 1, 0, 0, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> VACUUM_FREEZER = new RecipeMap<>(1, 1, 1, 1, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> CHEMICAL = new RecipeMap<>(1, 2, 1, 1, new SimpleRecipeFactory());
@ -34,7 +34,7 @@ public class RecipeMaps {
public static final RecipeMap<SimpleRecipeFactory> BENDING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> ALLOY_SMELTING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> ASSEMBLING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> CANINNING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> CANNING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> LATHE = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> CUTTING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());
public static final RecipeMap<SimpleRecipeFactory> EXTRUDING = new RecipeMap<>(1, 2, 1, 2, new SimpleRecipeFactory());

View file

@ -21,39 +21,29 @@ import net.minecraft.item.ItemStack;
* @author TheDarkDnKTv
*
*/
public class BlastFurnanceRecipeFactory extends RecipeFactory<BlastFurnanceRecipeFactory> {
public class BlastFurnaceRecipeFactory extends RecipeFactory<BlastFurnaceRecipeFactory> {
private int minTemp = -1;
public BlastFurnaceRecipeFactory() {}
public BlastFurnanceRecipeFactory() {}
public BlastFurnanceRecipeFactory(RecipeMap<BlastFurnanceRecipeFactory> map) {
public BlastFurnaceRecipeFactory(RecipeMap<BlastFurnaceRecipeFactory> map) {
super(map);
}
public BlastFurnanceRecipeFactory minTemperature(int value) {
if (minTemp >= 0)
throw new GT_RecipeException("Can not set temperature twice!");
public BlastFurnaceRecipeFactory minTemperature(int value) {
if (value <= 0)
errors.append(" - Blast temperature should be grather than zero!\n");
this.minTemp = value;
errors.append(" - Blast temperature should be gather than zero!\n");
this.metadata.put("minTemp", Integer.valueOf(value));
return this;
}
@Override
protected void reset() {
super.reset();
minTemp = -1;
}
@Override
public BlastFurnanceRecipeFactory nonConsumable(ItemStack stack) {
public BlastFurnaceRecipeFactory nonConsumable(ItemStack stack) {
super.input(RecipeEntry.singleton(stack, 0, Match.DAMAGE));
return this;
}
@Override
public BlastFurnanceRecipeFactory input(ItemStack stack, boolean checkDamage, boolean checkNBT) {
public BlastFurnaceRecipeFactory input(ItemStack stack, boolean checkDamage, boolean checkNBT) {
@SuppressWarnings("serial")
List<Match> vals = new ArrayList<Match>() {{
if (checkDamage && (stack != null && stack.getItemDamage() != GregTech_API.ITEM_WILDCARD_DAMAGE)) add(Match.DAMAGE);
@ -66,28 +56,28 @@ public class BlastFurnanceRecipeFactory extends RecipeFactory<BlastFurnanceRecip
}
@Override
public BlastFurnanceRecipeFactory input(OrePrefixes prefix, Materials material, int count) {
public BlastFurnaceRecipeFactory input(OrePrefixes prefix, Materials material, int count) {
if (count < 0) errors.append("- Count less than ZERO!!!, idx: " + (inputItems.size() + 1) + "\n");
inputItems.add(new UnifierRecipeEntry(prefix, material, count));
return this;
}
@Override
public BlastFurnanceRecipeFactory inputs(ItemStack... stacks) {
public BlastFurnaceRecipeFactory inputs(ItemStack... stacks) {
for (ItemStack stack : stacks)
this.input(stack);
return this;
}
@Override
public BlastFurnanceRecipeFactory input(String oreDict, int amount) {
public BlastFurnaceRecipeFactory input(String oreDict, int amount) {
if (amount < 0) errors.append("- Count less than ZERO!!!");
super.input(RecipeEntry.oreDict(oreDict, amount, Match.DAMAGE));
return this;
}
@Override
public BlastFurnanceRecipeFactory chanced(ItemStack stack, int chance) {
public BlastFurnaceRecipeFactory chanced(ItemStack stack, int chance) {
super.chanced(new ChancedStack(stack.copy(), chance));
return this;
}
@ -96,14 +86,14 @@ public class BlastFurnanceRecipeFactory extends RecipeFactory<BlastFurnanceRecip
public Recipe build() {
if (EUt < 0) errors.append(" - EU/t was not set!\n");
if (duration <= 0) errors.append(" - Duration was not set!\n");
if (minTemp < 0) errors.append(" - Blast temperature was not set!\n");
if (!metadata.containsKey("minTemp")) errors.append(" - Blast temperature was not set!\n");
if (inputItems.isEmpty() &&
inputFluids.isEmpty()) errors.append(" - Input of recipe shall not be empty!\n");
if (outputItems.isEmpty() &&
chancedOutput.isEmpty() &&
outputFluids.isEmpty()) errors.append(" - Output of recipe shall not be empty!");
if (errors.length() == 0) {
Recipe recipe = new Recipe(startEU, EUt, duration, shaped, inputItems, outputItems, chancedOutput, inputFluids, outputFluids, Collections.singletonMap("minTemp", Integer.valueOf(minTemp)));
Recipe recipe = new Recipe(startEU, EUt, duration, shaped, inputItems, outputItems, chancedOutput, inputFluids, outputFluids, Collections.unmodifiableMap(metadata));
reset();
return recipe;
} throw new GT_RecipeException(errors.toString());

View file

@ -107,7 +107,7 @@ public class PulverizerRecipeMap extends RecipeMap<SimpleRecipeFactory> {
}
/**
* Instead of ChancedStack will check chacne for every single item in stack
* Instead of ChancedStack will check chance for every single item in stack
* @author TheDarkDnKTv
*
*/

View file

@ -21,11 +21,11 @@ public class GT_MetaTileEntity_BlastFurnace extends BaseMultiWorkable {
public int mHeatCapacity = 0, mHeatingCoilTier = 0;
public GT_MetaTileEntity_BlastFurnace(int aID, String mName) {
super(aID, mName, RecipeMaps.BLAST_FURNANCE);
super(aID, mName, RecipeMaps.BLAST_FURNACE);
}
public GT_MetaTileEntity_BlastFurnace() {
super(RecipeMaps.BLAST_FURNANCE);
super(RecipeMaps.BLAST_FURNACE);
}
@Override

View file

@ -18,11 +18,11 @@ import net.minecraftforge.common.util.ForgeDirection;
public class GT_MetaTileEntity_BronzeBlastFurnace extends BaseMultiWorkable {
public GT_MetaTileEntity_BronzeBlastFurnace(int aID, String mName) {
super(aID, mName, RecipeMaps.BRONZE_BLAST_FURNANCE);
super(aID, mName, RecipeMaps.BRONZE_BLAST_FURNACE);
}
public GT_MetaTileEntity_BronzeBlastFurnace() {
super(RecipeMaps.BRONZE_BLAST_FURNANCE);
super(RecipeMaps.BRONZE_BLAST_FURNACE);
}
@Override public boolean isSteampowered() {return false;}

View file

@ -0,0 +1,17 @@
package gregtechmod.integration.crafttweaker;
import gregtechmod.api.recipe.RecipeMap;
import gregtechmod.integration.crafttweaker.recipe.*;
import minetweaker.MineTweakerAPI;
public class GregTechTweaker {
public static void init() {
MineTweakerAPI.registerClass(RecipeMap.class);
MineTweakerAPI.registerClass(CTRecipeMaps.class);
MineTweakerAPI.registerClass(CTRecipeFactory.class);
MineTweakerAPI.registerClass(CTIngredient.class);
MineTweakerAPI.registerClass(CTChancedOutput.class);
MineTweakerAPI.registerClass(CTRecipe.class);
}
}

View file

@ -0,0 +1,29 @@
package gregtechmod.integration.crafttweaker.recipe;
import gregtechmod.api.recipe.ChancedOutput;
import minetweaker.api.item.IItemStack;
import minetweaker.api.minecraft.MineTweakerMC;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenGetter;
@ZenClass("mods.gregtechmod.recipe.ChancedOutput")
public class CTChancedOutput {
private final IItemStack stack;
private final int chance;
public CTChancedOutput(ChancedOutput chancedOutput) {
this.stack = MineTweakerMC.getIItemStack(chancedOutput.getStack());
this.chance = chancedOutput.getChance();
}
@ZenGetter
public IItemStack stack() {
return stack;
}
@ZenGetter
public int chance() {
return chance;
}
}

View file

@ -0,0 +1,34 @@
package gregtechmod.integration.crafttweaker.recipe;
import gregtechmod.api.recipe.Ingredient;
import minetweaker.api.item.IItemStack;
import minetweaker.api.minecraft.MineTweakerMC;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenGetter;
import java.util.List;
import java.util.stream.Collectors;
@ZenClass("mods.gregtechmod.recipe.Ingredient")
public class CTIngredient {
private final int count;
private final List<IItemStack> variants;
public CTIngredient(Ingredient ingredient) {
this.count = ingredient.getCount();
this.variants = ingredient.getVariants().stream()
.map(MineTweakerMC::getIItemStack)
.collect(Collectors.toList());
}
@ZenGetter("count")
public int getCount() {
return 0;
}
@ZenGetter("variants")
public List<IItemStack> getVariants() {
return this.variants;
}
}

View file

@ -0,0 +1,105 @@
package gregtechmod.integration.crafttweaker.recipe;
import gregtechmod.api.recipe.Recipe;
import minetweaker.api.item.IItemStack;
import minetweaker.api.liquid.ILiquidStack;
import minetweaker.api.minecraft.MineTweakerMC;
import minetweaker.mc1710.liquid.MCLiquidStack;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenGetter;
import stanhebben.zenscript.annotations.ZenMethod;
import java.util.List;
import java.util.stream.Collectors;
@ZenClass("mods.gregtechmod.recipe.Recipe")
public class CTRecipe {
public final Recipe backingRecipe;
public CTRecipe(Recipe recipe) {
backingRecipe = recipe;
}
@ZenGetter
public int duration() {
return backingRecipe.getDuration();
}
@ZenGetter
public int EUt() {
return backingRecipe.getEUt();
}
@ZenGetter
public int startEU() {
return backingRecipe.getEUtoStart();
}
@ZenGetter
public boolean shaped() {
return backingRecipe.isShaped();
}
@ZenGetter
public boolean fluidRecipe() {
return backingRecipe.isFluidRecipe();
}
@ZenGetter
public List<String> metaKeys() {
return backingRecipe.getMetaKeys();
}
@ZenMethod
public Object getMeta(String key) {
return backingRecipe.getMeta(key);
}
@ZenGetter("outputs")
public List<IItemStack> getOutputs() {
return backingRecipe.getOutputs().stream()
.map(MineTweakerMC::getIItemStack)
.collect(Collectors.toList());
}
@ZenGetter("chancedOutputs")
public List<CTChancedOutput> getChancedOutputs() {
return backingRecipe.getChancedOutputs().stream()
.map(CTChancedOutput::new)
.collect(Collectors.toList());
}
@ZenMethod
public List<IItemStack> getAllOutputs() {
return backingRecipe.getAllOutputs().stream()
.map(MineTweakerMC::getIItemStack)
.collect(Collectors.toList());
}
@ZenGetter("fluidOutputs")
public List<ILiquidStack> getFluidOutputs() {
return backingRecipe.getFluidOutputs().stream()
.map(MCLiquidStack::new)
.collect(Collectors.toList());
}
@ZenGetter("inputs")
public List<CTIngredient> getInputs() {
return backingRecipe.getInputs().stream()
.map(CTIngredient::new)
.collect(Collectors.toList());
}
@ZenGetter("fluidInputs")
public List<ILiquidStack> getFluidInputs() {
return backingRecipe.getFluidInputs().stream()
.map(MCLiquidStack::new)
.collect(Collectors.toList());
}
@Override
public String toString() {
return backingRecipe.toString();
}
}

View file

@ -0,0 +1,135 @@
package gregtechmod.integration.crafttweaker.recipe;
import gregtechmod.api.enums.GT_Items;
import gregtechmod.api.recipe.RecipeFactory;
import gregtechmod.common.recipe.RecipeEntry;
import minetweaker.api.item.IIngredient;
import minetweaker.api.item.IItemStack;
import minetweaker.api.liquid.ILiquidStack;
import minetweaker.api.minecraft.MineTweakerMC;
import net.minecraft.item.ItemStack;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenMethod;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@ZenClass("mods.gregtechmod.recipe.RecipeFactory")
public class CTRecipeFactory {
private final RecipeFactory<?> backingFactory;
public CTRecipeFactory(RecipeFactory<?> backingFactory) {
this.backingFactory = backingFactory;
}
@ZenMethod
public CTRecipeFactory EUt(int energy) {
backingFactory.EUt(energy);
return this;
}
@ZenMethod
public CTRecipeFactory duration(int ticks) {
backingFactory.duration(ticks);
return this;
}
@ZenMethod
public CTRecipeFactory startEU(int amount) {
backingFactory.startEU(amount);
return this;
}
@ZenMethod
public CTRecipeFactory setShaped(boolean value) {
backingFactory.setShaped(value);
return this;
}
@ZenMethod
public CTRecipeFactory nonConsumable(IItemStack stack) {
backingFactory.nonConsumable(MineTweakerMC.getItemStack(stack));
return this;
}
@ZenMethod
public CTRecipeFactory circuit(int config) {
backingFactory.nonConsumable(GT_Items.Circuit_Integrated.getWithDamage(0, config));
return this;
}
@ZenMethod
public CTRecipeFactory input(IIngredient ingredient) {
List<ItemStack> inputs = ingredient.getItems().stream()
.map(MineTweakerMC::getItemStack)
.collect(Collectors.toList());
backingFactory.input(RecipeEntry.fromStacks(ingredient.getAmount(), inputs));
return this;
}
@ZenMethod
public CTRecipeFactory inputs(IIngredient... ingredients) {
Arrays.stream(ingredients).forEach(this::input);
return this;
}
@ZenMethod
public CTRecipeFactory fluidInput(ILiquidStack fluid) {
backingFactory.input(MineTweakerMC.getLiquidStack(fluid));
return this;
}
@ZenMethod
public CTRecipeFactory fluidInputs(ILiquidStack... fluids) {
Arrays.stream(fluids).forEach(this::fluidInput);
return this;
}
@ZenMethod
public CTRecipeFactory output(IItemStack output) {
backingFactory.output(MineTweakerMC.getItemStack(output));
return this;
}
@ZenMethod
public CTRecipeFactory outputs(IItemStack... outputs) {
Arrays.stream(outputs).forEach(this::output);
return this;
}
@ZenMethod
public CTRecipeFactory chancedOutput(IItemStack output, int chance) {
backingFactory.chanced(MineTweakerMC.getItemStack(output), chance);
return this;
}
@ZenMethod
public CTRecipeFactory fluidOutput(ILiquidStack fluid) {
backingFactory.output(MineTweakerMC.getLiquidStack(fluid));
return this;
}
@ZenMethod
public CTRecipeFactory fluidOutputs(ILiquidStack... fluids) {
Arrays.stream(fluids).forEach(this::fluidOutput);
return this;
}
@ZenMethod
public CTRecipeFactory withMeta(String key, Object value) {
backingFactory.withMeta(key, value);
return this;
}
@ZenMethod
public CTRecipe build() {
return new CTRecipe(backingFactory.build());
}
@ZenMethod
public void buildAndRegister() {
backingFactory.buildAndRegister();
}
}

View file

@ -0,0 +1,103 @@
package gregtechmod.integration.crafttweaker.recipe;
import gregtechmod.api.recipe.RecipeMap;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.common.recipe.factory.BlastFurnaceRecipeFactory;
import gregtechmod.common.recipe.factory.GeneratorRecipeFactory;
import gregtechmod.common.recipe.factory.SimpleRecipeFactory;
import org.apache.commons.lang3.tuple.Pair;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenMethod;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import java.util.stream.Collectors;
@ZenClass("mods.gregtechmod.recipe.RecipeMaps")
public class CTRecipeMaps {
public static final Map<String, RecipeMap<?>> SIMPLE_RECIPE_MAPS;
static {
Map<String, RecipeMap<?>> result = Arrays.stream(RecipeMaps.class.getFields())
.filter(f -> f.getType() == RecipeMap.class)
.map(CTRecipeMaps::pairMapper)
.filter(p -> p.getValue().factory().getClass() == SimpleRecipeFactory.class)
.collect(Collectors.toMap(Pair::getKey, Pair::getValue));
SIMPLE_RECIPE_MAPS = Collections.unmodifiableMap(result);
}
private static Pair<String, RecipeMap<?>> pairMapper(Field f) {
RecipeMap<?> map = null;
try {
map = (RecipeMap<?>) f.get(null);
} catch (Exception e) {
e.printStackTrace();
}
return Pair.of(f.getName(), map);
}
@ZenMethod
public static RecipeMap<SimpleRecipeFactory> getSimpleMap(String name) {
return (RecipeMap<SimpleRecipeFactory>) SIMPLE_RECIPE_MAPS.get(name.toUpperCase());
}
// MISC \\
@ZenMethod
public static RecipeMap<BlastFurnaceRecipeFactory> electricBlast() {
return RecipeMaps.BLAST_FURNACE;
}
@ZenMethod
public static RecipeMap<SimpleRecipeFactory> printer() {
return RecipeMaps.PRINTER;
}
@ZenMethod
public static RecipeMap<SimpleRecipeFactory> pulverizer() {
return RecipeMaps.PULVERIZING;
}
// FUELS \\
@ZenMethod
public static RecipeMap<GeneratorRecipeFactory> dieselFuels() {
return RecipeMaps.DIESEL_FUELS;
}
@ZenMethod
public static RecipeMap<GeneratorRecipeFactory> turbineFuels() {
return RecipeMaps.TURBINE_FUELS;
}
@ZenMethod
public static RecipeMap<GeneratorRecipeFactory> hotFuels() {
return RecipeMaps.HOT_FUELS;
}
@ZenMethod
public static RecipeMap<GeneratorRecipeFactory> denseFuels() {
return RecipeMaps.DENSE_FUELS;
}
@ZenMethod
public static RecipeMap<GeneratorRecipeFactory> plasmaFuels() {
return RecipeMaps.PLASMA_FUELS;
}
@ZenMethod
public static RecipeMap<GeneratorRecipeFactory> magicFuels() {
return RecipeMaps.MAGIC_FUELS;
}
@ZenMethod
public static RecipeMap<GeneratorRecipeFactory> steamFuels() {
return RecipeMaps.STEAM_FUELS;
}
}

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.integration.nei;
import java.util.ArrayList;
import java.util.List;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.integration.nei;
import codechicken.nei.NEIClientConfig;
import codechicken.nei.guihook.GuiContainerManager;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.integration.nei;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.enums.GT_Items;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.integration.nei;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.util.GT_Log;
@ -11,26 +11,26 @@ import gregtechmod.common.gui.GT_GUIContainer_PlasmaGenerator;
import gregtechmod.common.gui.GT_GUIContainer_SemifluidGenerator;
import gregtechmod.common.gui.GT_GUIContainer_ThermalGenerator;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.handlers.AlloySmelterRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.AssemblerRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.BenderRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.BlastRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.BronzeBlastRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.CannerRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.CentrifugeRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.ChemicalRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.CutterRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.DistillationRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.ElectrolyzerRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.ExtruderRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.FusionRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.GeneratorHandler;
import gregtechmod.mistaqur.nei.handlers.GrinderRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.ImplosionRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.LatheRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.SawmillRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.VacuumFreezerRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.WiremillRecipeHandler;
import gregtechmod.integration.nei.handlers.AlloySmelterRecipeHandler;
import gregtechmod.integration.nei.handlers.AssemblerRecipeHandler;
import gregtechmod.integration.nei.handlers.BenderRecipeHandler;
import gregtechmod.integration.nei.handlers.BlastRecipeHandler;
import gregtechmod.integration.nei.handlers.BronzeBlastRecipeHandler;
import gregtechmod.integration.nei.handlers.CannerRecipeHandler;
import gregtechmod.integration.nei.handlers.CentrifugeRecipeHandler;
import gregtechmod.integration.nei.handlers.ChemicalRecipeHandler;
import gregtechmod.integration.nei.handlers.CutterRecipeHandler;
import gregtechmod.integration.nei.handlers.DistillationRecipeHandler;
import gregtechmod.integration.nei.handlers.ElectrolyzerRecipeHandler;
import gregtechmod.integration.nei.handlers.ExtruderRecipeHandler;
import gregtechmod.integration.nei.handlers.FusionRecipeHandler;
import gregtechmod.integration.nei.handlers.GeneratorHandler;
import gregtechmod.integration.nei.handlers.GrinderRecipeHandler;
import gregtechmod.integration.nei.handlers.ImplosionRecipeHandler;
import gregtechmod.integration.nei.handlers.LatheRecipeHandler;
import gregtechmod.integration.nei.handlers.SawmillRecipeHandler;
import gregtechmod.integration.nei.handlers.VacuumFreezerRecipeHandler;
import gregtechmod.integration.nei.handlers.WiremillRecipeHandler;
import codechicken.nei.api.IConfigureNEI;
import codechicken.nei.guihook.GuiContainerManager;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.integration.nei;
import java.awt.Point;
import java.awt.Rectangle;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -12,7 +12,7 @@ import gregtechmod.common.gui.GT_GUIContainer_BasicMachine_Extractor;
import gregtechmod.common.gui.GT_GUIContainer_BasicMachine_Macerator;
import gregtechmod.common.gui.GT_GUIContainer_Scrapboxinator;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,7 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_BasicMachine_Assembler;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,7 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_BasicMachine_Bender;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,7 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_BlastFurnace;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;
@ -75,7 +75,7 @@ public class BlastRecipeHandler extends GT_RecipeHandler {
@Override
public RecipeMap<?> getRecipeList() {
return RecipeMaps.BLAST_FURNANCE;
return RecipeMaps.BLAST_FURNACE;
}
@Override

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import java.awt.Rectangle;
import java.util.ArrayList;
@ -70,7 +70,7 @@ public class BronzeBlastRecipeHandler extends BlastRecipeHandler {
@Override
public RecipeMap<?> getRecipeList() {
return RecipeMaps.BRONZE_BLAST_FURNANCE;
return RecipeMaps.BRONZE_BLAST_FURNACE;
}
@Override

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,7 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_BasicMachine_Canner;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;
@ -56,7 +56,7 @@ public class CannerRecipeHandler extends GT_RecipeHandler {
@Override
public RecipeMap<?> getRecipeList() {
return RecipeMaps.CANINNING;
return RecipeMaps.CANNING;
}
@Override

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,7 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_Centrifuge;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,7 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_ChemicalReactor;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,7 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_BasicMachine_Cutter;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,7 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_DistillationTower;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,7 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_Electrolyzer;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import java.util.Collections;
import java.awt.Rectangle;
@ -12,7 +12,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_BasicMachine_Extruder;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import net.minecraft.client.resources.I18n;
import net.minecraft.item.ItemStack;
import net.minecraft.util.StatCollector;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,7 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_FusionComputer;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import java.awt.Rectangle;
import java.util.ArrayList;
@ -13,7 +13,7 @@ import gregtechmod.api.recipe.Recipe;
import gregtechmod.api.recipe.RecipeMap;
import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.resources.I18n;
import net.minecraft.item.ItemStack;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,7 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_Grinder;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,7 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_ImplosionCompressor;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,7 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_BasicMachine_Lathe;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,7 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_Sawmill;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,7 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_VacuumFreezer;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei.handlers;
package gregtechmod.integration.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,7 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_BasicMachine_Wiremill;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import gregtechmod.integration.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -111,11 +111,11 @@ public class GT_ItemIterator implements Runnable {
GregTech_API.registerScrewdriver(GT_ModHandler.getRecipeOutput(new ItemStack(Items.iron_ingot, 1), null, null, null, new ItemStack(Items.stick, 1)));
GT_Log.log.info("Adding Food Recipes to the Automatic Canning Machine. (also during the following Item Iteration)");
RecipeMaps.CANINNING.factory().EUt(1).duration(100).inputs(new ItemStack(Items.rotten_flesh, 1, GregTech_API.ITEM_WILDCARD_DAMAGE), GT_Items.IC2_Food_Can_Empty.get(2L)).output(GT_Items.IC2_Food_Can_Spoiled.get(2)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(1).duration(100).inputs(new ItemStack(Items.spider_eye, 1, GregTech_API.ITEM_WILDCARD_DAMAGE), GT_Items.IC2_Food_Can_Empty.get(1L)).output(GT_Items.IC2_Food_Can_Spoiled.get(1)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(1).duration(100).inputs(new ItemStack(Items.poisonous_potato, 1, GregTech_API.ITEM_WILDCARD_DAMAGE), GT_Items.IC2_Food_Can_Empty.get(1L)).output(GT_Items.IC2_Food_Can_Spoiled.get(1)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(1).duration(600).inputs(new ItemStack(Items.cake, 1, GregTech_API.ITEM_WILDCARD_DAMAGE), GT_Items.IC2_Food_Can_Empty.get(6L)).output(GT_Items.IC2_Food_Can_Filled.get(6)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(1).duration(300).inputs(new ItemStack(Items.mushroom_stew, 1, GregTech_API.ITEM_WILDCARD_DAMAGE), GT_Items.IC2_Food_Can_Empty.get(3L)).output(GT_Items.IC2_Food_Can_Filled.get(3)).output(new ItemStack(Items.bowl, 1)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(1).duration(100).inputs(new ItemStack(Items.rotten_flesh, 1, GregTech_API.ITEM_WILDCARD_DAMAGE), GT_Items.IC2_Food_Can_Empty.get(2L)).output(GT_Items.IC2_Food_Can_Spoiled.get(2)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(1).duration(100).inputs(new ItemStack(Items.spider_eye, 1, GregTech_API.ITEM_WILDCARD_DAMAGE), GT_Items.IC2_Food_Can_Empty.get(1L)).output(GT_Items.IC2_Food_Can_Spoiled.get(1)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(1).duration(100).inputs(new ItemStack(Items.poisonous_potato, 1, GregTech_API.ITEM_WILDCARD_DAMAGE), GT_Items.IC2_Food_Can_Empty.get(1L)).output(GT_Items.IC2_Food_Can_Spoiled.get(1)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(1).duration(600).inputs(new ItemStack(Items.cake, 1, GregTech_API.ITEM_WILDCARD_DAMAGE), GT_Items.IC2_Food_Can_Empty.get(6L)).output(GT_Items.IC2_Food_Can_Filled.get(6)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(1).duration(300).inputs(new ItemStack(Items.mushroom_stew, 1, GregTech_API.ITEM_WILDCARD_DAMAGE), GT_Items.IC2_Food_Can_Empty.get(3L)).output(GT_Items.IC2_Food_Can_Filled.get(3)).output(new ItemStack(Items.bowl, 1)).buildAndRegister();
if (Loader.isModLoaded("appliedenergistics2")) {
Optional<ItemStack> opt = appeng.api.AEApi.instance().definitions().blocks().quartz().maybeStack(1);
@ -188,7 +188,7 @@ public class GT_ItemIterator implements Runnable {
if (tItem instanceof ItemFood && tItem != GT_Items.IC2_Food_Can_Filled.getItem() && tItem != GT_Items.IC2_Food_Can_Spoiled.getItem()) {
final int tFoodValue = (int) Math.ceil(((ItemFood) tItem).func_150905_g(new ItemStack(tItem)) / 2.0D);
if (tFoodValue > 0) {
RecipeFactory<?> fac = RecipeMaps.CANINNING.factory().EUt(1).duration(tFoodValue * 100).inputs(new ItemStack(tItem, 1, GregTech_API.ITEM_WILDCARD_DAMAGE), GT_Items.IC2_Food_Can_Empty.get(tFoodValue)).output(GT_Items.IC2_Food_Can_Filled.get(tFoodValue));
RecipeFactory<?> fac = RecipeMaps.CANNING.factory().EUt(1).duration(tFoodValue * 100).inputs(new ItemStack(tItem, 1, GregTech_API.ITEM_WILDCARD_DAMAGE), GT_Items.IC2_Food_Can_Empty.get(tFoodValue)).output(GT_Items.IC2_Food_Can_Filled.get(tFoodValue));
ItemStack container = GT_Utility.getContainerItem(new ItemStack(tItem, 1, 0));
if (container != null) fac.output(container);
fac.buildAndRegister();

View file

@ -78,12 +78,12 @@ public class ProcessingDust implements IOreRecipeRegistrator {
});
if (GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1) != null) {
RecipeMaps.CANINNING.factory().EUt(1).duration(100)
RecipeMaps.CANNING.factory().EUt(1).duration(100)
.input(RecipeEntry.fromStacks(entry.ores, Match.STRICT))
.input(aMaterial == Materials.Milk ? GT_Items.Cell_Water.get(1) : GT_Items.Cell_Empty.get(1))
.output(GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1))
.buildAndRegister();
if (aMaterial != Materials.Milk) RecipeMaps.CANINNING.factory().EUt(1).duration(100)
if (aMaterial != Materials.Milk) RecipeMaps.CANNING.factory().EUt(1).duration(100)
.input(OrePrefixes.cell, aMaterial)
.output(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1))
.output(GT_OreDictUnificator.get(GT_Items.Cell_Empty.get(1)))
@ -156,7 +156,7 @@ public class ProcessingDust implements IOreRecipeRegistrator {
default:
break;
case Milk:
RecipeMaps.CANINNING.factory().EUt(1).duration(100)
RecipeMaps.CANNING.factory().EUt(1).duration(100)
.input(RecipeEntry.fromStacks(entry.ores, Match.STRICT))
.input(new ItemStack(Items.water_bucket, 1))
.output(new ItemStack(Items.milk_bucket, 1))
@ -209,7 +209,7 @@ public class ProcessingDust implements IOreRecipeRegistrator {
if (!aMaterial.contains(SubTag.NO_SMELTING) && tStack != null) {
if (aMaterial.mBlastFurnaceRequired && null != tStack) {
factory = RecipeMaps.BLAST_FURNANCE.factory()
factory = RecipeMaps.BLAST_FURNACE.factory()
.minTemperature(aMaterial.mBlastFurnaceTemp).EUt(120)
.duration(Math.max(aMaterial.getMass() / 40, 1) * aMaterial.mBlastFurnaceTemp)
.input(RecipeEntry.fromStacks(entry.ores, Match.STRICT));

View file

@ -34,7 +34,7 @@ public class ProcessingDustSmall implements IOreRecipeRegistrator {
RecipeHandler.executeOnFinish(() -> GameRegistry.addRecipe(new GT_Shapeless_Recipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), new Object[] { entry.oreDictName, entry.oreDictName, entry.oreDictName, entry.oreDictName })));
if (!aMaterial.contains(SubTag.NO_SMELTING) && (ingot = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L)) != null) {
if (aMaterial.mBlastFurnaceRequired) {
RecipeFactory<?> factory = RecipeMaps.BLAST_FURNANCE.factory()
RecipeFactory<?> factory = RecipeMaps.BLAST_FURNACE.factory()
.minTemperature(aMaterial.mBlastFurnaceTemp)
.EUt(120).duration(Math.max(aMaterial.getMass() / 40, 1) * aMaterial.mBlastFurnaceTemp)
.input(RecipeEntry.fromStacks(4, entry.ores, Match.STRICT));

View file

@ -35,7 +35,7 @@ public class ProcessingDustTiny implements IOreRecipeRegistrator {
new Object[] { entry.oreDictName, entry.oreDictName, entry.oreDictName, entry.oreDictName, entry.oreDictName, entry.oreDictName, entry.oreDictName, entry.oreDictName, entry.oreDictName })));
if (!aMaterial.contains(SubTag.NO_SMELTING) && (ingot = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L)) != null) {
if (aMaterial.mBlastFurnaceRequired) {
RecipeFactory<?> factory = RecipeMaps.BLAST_FURNANCE.factory()
RecipeFactory<?> factory = RecipeMaps.BLAST_FURNACE.factory()
.minTemperature(aMaterial.mBlastFurnaceTemp)
.EUt(120).duration(Math.max(aMaterial.getMass() / 40, 1) * aMaterial.mBlastFurnaceTemp)
.input(RecipeEntry.fromStacks(9, entry.ores, Match.STRICT));

View file

@ -32,7 +32,7 @@ public class ProcessingDye implements IOreRecipeRegistrator {
List<ItemStack> ores = entry.ores.stream()
.filter(s -> s.getMaxStackSize() >= 16 && GT_Utility.getContainerItem(s) == null)
.collect(Collectors.toList());
RecipeMaps.CANINNING.factory()
RecipeMaps.CANNING.factory()
.EUt(1).duration(800)
.input(RecipeEntry.fromStacks(16, ores, Match.STRICT))
.input(GT_Items.Spray_Empty.get(1))

View file

@ -77,7 +77,7 @@ public class ProcessingGem implements IOreRecipeRegistrator {
}
if (aMaterial == Materials.Mercury) {
RecipeMaps.CANINNING.factory().EUt(1).duration(100)
RecipeMaps.CANNING.factory().EUt(1).duration(100)
.input(RecipeEntry.fromStacks(entry.ores, Match.STRICT))
.input(GT_Items.Cell_Empty.get(1))
.output(GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L))

View file

@ -178,7 +178,7 @@ public class ProcessingOre implements IOreRecipeRegistrator {
}
if (aMaterial.contains(SubTag.BLASTFURNACE_CALCITE_TRIPLE)) {
RecipeMaps.BLAST_FURNANCE.factory()
RecipeMaps.BLAST_FURNACE.factory()
.minTemperature(1500)
.EUt(120).duration(tSmeltInto.stackSize * 500)
.input(ingr)
@ -187,7 +187,7 @@ public class ProcessingOre implements IOreRecipeRegistrator {
.output(GT_Items.TE_Slag.get(1L, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 1L)))
.buildAndRegister();
} else if (aMaterial.contains(SubTag.BLASTFURNACE_CALCITE_DOUBLE)) {
RecipeMaps.BLAST_FURNANCE.factory()
RecipeMaps.BLAST_FURNACE.factory()
.minTemperature(1500)
.EUt(120).duration(tSmeltInto.stackSize * 500)
.input(ingr)

View file

@ -63,7 +63,7 @@ public class ProcessingOreSmelting implements IOreRecipeRegistrator {
System.err.println(aMaterial);
}
RecipeMaps.BLAST_FURNANCE.factory()
RecipeMaps.BLAST_FURNACE.factory()
.minTemperature(aMaterial.mBlastFurnaceTemp)
.EUt(120).duration(Math.max(aMaterial.getMass() / 4, 1) * aMaterial.mBlastFurnaceTemp)
.input(RecipeEntry.fromStacks(entry.ores, Match.STRICT))

View file

@ -33,7 +33,7 @@ public class ProcessingRecycling implements IOreRecipeRegistrator {
if (aPrefix.mIsContainer) {
if (aMaterial != Materials.Empty && aPrefix != OrePrefixes.cell) {
if (aMaterial == Materials.Mercury) {
RecipeMaps.CANINNING.factory().EUt(2).duration(Math.max(aMaterial.getMass() / 2, 1))
RecipeMaps.CANNING.factory().EUt(2).duration(Math.max(aMaterial.getMass() / 2, 1))
.input(aStack)
.output(GT_Utility.getContainerItem(aStack))
.output(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, aPrefix.mMaterialAmount / 3628800L))
@ -45,7 +45,7 @@ public class ProcessingRecycling implements IOreRecipeRegistrator {
&& aMaterial != Materials.BioFuel && aMaterial != Materials.Water
&& aMaterial != Materials.Nitrogen && aMaterial != Materials.ConstructionFoam) {
RecipeMaps.CANINNING.factory().EUt(2).duration(Math.max(aMaterial.getMass() / 2, 1))
RecipeMaps.CANNING.factory().EUt(2).duration(Math.max(aMaterial.getMass() / 2, 1))
.input(aStack)
.output(GT_Utility.getContainerItem(aStack))
.output(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, aPrefix.mMaterialAmount / 3628800L))

View file

@ -33,8 +33,8 @@ public class ProcessingSlab implements IOreRecipeRegistrator {
Materials mat = this.getMaterial(aPrefix, entry);
if (this.isExecutable(aPrefix, mat) && mat == Materials.Wood) {
if (RAILCRAFT) {
RecipeMaps.CANINNING.factory().EUt(4).duration(200).input(GT_ModHandler.getRCItem("fluid.creosote.bucket", 1L)).input(RecipeEntry.fromStacks(entry.ores, Match.DAMAGE)).outputs(GT_ModHandler.getRCItem("part.tie.wood", 1L), new ItemStack(Items.bucket, 1)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(4).duration(200).input(OrePrefixes.cell, Materials.Creosote).input(RecipeEntry.fromStacks(entry.ores, Match.DAMAGE)).outputs(GT_ModHandler.getRCItem("part.tie.wood", 1L), GT_Items.Cell_Empty.get(1)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(4).duration(200).input(GT_ModHandler.getRCItem("fluid.creosote.bucket", 1L)).input(RecipeEntry.fromStacks(entry.ores, Match.DAMAGE)).outputs(GT_ModHandler.getRCItem("part.tie.wood", 1L), new ItemStack(Items.bucket, 1)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(4).duration(200).input(OrePrefixes.cell, Materials.Creosote).input(RecipeEntry.fromStacks(entry.ores, Match.DAMAGE)).outputs(GT_ModHandler.getRCItem("part.tie.wood", 1L), GT_Items.Cell_Empty.get(1)).buildAndRegister();
}
GT_ModHandler.addPulverisationRecipe(entry, 1, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2), null, 0);

View file

@ -106,61 +106,61 @@ public class GT_MachineRecipeLoader implements Runnable
GT_ModHandler.addPulverisationRecipe(new ItemStack(Items.flint, 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Flint, 4L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Flint, 1L), 40, true);
GT_ModHandler.addPulverisationRecipe(new ItemStack(Blocks.wool, 1, 32767), new ItemStack(Items.string, 2), new ItemStack(Items.string, 1), 50, false);
RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1000).EUt(120).duration(500).input(OrePrefixes.ingot, Materials.Iron).input(OrePrefixes.gem, Materials.Coal, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L)).buildAndRegister();
RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1100).EUt(120).duration(500).input(OrePrefixes.ingot, Materials.ShadowIron, 1).input(OrePrefixes.gem, Materials.Coal, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.ShadowSteel, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L)).buildAndRegister();
RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1200).EUt(120).duration(500).input(OrePrefixes.ingot, Materials.MeteoricIron, 1).input(OrePrefixes.gem, Materials.Coal, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.MeteoricSteel, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L)).buildAndRegister();
RecipeMaps.BLAST_FURNANCE.factory().minTemperature(3000).EUt(500).duration(500).input(OrePrefixes.ingot, Materials.Tungsten).input(OrePrefixes.ingot, Materials.Steel).outputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.TungstenSteel, 2L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4L)).buildAndRegister();
RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1700).EUt(120).duration(800).input(OrePrefixes.dust, Materials.Ilmenite, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titanium, 1L)).buildAndRegister();
RecipeMaps.BLAST_FURNACE.factory().minTemperature(1000).EUt(120).duration(500).input(OrePrefixes.ingot, Materials.Iron).input(OrePrefixes.gem, Materials.Coal, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L)).buildAndRegister();
RecipeMaps.BLAST_FURNACE.factory().minTemperature(1100).EUt(120).duration(500).input(OrePrefixes.ingot, Materials.ShadowIron, 1).input(OrePrefixes.gem, Materials.Coal, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.ShadowSteel, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L)).buildAndRegister();
RecipeMaps.BLAST_FURNACE.factory().minTemperature(1200).EUt(120).duration(500).input(OrePrefixes.ingot, Materials.MeteoricIron, 1).input(OrePrefixes.gem, Materials.Coal, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.MeteoricSteel, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L)).buildAndRegister();
RecipeMaps.BLAST_FURNACE.factory().minTemperature(3000).EUt(500).duration(500).input(OrePrefixes.ingot, Materials.Tungsten).input(OrePrefixes.ingot, Materials.Steel).outputs(GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.TungstenSteel, 2L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4L)).buildAndRegister();
RecipeMaps.BLAST_FURNACE.factory().minTemperature(1700).EUt(120).duration(800).input(OrePrefixes.dust, Materials.Ilmenite, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titanium, 1L)).buildAndRegister();
// RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1700).EUt(120).duration(640).input(OrePrefixes.gem, Materials.Ilmenite, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titanium, 1L)).buildAndRegister();
RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1500).EUt(120).duration(400).input(OrePrefixes.dust, Materials.Galena, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L)).buildAndRegister();
RecipeMaps.BLAST_FURNACE.factory().minTemperature(1500).EUt(120).duration(400).input(OrePrefixes.dust, Materials.Galena, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L)).buildAndRegister();
// RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1500).EUt(120).duration(320).input(OrePrefixes.gem, Materials.Galena, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Lead, 1L)).buildAndRegister();
RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1000).EUt(120).duration(400).input(OrePrefixes.dust, Materials.Magnetite, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2)).buildAndRegister();
RecipeMaps.BLAST_FURNACE.factory().minTemperature(1000).EUt(120).duration(400).input(OrePrefixes.dust, Materials.Magnetite, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2)).buildAndRegister();
// RecipeMaps.BLAST_FURNANCE.factory().minTemperature(1000).EUt(120).duration(320).input(OrePrefixes.gem, Materials.Magnetite, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 2)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNANCE.factory().EUt(1).duration(7200).input(OrePrefixes.ingot, Materials.Iron).input(OrePrefixes.gem, Materials.Coal, 4).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNANCE.factory().EUt(1).duration(7200).input(OrePrefixes.dust, Materials.Iron).input(OrePrefixes.gem, Materials.Coal, 4).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNANCE.factory().EUt(1).duration(64800).input(OrePrefixes.ingot, Materials.Iron, 9).input(OrePrefixes.block, Materials.Coal, 4).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 36)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNANCE.factory().EUt(1).duration(64800).input(OrePrefixes.dust, Materials.Iron, 9).input(OrePrefixes.block, Materials.Coal, 4).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 36)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNANCE.factory().EUt(1).duration(3600).input(OrePrefixes.dust, Materials.Steel).input(OrePrefixes.gem, Materials.Coal, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNANCE.factory().EUt(1).duration(32400).input(OrePrefixes.dust, Materials.Steel, 9).input(OrePrefixes.block, Materials.Coal, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 18)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNANCE.factory().EUt(1).duration(64800).input(OrePrefixes.block, Materials.Iron).input(OrePrefixes.gem, Materials.Coal, 36).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 36)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNANCE.factory().EUt(1).duration(64800).input(OrePrefixes.block, Materials.Iron).input(OrePrefixes.block, Materials.Coal, 4).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 36)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNACE.factory().EUt(1).duration(7200).input(OrePrefixes.ingot, Materials.Iron).input(OrePrefixes.gem, Materials.Coal, 4).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNACE.factory().EUt(1).duration(7200).input(OrePrefixes.dust, Materials.Iron).input(OrePrefixes.gem, Materials.Coal, 4).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNACE.factory().EUt(1).duration(64800).input(OrePrefixes.ingot, Materials.Iron, 9).input(OrePrefixes.block, Materials.Coal, 4).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 36)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNACE.factory().EUt(1).duration(64800).input(OrePrefixes.dust, Materials.Iron, 9).input(OrePrefixes.block, Materials.Coal, 4).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 36)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNACE.factory().EUt(1).duration(3600).input(OrePrefixes.dust, Materials.Steel).input(OrePrefixes.gem, Materials.Coal, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNACE.factory().EUt(1).duration(32400).input(OrePrefixes.dust, Materials.Steel, 9).input(OrePrefixes.block, Materials.Coal, 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 18)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNACE.factory().EUt(1).duration(64800).input(OrePrefixes.block, Materials.Iron).input(OrePrefixes.gem, Materials.Coal, 36).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 36)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNACE.factory().EUt(1).duration(64800).input(OrePrefixes.block, Materials.Iron).input(OrePrefixes.block, Materials.Coal, 4).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 36)).buildAndRegister();
if (OreDictionary.doesOreNameExist("fuelCoke")) {
RecipeMaps.BRONZE_BLAST_FURNANCE.factory().EUt(1).duration(4800).input(OrePrefixes.ingot, Materials.Iron).input("fuelCoke", 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNANCE.factory().EUt(1).duration(4800).input(OrePrefixes.dust, Materials.Iron).input("fuelCoke", 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNANCE.factory().EUt(1).duration(2400).input(OrePrefixes.dust, Materials.Steel).input("fuelCoke").outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNANCE.factory().EUt(1).duration(43200).input(OrePrefixes.block, Materials.Iron).input("fuelCoke", 18).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 36)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNACE.factory().EUt(1).duration(4800).input(OrePrefixes.ingot, Materials.Iron).input("fuelCoke", 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNACE.factory().EUt(1).duration(4800).input(OrePrefixes.dust, Materials.Iron).input("fuelCoke", 2).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNACE.factory().EUt(1).duration(2400).input(OrePrefixes.dust, Materials.Steel).input("fuelCoke").outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2)).buildAndRegister();
RecipeMaps.BRONZE_BLAST_FURNACE.factory().EUt(1).duration(43200).input(OrePrefixes.block, Materials.Iron).input("fuelCoke", 18).outputs(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 36)).buildAndRegister();
}
RecipeMaps.CANINNING.factory().EUt(2).duration( 100).input(OrePrefixes.cell, Materials.Mercury , 1).input(GT_Items.Battery_Hull_LV.get(1)).outputs(GT_Items.Battery_SU_LV_Mercury .getWithCharge(1, Integer.MAX_VALUE), GT_Items.Cell_Empty.get( 1)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(2).duration( 400).input(OrePrefixes.cell, Materials.SulfuricAcid , 4).inputs(GT_Items.Battery_Hull_MV.get(1)).outputs(GT_Items.Battery_SU_MV_SulfuricAcid .getWithCharge(1, Integer.MAX_VALUE), GT_Items.Cell_Empty.get( 4)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(2).duration( 400).input(OrePrefixes.cell, Materials.Mercury , 4).inputs(GT_Items.Battery_Hull_MV.get(1)).outputs(GT_Items.Battery_SU_MV_Mercury .getWithCharge(1, Integer.MAX_VALUE), GT_Items.Cell_Empty.get( 4)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(2).duration(1600).input(OrePrefixes.cell, Materials.Nitrogen , 16).inputs(GT_Items.Spray_Empty.get(1)) .outputs(GT_Items.Spray_Ice .get(1) , GT_Items.Cell_Empty.get(16)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(2).duration(1600).inputs(GT_Items.Cell_Water.get(16) , GT_Items.Spray_Empty.get(1)) .outputs(GT_Items.Spray_Hydration .get(1) , GT_Items.Cell_Empty.get(16)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(2).duration(1600).input(OrePrefixes.cell, Materials.ConstructionFoam, 40).input(GT_Items.Spray_Empty.get(1)) .outputs(GT_Items.Spray_CFoam .get(1) , GT_Items.Cell_Empty.get(40)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(2).duration( 100).input(OrePrefixes.dust, Materials.Lithium, 2).input(GT_Items.Battery_Hull_LV.get(1)) .output(GT_Items.Battery_RE_LV_Lithium .get(1)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(2).duration( 100).input(OrePrefixes.dust, Materials.Sodium, 2).input(GT_Items.Battery_Hull_LV.get(1)) .output(GT_Items.Battery_RE_LV_Sodium .get(1)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(2).duration( 400).input(OrePrefixes.dust, Materials.Lithium, 8).input(GT_Items.Battery_Hull_MV.get(1)) .output(GT_Items.Battery_RE_MV_Lithium .get(1)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(2).duration( 400).input(OrePrefixes.dust, Materials.Sodium, 8).input(GT_Items.Battery_Hull_MV.get(1)) .output(GT_Items.Battery_RE_MV_Sodium . get(1)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(2).duration(1600).inputs(new ItemStack(Blocks.sand, 16, 0) , GT_Items.Spray_Empty.get(1)) .output(GT_Items.Spray_Hardener .get(1)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(2).duration( 100).input(OrePrefixes.dust, Materials.Redstone, 2).input(GT_Items.Battery_Hull_LV.get(1)) .output(GT_ModHandler.getIC2Item("reBattery", 1)) .buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(1).duration( 800).inputs(GT_Items.IC2_Grin_Powder.get(1) , GT_Items.Spray_Empty.get(1)) .output(GT_ModHandler.getIC2Item("weedEx", 1L)) .buildAndRegister();
RecipeMaps.CANNING.factory().EUt(2).duration( 100).input(OrePrefixes.cell, Materials.Mercury , 1).input(GT_Items.Battery_Hull_LV.get(1)).outputs(GT_Items.Battery_SU_LV_Mercury .getWithCharge(1, Integer.MAX_VALUE), GT_Items.Cell_Empty.get( 1)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(2).duration( 400).input(OrePrefixes.cell, Materials.SulfuricAcid , 4).inputs(GT_Items.Battery_Hull_MV.get(1)).outputs(GT_Items.Battery_SU_MV_SulfuricAcid .getWithCharge(1, Integer.MAX_VALUE), GT_Items.Cell_Empty.get( 4)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(2).duration( 400).input(OrePrefixes.cell, Materials.Mercury , 4).inputs(GT_Items.Battery_Hull_MV.get(1)).outputs(GT_Items.Battery_SU_MV_Mercury .getWithCharge(1, Integer.MAX_VALUE), GT_Items.Cell_Empty.get( 4)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(2).duration(1600).input(OrePrefixes.cell, Materials.Nitrogen , 16).inputs(GT_Items.Spray_Empty.get(1)) .outputs(GT_Items.Spray_Ice .get(1) , GT_Items.Cell_Empty.get(16)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(2).duration(1600).inputs(GT_Items.Cell_Water.get(16) , GT_Items.Spray_Empty.get(1)) .outputs(GT_Items.Spray_Hydration .get(1) , GT_Items.Cell_Empty.get(16)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(2).duration(1600).input(OrePrefixes.cell, Materials.ConstructionFoam, 40).input(GT_Items.Spray_Empty.get(1)) .outputs(GT_Items.Spray_CFoam .get(1) , GT_Items.Cell_Empty.get(40)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(2).duration( 100).input(OrePrefixes.dust, Materials.Lithium, 2).input(GT_Items.Battery_Hull_LV.get(1)) .output(GT_Items.Battery_RE_LV_Lithium .get(1)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(2).duration( 100).input(OrePrefixes.dust, Materials.Sodium, 2).input(GT_Items.Battery_Hull_LV.get(1)) .output(GT_Items.Battery_RE_LV_Sodium .get(1)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(2).duration( 400).input(OrePrefixes.dust, Materials.Lithium, 8).input(GT_Items.Battery_Hull_MV.get(1)) .output(GT_Items.Battery_RE_MV_Lithium .get(1)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(2).duration( 400).input(OrePrefixes.dust, Materials.Sodium, 8).input(GT_Items.Battery_Hull_MV.get(1)) .output(GT_Items.Battery_RE_MV_Sodium . get(1)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(2).duration(1600).inputs(new ItemStack(Blocks.sand, 16, 0) , GT_Items.Spray_Empty.get(1)) .output(GT_Items.Spray_Hardener .get(1)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(2).duration( 100).input(OrePrefixes.dust, Materials.Redstone, 2).input(GT_Items.Battery_Hull_LV.get(1)) .output(GT_ModHandler.getIC2Item("reBattery", 1)) .buildAndRegister();
RecipeMaps.CANNING.factory().EUt(1).duration( 800).inputs(GT_Items.IC2_Grin_Powder.get(1) , GT_Items.Spray_Empty.get(1)) .output(GT_ModHandler.getIC2Item("weedEx", 1L)) .buildAndRegister();
for (final Dyes tDye : Dyes.values())
if (tDye != Dyes._NULL) {
for (final ItemStack tIteratedStack : GT_OreDictUnificator.getOres(tDye.toString())) {
if (tIteratedStack.getMaxStackSize() >= 16 && GT_Utility.getContainerItem(tIteratedStack) == null) {
RecipeMaps.CANINNING.factory().EUt(1).duration(800).inputs(GT_Utility.copyAmount(16, tIteratedStack), GT_Items.Spray_Empty.get(1L)).output(GT_Items.SPRAY_CAN_DYES[tDye.mColor].get(1)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(1).duration(800).inputs(GT_Utility.copyAmount(16, tIteratedStack), GT_Items.Spray_Empty.get(1L)).output(GT_Items.SPRAY_CAN_DYES[tDye.mColor].get(1)).buildAndRegister();
}
}
}
RecipeMaps.CANINNING.factory().EUt(1).duration(100).inputs(GT_Items.Crop_Drop_OilBerry.get(4L), GT_Items.Cell_Empty.get(1L)).output(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oil, 1L)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(1).duration(100).inputs(GT_ModHandler.getIC2Item("plantBall", 1L), GT_Items.Cell_Empty.get(1L)).output(GT_ModHandler.getIC2Item("biomassCell", 1L)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(1).duration(100).inputs(GT_Items.Crop_Drop_OilBerry.get(4L), GT_Items.Cell_Empty.get(1L)).output(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oil, 1L)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(1).duration(100).inputs(GT_ModHandler.getIC2Item("plantBall", 1L), GT_Items.Cell_Empty.get(1L)).output(GT_ModHandler.getIC2Item("biomassCell", 1L)).buildAndRegister();
// RecipeMaps.CANINNING.factory().EUt(1).duration(50).inputs(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.BioFuel, 1L), GT_Items.Fuel_Can_Plastic_Empty.get(1L)).outputs(GT_ModHandler.setFuelValue(GT_Items.Fuel_Can_Plastic_Filled.get(1L), (short)(Materials.BioFuel.mFuelPower * 400)), GT_Items.Cell_Empty.get(1L)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(1).duration(100).inputs(new ItemStack(Items.lava_bucket), GT_Items.Cell_Empty.get(1L)).outputs(GT_Items.Cell_Lava.get(1L), new ItemStack(Items.bucket, 1)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(1).duration(100).inputs(new ItemStack(Items.water_bucket), GT_Items.Cell_Empty.get(1L)).outputs(GT_Items.Cell_Water.get(1L), new ItemStack(Items.bucket, 1)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(1).duration(100).inputs(new ItemStack(Items.lava_bucket), GT_Items.Cell_Empty.get(1L)).outputs(GT_Items.Cell_Lava.get(1L), new ItemStack(Items.bucket, 1)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(1).duration(100).inputs(new ItemStack(Items.water_bucket), GT_Items.Cell_Empty.get(1L)).outputs(GT_Items.Cell_Water.get(1L), new ItemStack(Items.bucket, 1)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(8).duration(100).inputs(GT_Items.IC2_Fuel_Rod_Empty.get(1), GT_ModHandler.getIC2Item("UranFuel", 1)).output(GT_ModHandler.getIC2Item("reactorUraniumSimple", 1)).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(8).duration(100).inputs(GT_Items.IC2_Fuel_Rod_Empty.get(1), GT_ModHandler.getIC2Item("MOXFuel", 1)).output(GT_ModHandler.getIC2Item("reactorMOXSimple", 1)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(8).duration(100).inputs(GT_Items.IC2_Fuel_Rod_Empty.get(1), GT_ModHandler.getIC2Item("UranFuel", 1)).output(GT_ModHandler.getIC2Item("reactorUraniumSimple", 1)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(8).duration(100).inputs(GT_Items.IC2_Fuel_Rod_Empty.get(1), GT_ModHandler.getIC2Item("MOXFuel", 1)).output(GT_ModHandler.getIC2Item("reactorMOXSimple", 1)).buildAndRegister();
ItemStack constCell = GT_Utility.fillFluidContainer(GT_Utility.copy(Materials.ConstructionFoam.mFluid, 1000), GT_Items.Cell_Empty.get(1));
RecipeEntry entry = RecipeEntry.fromStacks(10, Lists.newArrayList(
@ -171,8 +171,8 @@ public class GT_MachineRecipeLoader implements Runnable
GT_Items.Frame_Steel.get(1),
GT_Items.Frame_TungstenSteel.get(1)));
RecipeMaps.CANINNING.factory().EUt(4).duration(200).input(GT_Items.Cell_Water.get(1)).input(GT_ModHandler.getIC2Item("constructionFoamPowder", 1)).output(constCell).buildAndRegister();
RecipeMaps.CANINNING.factory().EUt(8).duration(100).input(constCell).input(entry).outputs(GT_ModHandler.getIC2Item("reinforcedStone", 10), GT_Items.Cell_Empty.get(1)).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(4).duration(200).input(GT_Items.Cell_Water.get(1)).input(GT_ModHandler.getIC2Item("constructionFoamPowder", 1)).output(constCell).buildAndRegister();
RecipeMaps.CANNING.factory().EUt(8).duration(100).input(constCell).input(entry).outputs(GT_ModHandler.getIC2Item("reinforcedStone", 10), GT_Items.Cell_Empty.get(1)).buildAndRegister();
RecipeMaps.FUSION_REACTOR.factory().EUt(4096).startEU(40000000).duration(128).inputs(GT_Utility.copy(Materials.Deuterium.mGas, 1000), GT_Utility.copy(Materials.Tritium.mGas, 1000)).output(GT_Utility.copy(Materials.Helium.mPlasma, 1000)).buildAndRegister();
RecipeMaps.FUSION_REACTOR.factory().EUt(2048).startEU(60000000).duration(128).inputs(GT_Utility.copy(Materials.Deuterium.mGas, 1000), GT_Utility.copy(Materials.Helium_3.mGas, 1000)).output(GT_Utility.copy(Materials.Helium.mPlasma, 1000)).buildAndRegister();

View file

@ -69,7 +69,7 @@ public class GT_MetaTileEntityLoader implements Runnable {
new GT_MetaTileEntity_E_Furnace ( 54, "GT_E_Furnace" , RecipeMaps.MELTING);
new GT_MetaTileEntity_Wiremill ( 55, "GT_Wiremill" , RecipeMaps.WIREMILL);
new GT_MetaTileEntity_AlloySmelter ( 56, "GT_AlloySmelter" , RecipeMaps.ALLOY_SMELTING);
new GT_MetaTileEntity_Canner ( 57, "GT_Canner" , RecipeMaps.CANINNING);
new GT_MetaTileEntity_Canner ( 57, "GT_Canner" , RecipeMaps.CANNING);
new GT_MetaTileEntity_ElectricTypeSorter ( 58, "GT_E_T_Sorter");
new GT_MetaTileEntity_Bender ( 59, "GT_Bender" , RecipeMaps.BENDING);
new GT_MetaTileEntity_Assembler ( 60, "GT_Assembler" , RecipeMaps.ASSEMBLING);