package com.hbm.items.tool; import java.util.List; import com.hbm.inventory.MachineRecipes; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityList; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.StatCollector; public class ItemAssemblyTemplate extends Item { public enum EnumAssemblyTemplate { TEST, MIXED_PLATE, HAZMAT_CLOTH, ASBESTOS_CLOTH, COAL_FILTER, CENTRIFUGE_ELEMENT, CENTRIFUGE_TOWER, DEE_MAGNET, FLAT_MAGNET, CYCLOTRON_TOWER, REACTOR_CORE, RTG_UNIT, HEAT_UNIT, GRAVITY_UNIT, TITANIUM_DRILL, TELEPAD, TELEKIT, GEASS_REACTOR, GENERATOR_FRONT, WT1_GENERIC, WT2_GENERIC, WT3_GENERIC, WT1_FIRE, WT2_FIRE, WT3_FIRE, WT1_CLUSTER, WT2_CLUSTER, WT3_CLUSTER, WT1_BUSTER, WT2_BUSTER, WT3_BUSTER, W_NUCLEAR, W_MIRVLET, W_MIRV, W_ENDOTHERMIC, W_EXOTHERMIC, T1_TANK, T2_TANK, T3_TANK, T1_THRUSTER, T2_THRUSTER, T3_THRUSTER, CHOPPER_HEAD, CHOPPER_GUN, CHOPPER_BODY, CHOPPER_TAIL, CHOPPER_WING, CHOPPER_BLADES, CIRCUIT_2, CIRCUIT_3, RTG_PELLET, WEAK_PELLET, FUSION_PELLET, CLUSTER_PELLETS, GUN_PELLETS, AUSTRALIUM_MACHINE, MAGNETRON, W_SP, W_SHE, W_SME, W_SLE, W_B, W_N, W_L, W_A, UPGRADE_TEMPLATE, UPGRADE_RED_I, UPGRADE_RED_II, UPGRADE_RED_III, UPGRADE_GREEN_I, UPGRADE_GREEN_II, UPGRADE_GREEN_III, UPGRADE_BLUE_I, UPGRADE_BLUE_II, UPGRADE_BLUE_III, UPGRADE_PURPLE_I, UPGRADE_PURPLE_II, UPGRADE_PURPLE_III, FUSE, REDCOIL_CAPACITOR, TITANIUM_FILTER, LITHIUM_BOX, BERYLLIUM_BOX, COAL_BOX, COPPER_BOX, PLUTONIUM_BOX, THERMO_ELEMENT, LIMITER, ANGRY_METAL, CMB_TILE, CMB_BRICKS, HATCH_FRAME, HATCH_CONTROLLER, CENTRIFUGE, BREEDING_REACTOR, RTG_FURNACE, DIESEL_GENERATOR, NUCLEAR_GENERATOR, INDUSTRIAL_GENERATOR, CYCLOTRON, RT_GENERATOR, BATTERY, HE_TO_RF, RF_TO_HE, SHREDDER, DEUTERIUM_EXTRACTOR, DERRICK, FLARE_STACK, REFINERY; //private final int value; //private EnumAssemblyTemplate(int value) { // this.value = value; //} //public int getValue() { // return value; //} public static EnumAssemblyTemplate getEnum(int i) { return EnumAssemblyTemplate.values()[i]; } public String getName() { return this.toString(); } } public ItemAssemblyTemplate() { this.setHasSubtypes(true); this.setMaxDamage(0); } public String getItemStackDisplayName(ItemStack stack) { String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); ItemStack out = MachineRecipes.getOutputFromTempate(stack); String s1 = ("" + StatCollector.translateToLocal((out != null ? out.getUnlocalizedName() : "") + ".name")).trim(); if (s1 != null) { s = s + " " + s1; } return s; } @Override @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tabs, List list) { for (int i = 0; i < EnumAssemblyTemplate.values().length; ++i) { list.add(new ItemStack(item, 1, i)); } } public static int getProcessTime(ItemStack stack) { if(!(stack.getItem() instanceof ItemAssemblyTemplate)) return 100; int i = stack.getItemDamage(); EnumAssemblyTemplate enum1 = EnumAssemblyTemplate.getEnum(i); switch (enum1) { case TEST: return 200; case MIXED_PLATE: return 50; case HAZMAT_CLOTH: return 50; case ASBESTOS_CLOTH: return 50; case COAL_FILTER: return 50; case CENTRIFUGE_ELEMENT: return 200; case CENTRIFUGE_TOWER: return 150; case DEE_MAGNET: return 100; case FLAT_MAGNET: return 150; case CYCLOTRON_TOWER: return 300; case REACTOR_CORE: return 100; case RTG_UNIT: return 100; case HEAT_UNIT: return 100; case GRAVITY_UNIT: return 100; case TITANIUM_DRILL: return 100; case TELEPAD: return 300; case TELEKIT: return 200; case GEASS_REACTOR: return 200; case GENERATOR_FRONT: return 200; case WT1_GENERIC: return 100; case WT2_GENERIC: return 150; case WT3_GENERIC: return 200; case WT1_FIRE: return 100; case WT2_FIRE: return 150; case WT3_FIRE: return 200; case WT1_CLUSTER: return 100; case WT2_CLUSTER: return 150; case WT3_CLUSTER: return 200; case WT1_BUSTER: return 100; case WT2_BUSTER: return 150; case WT3_BUSTER: return 200; case W_NUCLEAR: return 300; case W_MIRVLET: return 250; case W_MIRV: return 500; case W_ENDOTHERMIC: return 300; case W_EXOTHERMIC: return 300; case T1_TANK: return 100; case T2_TANK: return 150; case T3_TANK: return 200; case T1_THRUSTER: return 100; case T2_THRUSTER: return 150; case T3_THRUSTER: return 200; case CHOPPER_HEAD: return 300; case CHOPPER_GUN: return 150; case CHOPPER_BODY: return 350; case CHOPPER_TAIL: return 200; case CHOPPER_WING: return 150; case CHOPPER_BLADES: return 200; case CIRCUIT_2: return 100; case CIRCUIT_3: return 150; case RTG_PELLET: return 50; case WEAK_PELLET: return 50; case FUSION_PELLET: return 150; case CLUSTER_PELLETS: return 50; case GUN_PELLETS: return 50; case AUSTRALIUM_MACHINE: return 150; case MAGNETRON: return 100; case W_SP: return 200; case W_SHE: return 200; case W_SME: return 200; case W_SLE: return 200; case W_B: return 200; case W_N: return 200; case W_L: return 200; case W_A: return 200; case UPGRADE_TEMPLATE: return 100; case UPGRADE_RED_I: return 200; case UPGRADE_RED_II: return 300; case UPGRADE_RED_III: return 500; case UPGRADE_GREEN_I: return 200; case UPGRADE_GREEN_II: return 300; case UPGRADE_GREEN_III: return 500; case UPGRADE_BLUE_I: return 200; case UPGRADE_BLUE_II: return 300; case UPGRADE_BLUE_III: return 500; case UPGRADE_PURPLE_I: return 200; case UPGRADE_PURPLE_II: return 300; case UPGRADE_PURPLE_III: return 500; case FUSE: return 100; case REDCOIL_CAPACITOR: return 200; case TITANIUM_FILTER: return 200; case LITHIUM_BOX: return 50; case BERYLLIUM_BOX: return 50; case COAL_BOX: return 50; case COPPER_BOX: return 50; case PLUTONIUM_BOX: return 50; case THERMO_ELEMENT: return 150; case LIMITER: return 150; case ANGRY_METAL: return 50; case CMB_TILE: return 100; case CMB_BRICKS: return 200; case HATCH_FRAME: return 50; case HATCH_CONTROLLER: return 100; case CENTRIFUGE: return 250; case BREEDING_REACTOR: return 150; case RTG_FURNACE: return 150; case DIESEL_GENERATOR: return 200; case NUCLEAR_GENERATOR: return 300; case INDUSTRIAL_GENERATOR: return 500; case CYCLOTRON: return 600; case RT_GENERATOR: return 200; case BATTERY: return 200; case HE_TO_RF: return 150; case RF_TO_HE: return 150; case SHREDDER: return 200; case DEUTERIUM_EXTRACTOR: return 150; case DERRICK: return 250; case FLARE_STACK: return 200; case REFINERY: return 150; default: return 100; } } @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { if(!(stack.getItem() instanceof ItemAssemblyTemplate)) return; List stacks = MachineRecipes.getRecipeFromTempate(stack); ItemStack out = MachineRecipes.getOutputFromTempate(stack); try { list.add("Output:"); list.add(out.stackSize + "x " + out.getDisplayName()); list.add("Inputs:"); for(int i = 0; i < stacks.size(); i++) { if(stacks.get(i) != null) list.add(stacks.get(i).stackSize + "x " + stacks.get(i).getDisplayName()); } list.add("Production time:"); list.add(Math.floor((float)(getProcessTime(stack)) / 20 * 100) / 100 + " seconds"); } catch(Exception e) { list.add("###INVALID###"); list.add("0x334077-0x6A298F-0xDF3795-0x334077"); } } /*public Motif getColorMotifFromTemplate(EnumAssemblyTemplate temp) { //using deprecated value operator, will remove soon if(temp.getValue() > 0) { Motif scheme = new Motif(temp.getValue, null); scheme.setTextureSize(16, 16); //scheme.applyUniversalScheme(); scheme.colorCount = 4; //universal scheme configuration for testing //TODO: get textures properly baked, display color for shield scheme.addColor(0x334077); scheme.addColor(0x6A298F); scheme.addColor(0xDF3795); scheme.addColor(0x334077); //different test config; prpl, lprpl, cyn, prpl scheme.unify(); return scheme; } else { //return null; return Motif.defaultInstance; } }*/ }