| package calclavia.lib; |
| |
| import ic2.api.item.Items; |
| |
| import java.util.Arrays; |
| import java.util.List; |
| |
| import net.minecraft.block.Block; |
| import net.minecraft.item.Item; |
| import net.minecraft.item.ItemStack; |
| import net.minecraftforge.oredict.OreDictionary; |
| |
| import com.google.common.collect.Lists; |
| |
| import cpw.mods.fml.common.FMLLog; |
| |
| /** |
| * Allows recipes that are compatible with UE -> IC2 -> Buildcraft. |
| * |
| * @author Calclavia |
| * |
| */ |
| public class UniversalRecipes |
| { |
| private static final String PREFIX = "calclavia:"; |
| /** |
| * Primary Metal: Steel |
| */ |
| public static final String PRIMARY_METAL = "ingotSteel"; |
| public static final String PRIMARY_PLATE = "plateSteel"; |
| |
| /** |
| * Secondary Metal: Bronze |
| */ |
| public static final String SECONDARY_METAL = "ingotBronze"; |
| public static final String SECONDARY_PLATE = "plateBronze"; |
| |
| /** |
| * Circuits |
| */ |
| public static final String CIRCUIT_T1 = PREFIX + "CIRCUIT_T1"; |
| public static final String CIRCUIT_T2 = PREFIX + "CIRCUIT_T2"; |
| public static final String CIRCUIT_T3 = PREFIX + "CIRCUIT_T3"; |
| |
| /** |
| * Battery |
| */ |
| public static String ADVANCED_BATTERY = PREFIX + "ADVANCED_BATTERY"; |
| public static String BATTERY = PREFIX + "BATTERY"; |
| public static String BATTERY_BOX = PREFIX + "BATTERY_BOX"; |
| |
| /** |
| * Misc |
| */ |
| public static final String WRENCH = PREFIX + "WRENCH"; |
| public static final String WIRE = PREFIX + "WIRE"; |
| public static final String MOTOR = PREFIX + "MOTOR"; |
| |
| public static boolean isInit = false; |
| |
| public static void init() |
| { |
| if (!isInit) |
| { |
| // Metals |
| /* |
| * register(PRIMARY_METAL, "ingotSteel", "ingotRefinedIron", new |
| * ItemStack(Item.ingotIron)); register(SECONDARY_METAL, "ingotBronze", new |
| * ItemStack(Item.brick)); |
| */ |
| |
| // Plates |
| register(PRIMARY_PLATE, "plateSteel", Items.getItem("advancedAlloy"), new ItemStack(Block.blockIron)); |
| register(SECONDARY_PLATE, "plateBronze", Items.getItem("carbonPlate"), new ItemStack(Block.brick)); |
| // Miscs |
| register(CIRCUIT_T1, "circuitBasic", Items.getItem("electronicCircuit"), new ItemStack(Block.torchRedstoneActive)); |
| register(CIRCUIT_T2, "circuitAdvanced", Items.getItem("advancedCircuit"), new ItemStack(Item.redstoneRepeater)); |
| register(CIRCUIT_T3, "circuitElite", Items.getItem("iridiumPlate"), new ItemStack(Item.comparator)); |
| |
| register(ADVANCED_BATTERY, "advancedBattery", Items.getItem("energyCrystal"), "battery", new ItemStack(Item.redstoneRepeater)); |
| register(BATTERY, "battery", Items.getItem("reBattery"), new ItemStack(Item.redstoneRepeater)); |
| register(BATTERY_BOX, "batteryBox", Items.getItem("batBox"), new ItemStack(Block.blockGold)); |
| |
| register(WRENCH, "wrench", Items.getItem("wrench"), new ItemStack(Item.axeIron)); |
| register(WIRE, "copperWire", "copperCableBlock", new ItemStack(Item.redstone)); |
| |
| register(MOTOR, "motor", Items.getItem("generator"), new ItemStack(Block.pistonBase)); |
| |
| isInit = true; |
| } |
| |
| } |
| |
| public static void register(String name, Object... possiblities) |
| { |
| for (Object possiblity : possiblities) |
| { |
| if (possiblity instanceof ItemStack) |
| { |
| if (registerItemStacksToDictionary(name, (ItemStack) possiblity)) |
| { |
| break; |
| } |
| |
| continue; |
| } |
| else if (possiblity instanceof String) |
| { |
| if (registerItemStacksToDictionary(name, (String) possiblity)) |
| { |
| break; |
| } |
| |
| continue; |
| } |
| |
| FMLLog.severe("Universal Recipes: Error Registering " + name); |
| |
| } |
| } |
| |
| public static boolean registerItemStacksToDictionary(String name, List<ItemStack> itemStacks) |
| { |
| boolean returnValue = false; |
| |
| if (itemStacks != null) |
| { |
| if (itemStacks.size() > 0) |
| { |
| for (ItemStack stack : itemStacks.toArray(new ItemStack[0])) |
| { |
| if (stack != null) |
| { |
| OreDictionary.registerOre(name, stack); |
| returnValue = true; |
| } |
| } |
| } |
| } |
| |
| return returnValue; |
| } |
| |
| public static boolean registerItemStacksToDictionary(String name, ItemStack... itemStacks) |
| { |
| return registerItemStacksToDictionary(name, Arrays.asList(itemStacks)); |
| } |
| |
| public static boolean registerItemStacksToDictionary(String name, String stackName) |
| { |
| return registerItemStacksToDictionary(name, OreDictionary.getOres(stackName)); |
| } |
| } |