112 lines
2.4 KiB
Java
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");
|
|
}
|
|
}
|