public ContainerInventoryItem(ItemStack stack, InventoryPlayer inventory) { player = inventory.player; containerIndex = inventory.currentItem; containerWrapper = new InventoryContainerItemWrapper(stack); }
public String getInventoryName() { return containerWrapper.getName(); }
public InventoryContainerItemWrapper(ItemStack itemstack) { stack = itemstack; inventoryItem = (IInventoryContainerItem) stack.getItem(); inventory = new ItemStack[getSizeInventory()]; Arrays.fill(inventory, ItemStack.EMPTY); loadInventory(); markDirty(); }
private void emptyInventoryIntoTarget(ItemStack stack, IItemHandler target) { InventoryContainerItemWrapper wrapper = new InventoryContainerItemWrapper(stack); for (int i = 0; i < getSizeInventory(stack); i++) { ItemStack slot = wrapper.getStackInSlot(i); if (!slot.isEmpty()) { ItemStack remainder = ItemHandlerHelper.insertItem(target, slot, false); if (!isCreative(stack)) { wrapper.setInventorySlotContents(i, remainder); } } } wrapper.markDirty(); }
@Override public String getInventoryName() { return containerWrapper.hasCustomName() ? containerWrapper.getName() : StringHelper.localize(NAME); }
@Override protected int getSizeInventory() { return containerWrapper.getSizeInventory(); }
@Override public void closeInventory(EntityPlayer player) { markDirty(); }
public void onSlotChanged() { ItemStack item = player.inventory.mainInventory.get(containerIndex); if (valid && !item.isEmpty() && item.getItem() == containerWrapper.getContainerItem()) { player.inventory.mainInventory.set(containerIndex, containerWrapper.getContainerStack()); } }
@Override public boolean isItemValid(ItemStack stack) { return containerWrapper.isItemValidForSlot(0, stack); }
public ItemStack getContainerStack() { return containerWrapper.getContainerStack(); }
@Override public boolean canInteractWith(EntityPlayer player) { onSlotChanged(); if (containerWrapper.getDirty() && !valid) { player.inventory.setItemStack(ItemStack.EMPTY); } return valid; }
@Override public void detectAndSendChanges() { ItemStack item = player.inventory.mainInventory.get(containerIndex); if (item.isEmpty() || item.getItem() != containerWrapper.getContainerItem()) { valid = false; return; } super.detectAndSendChanges(); }
} else if (!(eventItem.getItem() instanceof IInventoryContainerItem) || ((IInventoryContainerItem) eventItem.getItem()).getSizeInventory(stack) <= 0) { int count = eventItem.getCount(); InventoryContainerItemWrapper inv = new InventoryContainerItemWrapper(stack); for (int i = 0; i < inv.getSizeInventory(); i++) { ItemStack slot = inv.getStackInSlot(i); if (slot.isEmpty()) { inv.setInventorySlotContents(i, eventItem.copy()); eventItem.setCount(0); } else if (ItemHandlerHelper.canItemStacksStack(eventItem, slot)) { EntityPlayer player = event.getEntityPlayer(); player.world.playSound(null, player.posX, player.posY, player.posZ, SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.PLAYERS, 0.2F, ((MathHelper.RANDOM.nextFloat() - MathHelper.RANDOM.nextFloat()) * 0.7F + 1.0F) * 2.0F); inv.markDirty();