Package mods.railcraft.common.blocks.aesthetics.post

Source Code of mods.railcraft.common.blocks.aesthetics.post.ItemPost

/*
* 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);
        }
    }

}
TOP

Related Classes of mods.railcraft.common.blocks.aesthetics.post.ItemPost

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.