Mekanism-tilera-Edition/src/main/java/mekanism/common/item/ItemWalkieTalkie.java
2014-06-10 11:35:54 +02:00

112 lines
2.4 KiB
Java

package mekanism.common.item;
import java.util.List;
import mekanism.api.EnumColor;
import mekanism.common.util.MekanismUtils;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
public class ItemWalkieTalkie extends ItemMekanism
{
public IIcon[] icons = new IIcon[256];
public ItemWalkieTalkie()
{
super();
setMaxStackSize(1);
}
@Override
public void addInformation(ItemStack itemstack, EntityPlayer entityplayer, List list, boolean flag)
{
super.addInformation(itemstack, entityplayer, list, flag);
list.add((getOn(itemstack) ? EnumColor.DARK_GREEN : EnumColor.DARK_RED) + MekanismUtils.localize("gui." + (getOn(itemstack) ? "on" : "off")));
list.add(EnumColor.DARK_AQUA + MekanismUtils.localize("tooltip.channel") + ": " + EnumColor.GREY + getChannel(itemstack));
}
@Override
public IIcon getIconIndex(ItemStack itemStack)
{
if(!getOn(itemStack))
{
return icons[0];
}
return icons[getChannel(itemStack)];
}
@Override
public void registerIcons(IIconRegister register)
{
icons[0] = register.registerIcon("mekanism:WalkieTalkieOff");
for(int i = 1; i <= 9; i++)
{
icons[i] = register.registerIcon("mekanism:WalkieTalkie_ch" + i);
}
}
@Override
public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player)
{
if(player.isSneaking())
{
setOn(itemStack, !getOn(itemStack));
}
return itemStack;
}
public void setOn(ItemStack itemStack, boolean on)
{
if(itemStack.stackTagCompound == null)
{
itemStack.setTagCompound(new NBTTagCompound());
}
itemStack.stackTagCompound.setBoolean("on", on);
}
public boolean getOn(ItemStack itemStack)
{
if(itemStack.stackTagCompound == null)
{
return false;
}
return itemStack.stackTagCompound.getBoolean("on");
}
public void setChannel(ItemStack itemStack, int channel)
{
if(itemStack.stackTagCompound == null)
{
itemStack.setTagCompound(new NBTTagCompound());
}
itemStack.stackTagCompound.setInteger("channel", channel);
}
public int getChannel(ItemStack itemStack)
{
if(itemStack.stackTagCompound == null)
{
return 1;
}
int channel = itemStack.stackTagCompound.getInteger("channel");
if(channel == 0)
{
setChannel(itemStack, 1);
}
return itemStack.stackTagCompound.getInteger("channel");
}
}