/*
* Copyright (c) CovertJaguar, 2014 http://railcraft.info
*
* This code is the property of CovertJaguar
* and may only be used with explicit written
* permission unless otherwise specified on the
* license page at http://railcraft.info/wiki/info:license.
*/
package mods.railcraft.common.blocks.aesthetics.post;
import java.util.List;
import mods.railcraft.client.emblems.Emblem;
import mods.railcraft.client.emblems.EmblemToolsClient;
import mods.railcraft.common.util.inventory.InvTools;
import mods.railcraft.common.util.misc.EnumColor;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagString;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IIcon;
/**
*
* @author CovertJaguar <http://www.railcraft.info>
*/
public class ItemPost extends ItemBlock {
public static void setEmblem(ItemStack stack, String emblemIdentifier) {
NBTTagCompound nbt = InvTools.getItemData(stack);
nbt.setString("emblem", emblemIdentifier);
}
public static String getEmblem(ItemStack stack) {
NBTTagCompound nbt = stack.getTagCompound();
if (nbt == null || !nbt.hasKey("emblem"))
return "";
return nbt.getString("emblem");
}
public ItemPost(Block block) {
super(block);
setMaxDamage(0);
setHasSubtypes(true);
setUnlocalizedName("railcraft.post");
}
@Override
public IIcon getIconFromDamage(int damage) {
return EnumPost.fromId(damage).getIcon();
}
@Override
public IIcon getIcon(ItemStack stack, int pass) {
if (stack.getItemDamage() == EnumPost.EMBLEM.ordinal()) {
EnumColor color = InvTools.getItemColor(stack);
if (color != null && BlockPostMetal.textures != null)
return BlockPostMetal.textures[color.ordinal()];
}
return super.getIcon(stack, pass);
}
@Override
public int getMetadata(int damage) {
return damage;
}
@Override
public String getUnlocalizedName(ItemStack stack) {
return EnumPost.fromId(stack.getItemDamage()).getTag();
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List info, boolean adv) {
if (stack.getItemDamage() == EnumPost.EMBLEM.ordinal() && stack.hasTagCompound()) {
NBTTagCompound nbt = stack.getTagCompound();
NBTTagString emblemIdent = (NBTTagString) nbt.getTag("emblem");
if (emblemIdent == null || EmblemToolsClient.packageManager == null)
return;
Emblem emblem = EmblemToolsClient.packageManager.getEmblem(emblemIdent.func_150285_a_());
if (emblem != null)
info.add(EnumChatFormatting.GRAY + emblem.displayName);
}
}
}