package mekanism.common.item;
import java.util.List;
import mekanism.common.Tier.BaseTier;
import mekanism.common.base.IMetaItem;
import mekanism.common.base.ITierUpgradeable;
import mekanism.common.tile.TileEntityBasicBlock;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
public class ItemTierInstaller extends ItemMekanism implements IMetaItem
{
public ItemTierInstaller()
{
super();
setMaxStackSize(1);
setHasSubtypes(true);
}
@Override
public EnumActionResult onItemUseFirst(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, EnumHand hand)
{
if(world.isRemote)
{
return EnumActionResult.PASS;
}
TileEntity tile = world.getTileEntity(pos);
BaseTier tier = BaseTier.values()[stack.getItemDamage()];
if(tile instanceof ITierUpgradeable)
{
if(tile instanceof TileEntityBasicBlock && ((TileEntityBasicBlock)tile).playersUsing.size() > 0)
{
return EnumActionResult.FAIL;
}
if(((ITierUpgradeable)tile).upgrade(tier))
{
if(!player.capabilities.isCreativeMode)
{
stack.stackSize--;
}
return EnumActionResult.SUCCESS;
}
return EnumActionResult.PASS;
}
return EnumActionResult.PASS;
}
@Override
public String getTexture(int meta)
{
return BaseTier.values()[meta].getSimpleName() + "TierInstaller";
}
@Override
public int getVariants()
{
return BaseTier.values().length-1;
}
@Override
public void getSubItems(Item item, CreativeTabs tabs, List<ItemStack> itemList)
{
for(BaseTier tier : BaseTier.values())
{
if(tier.isObtainable())
{
itemList.add(new ItemStack(item, 1, tier.ordinal()));
}
}
}
@Override
public String getUnlocalizedName(ItemStack item)
{
return "item." + BaseTier.values()[item.getItemDamage()].getSimpleName().toLowerCase() + "TierInstaller";
}
}