Hello Curlip here,
I have been creating a tool that must be charged using Redstone Dust and when fired uses TNT. Currently that all works fine, however when I started the attempt to display the Redstone level using the Damage bar, it starts with a damage offset of 14 damage and caps the top of the redstone level at 50 instead of 64.
ExplodingMiner:
public class ExplodingTool extends SimpleItem {
public ExplodingTool(String itemid) {
super(itemid);
setMaxDamage(50);
setNoRepair();
}
@Override
public boolean onBlockStartBreak(ItemStack stack, BlockPos pos, EntityPlayer player){
if(stack.getTagCompound().getInteger("Redstone") != 0){
if(player.inventory.consumeInventoryItem(Blocks.tnt.getItem(player.worldObj, pos))){
player.worldObj.createExplosion(new EntityTNTPrimed(player.worldObj), (double) pos.getX(), (double) pos.getY(), (double) pos.getZ(), 2, true);
NBTTagCompound compound = stack.getTagCompound();
int redstone = compound.getInteger("Redstone");
compound.setInteger("Redstone", redstone - 1);
return true;
}
return false;
}
return true;
}
@Override
public int getDamage(ItemStack stack){
if(stack.getTagCompound() != null){
int redstone = stack.getTagCompound().getInteger("Redstone");
return getMaxDamage() - redstone;
}
return getMaxDamage();
}
@Override
public ItemStack onItemRightClick(ItemStack stack, World worldIn, EntityPlayer player){
NBTTagCompound compound = stack.getTagCompound();
System.out.println(compound.getInteger("Redstone")); //Debug
if(compound.getInteger("Redstone") != getMaxDamage()){
if(player.inventory.consumeInventoryItem(Items.redstone)){
compound.setInteger("Redstone", (compound.getInteger("Redstone"))+1);
}
}
return stack;
}
public void onUpdate(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) {
if(stack.getTagCompound() == null){
stack.setTagCompound(new NBTTagCompound());
}
}
@Override
public int getMaxDamage(ItemStack stack){
return 64;
}
@Override
public float getDigSpeed(ItemStack stack, IBlockState state){
return 5;
}
@Override
public boolean showDurabilityBar(ItemStack stack){
return true;
}
}
Thanks in Advance
- Curlip
(First Post)