package advancedsystemsmanager.items.blocks;
import advancedsystemsmanager.api.tileentities.ITileFactory;
import advancedsystemsmanager.api.items.IElementItem;
import advancedsystemsmanager.api.items.ITooltipFactory;
import advancedsystemsmanager.api.tileentities.ITileElement;
import advancedsystemsmanager.blocks.BlockTileElement;
import advancedsystemsmanager.blocks.TileFactory;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ItemTileElement extends ItemBlock implements IElementItem
{
private BlockTileElement block;
public ItemTileElement(Block block)
{
super(block);
this.block = (BlockTileElement)block;
setHasSubtypes(true);
setMaxDamage(0);
}
@Override
public String getUnlocalizedName(ItemStack stack)
{
ITileFactory factory = getTileFactory(stack);
return factory == null ? null : factory.getUnlocalizedName(stack.getItemDamage() / 16);
}
@Override
@SuppressWarnings(value = "unchecked")
public void addInformation(ItemStack stack, EntityPlayer player, List information, boolean advanced)
{
ITileFactory factory = getTileFactory(stack);
if (factory != null)
factory.addInformation(stack, player, (List<String>)information, advanced);
}
@Override
public int getMetadata(int damage)
{
return damage;
}
@Override
public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int metadata)
{
if (!getTileFactory(stack).canPlaceBlock(world, x, y, z, stack))
{
return false;
}
if (!super.placeBlockAt(stack, player, world, x, y, z, side, hitX, hitY, hitZ, metadata))
{
return false;
}
TileEntity te = world.getTileEntity(x, y, z);
if (te instanceof ITileElement)
{
((ITileElement) te).setSubtype(stack.getItemDamage() / 16);
if (stack.hasTagCompound())
{
((ITileElement) te).readItemNBT(stack.getTagCompound());
}
}
return true;
}
@Override
public void onCreated(ItemStack stack, World world, EntityPlayer player)
{
super.onCreated(stack, world, player);
ITileFactory factory = getTileFactory(stack);
if (factory instanceof TileFactory)
{
((TileFactory) factory).onCreated(stack, world, player);
}
}
@Override
public ITileFactory getTileFactory(ItemStack stack)
{
return block.getTileFactory(stack);
}
}