78 lines
1.8 KiB
Java

package com.hbm.items.special;
import java.util.List;
import com.hbm.items.ModItems;
import com.hbm.util.ItemStackUtil;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class ItemKitNBT extends Item {
public ItemKitNBT() {
this.setMaxStackSize(1);
}
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
ItemStack[] stacks = ItemStackUtil.readStacksFromNBT(stack);
if(stacks != null) {
for(ItemStack item : stacks) {
if(item != null) {
player.inventory.addItemStackToInventory(item.copy());
}
}
}
ItemStack container = stack.getItem().getContainerItem(stack);
stack.stackSize--;
if(container != null) {
if(stack.stackSize > 0) {
player.inventory.addItemStackToInventory(container.copy());
} else {
stack = container.copy();
}
}
world.playSoundAtEntity(player, "hbm:item.unpack", 1.0F, 1.0F);
return stack;
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
ItemStack[] stacks = ItemStackUtil.readStacksFromNBT(stack);
if(stacks != null) {
list.add("Contains:");
for(ItemStack item : stacks) {
list.add("-" + item.getDisplayName() + (item.stackSize > 1 ? (" x" + item.stackSize) : ""));
}
}
}
public static ItemStack create(ItemStack... contents) {
ItemStack stack = new ItemStack(ModItems.kit_toolbox);
stack.stackTagCompound = new NBTTagCompound();
ItemStackUtil.addStacksToNBT(stack, contents);
return stack;
}
}