Hbm-s-Nuclear-Tech-GIT/com/hbm/items/tool/ItemChemistryTemplate.java

247 lines
5.8 KiB
Java

package com.hbm.items.tool;
import java.util.List;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.inventory.FluidStack;
import com.hbm.inventory.MachineRecipes;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.resources.I18n;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.StatCollector;
public class ItemChemistryTemplate extends Item {
public enum EnumChemistryTemplate {
//FP - Fuel Processing
//FR - Fuel Reprocessing
//FC - Fuel Cracking
//CC - Coal Cracking
//SF - Solid Fuel Production
//BP - Biofuel Production
TEST,
FP_HEAVYOIL,
FP_SMEAR,
FP_NAPHTHA,
FP_LIGHTOIL,
FR_REOIL,
FR_PETROIL,
FC_I_NAPHTHA,
FC_GAS_PETROLEUM,
FC_DIESEL_KEROSENE,
FC_KEROSENE_PETROLEUM,
CC_OIL,
CC_I,
CC_HEATING,
CC_HEAVY,
CC_NAPHTHA,
SF_OIL,
SF_HEAVYOIL,
SF_SMEAR,
SF_HEATINGOIL,
SF_RECLAIMED,
SF_PETROIL,
SF_LUBRICANT,
SF_NAPHTHA,
SF_DIESEL,
SF_LIGHTOIL,
SF_KEROSENE,
SF_GAS,
SF_PETROLEUM,
BP_BIOGAS,
BP_BIOFUEL,
ASPHALT,
COOLANT,
DESH,
PEROXIDE,
CIRCUIT_4,
CIRCUIT_5,
POLYMER,
DEUTERIUM,
STEAM,
UF6,
PUF6;
public static EnumChemistryTemplate getEnum(int i) {
if(i < EnumChemistryTemplate.values().length)
return EnumChemistryTemplate.values()[i];
else
return FP_HEAVYOIL;
}
public String getName() {
return this.toString();
}
}
public ItemChemistryTemplate()
{
this.setHasSubtypes(true);
this.setMaxDamage(0);
}
public String getItemStackDisplayName(ItemStack stack)
{
String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim();
String s1 = ("" + StatCollector.translateToLocal("chem." + EnumChemistryTemplate.getEnum(stack.getItemDamage()).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 < EnumChemistryTemplate.values().length; ++i)
{
list.add(new ItemStack(item, 1, i));
}
}
public static int getProcessTime(ItemStack stack) {
if(!(stack.getItem() instanceof ItemChemistryTemplate))
return 100;
int i = stack.getItemDamage();
EnumChemistryTemplate enum1 = EnumChemistryTemplate.getEnum(i);
switch (enum1) {
case TEST:
return 200;
case FP_HEAVYOIL:
return 50;
case FP_SMEAR:
return 50;
case FP_NAPHTHA:
return 50;
case FP_LIGHTOIL:
return 50;
case FR_REOIL:
return 30;
case FR_PETROIL:
return 30;
case FC_I_NAPHTHA:
return 150;
case FC_GAS_PETROLEUM:
return 100;
case FC_DIESEL_KEROSENE:
return 150;
case FC_KEROSENE_PETROLEUM:
return 150;
case CC_OIL:
return 150;
case CC_I:
return 200;
case CC_HEATING:
return 250;
case CC_HEAVY:
return 200;
case CC_NAPHTHA:
return 300;
case ASPHALT:
return 100;
case COOLANT:
return 50;
case DESH:
return 300;
case PEROXIDE:
return 50;
case CIRCUIT_4:
return 200;
case CIRCUIT_5:
return 250;
case SF_OIL:
return 20;
case SF_HEAVYOIL:
return 20;
case SF_SMEAR:
return 20;
case SF_HEATINGOIL:
return 20;
case SF_RECLAIMED:
return 20;
case SF_PETROIL:
return 20;
case SF_LUBRICANT:
return 20;
case SF_NAPHTHA:
return 20;
case SF_DIESEL:
return 20;
case SF_LIGHTOIL:
return 20;
case SF_KEROSENE:
return 20;
case SF_GAS:
return 20;
case SF_PETROLEUM:
return 20;
case POLYMER:
return 100;
case DEUTERIUM:
return 200;
case STEAM:
return 20;
case BP_BIOGAS:
return 200;
case BP_BIOFUEL:
return 300;
default:
return 100;
}
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool)
{
if(!(stack.getItem() instanceof ItemChemistryTemplate))
return;
List<ItemStack> stacks = MachineRecipes.getChemInputFromTempate(stack);
FluidStack[] inF = MachineRecipes.getFluidInputFromTempate(stack);
ItemStack[] out = MachineRecipes.getChemOutputFromTempate(stack);
FluidStack[] outF = MachineRecipes.getFluidOutputFromTempate(stack);
//try {
list.add("Outputs:");
for(int i = 0; i < 4; i++)
if(out[i] != null)
list.add(out[i].stackSize + "x " + out[i].getDisplayName());
for(int i = 0; i < 2; i++)
if(outF[i] != null)
list.add(outF[i].fill + "mB " + I18n.format(outF[i].type.getUnlocalizedName()));
list.add("Inputs:");
if(stacks != null)
for(int i = 0; i < stacks.size(); i++)
list.add(stacks.get(i).stackSize + "x " + stacks.get(i).getDisplayName());
for(int i = 0; i < 2; i++)
if(inF[i] != null)
list.add(inF[i].fill + "mB " + I18n.format(inF[i].type.getUnlocalizedName()));
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");
//}
}
}