package crazypants.enderio.conduit.item.filter;
import java.util.List;
import net.minecraft.client.renderer.texture.IIconRegister;
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.EnumChatFormatting;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import com.enderio.core.client.handlers.SpecialTooltipHandler;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import crazypants.enderio.EnderIO;
import crazypants.enderio.EnderIOTab;
import crazypants.enderio.ModObject;
import crazypants.enderio.conduit.item.FilterRegister;
public class ItemBasicItemFilter extends Item implements IItemFilterUpgrade {
public static ItemBasicItemFilter create() {
ItemBasicItemFilter result = new ItemBasicItemFilter();
result.init();
return result;
}
private final IIcon[] icons;
protected ItemBasicItemFilter() {
setCreativeTab(EnderIOTab.tabEnderIO);
setUnlocalizedName(ModObject.itemBasicFilterUpgrade.unlocalisedName);
setHasSubtypes(true);
setMaxDamage(0);
setMaxStackSize(64);
icons = new IIcon[2];
}
protected void init() {
GameRegistry.registerItem(this, ModObject.itemBasicFilterUpgrade.unlocalisedName);
}
@Override
public IItemFilter createFilterFromStack(ItemStack stack) {
int damage = MathHelper.clamp_int(stack.getItemDamage(), 0, 1);
ItemFilter filter;
if(damage == 0) {
filter = new ItemFilter(false);
} else {
filter = new ItemFilter(true);
}
if(stack.stackTagCompound != null && stack.stackTagCompound.hasKey("filter")) {
filter.readFromNBT(stack.stackTagCompound.getCompoundTag("filter"));
}
return filter;
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(int damage) {
damage = MathHelper.clamp_int(damage, 0, 1);
return icons[damage];
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister IIconRegister) {
icons[0] = IIconRegister.registerIcon("enderio:filterUpgradeBasic");
icons[1] = IIconRegister.registerIcon("enderio:filterUpgradeAdvanced");
}
@Override
public String getUnlocalizedName(ItemStack par1ItemStack) {
int i = MathHelper.clamp_int(par1ItemStack.getItemDamage(), 0, 1);
return i == 0 ? "enderio.filterUpgradeBasic" : "enderio.filterUpgradeAdvanced";
}
@Override
@SuppressWarnings({ "rawtypes", "unchecked" })
@SideOnly(Side.CLIENT)
public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List par3List) {
for (int j = 0; j < 2; ++j) {
par3List.add(new ItemStack(this, 1, j));
}
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) {
if(FilterRegister.isFilterSet(par1ItemStack)) {
if(!SpecialTooltipHandler.showAdvancedTooltips()) {
par3List.add(EnderIO.lang.localize("itemConduitFilterUpgrade"));
SpecialTooltipHandler.addShowDetailsTooltip(par3List);
} else {
par3List.add(EnumChatFormatting.ITALIC + EnderIO.lang.localize("itemConduitFilterUpgrade.configured"));
par3List.add(EnumChatFormatting.ITALIC + EnderIO.lang.localize("itemConduitFilterUpgrade.clearConfigMethod"));
}
} else {
par3List.add(EnderIO.lang.localize("itemConduitFilterUpgrade"));
}
}
}