protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) { int xOffset = getPlayerInventoryHorizontalOffset(); int yOffset = getPlayerInventoryVerticalOffset(); for (int i = 0; i < 3; i++) { for (int j = 0; j < 9; j++) { addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, xOffset + j * 18, yOffset + i * 18)); } } for (int i = 0; i < 9; i++) { addSlotToContainer(new Slot(inventoryPlayer, i, xOffset + i * 18, yOffset + 58)); } }
protected boolean performMerge(int slotIndex, ItemStack stack) { int invBase = getSizeInventory(); int invFull = inventorySlots.size(); if (slotIndex < invBase) { return mergeItemStack(stack, invBase, invFull, true); } return mergeItemStack(stack, 0, invBase, false); }
protected boolean performMerge(EntityPlayer player, int slotIndex, ItemStack stack) { return performMerge(slotIndex, stack); }
@Override public void detectAndSendChanges() { super.detectAndSendChanges(); if (baseTile == null) { return; } for (IContainerListener listener : listeners) { baseTile.sendGuiNetworkData(this, listener); } }
@Override public ItemStack transferStackInSlot(EntityPlayer player, int slotIndex) { if (!supportsShiftClick(player, slotIndex)) { return ItemStack.EMPTY; } ItemStack stack = ItemStack.EMPTY; Slot slot = inventorySlots.get(slotIndex); if (slot != null && slot.getHasStack()) { ItemStack stackInSlot = slot.getStack(); stack = stackInSlot.copy(); if (!performMerge(player, slotIndex, stackInSlot)) { return ItemStack.EMPTY; } slot.onSlotChange(stackInSlot, stack); if (stackInSlot.getCount() <= 0) { slot.putStack(ItemStack.EMPTY); } else { slot.putStack(stackInSlot); } if (stackInSlot.getCount() == stack.getCount()) { return ItemStack.EMPTY; } slot.onTake(player, stackInSlot); } return stack; }
protected boolean supportsShiftClick(EntityPlayer player, int slotIndex) { return supportsShiftClick(slotIndex); }
@Override @SideOnly (Side.CLIENT) public void setAll(List<ItemStack> stacks) { for (int i = 0; i < stacks.size(); ++i) { putStackInSlot(i, stacks.get(i)); } }
@Override public void detectAndSendChanges() { ItemStack item = player.inventory.mainInventory.get(containerIndex); if (item.isEmpty() || item.getItem() != containerWrapper.getContainerItem()) { valid = false; return; } super.detectAndSendChanges(); }
@Override public void detectAndSendChanges() { ItemStack item = player.inventory.mainInventory.get(containerIndex); if (item.isEmpty() || item.getItem() != filterWrapper.getFilterItem()) { valid = false; return; } super.detectAndSendChanges(); }