@SuppressWarnings("unchecked") @Nonnull public final <X> X init() { addSlots(); int x = getPlayerInventoryOffset().x; int y = getPlayerInventoryOffset().y; // add players inventory startPlayerSlot = inventorySlots.size(); for (int i = 0; i < 3; ++i) { for (int j = 0; j < 9; ++j) { Slot slot = new Slot(playerInv, j + i * 9 + 9, x + j * 18, y + i * 18); addSlotToContainer(slot); } } endPlayerSlot = inventorySlots.size(); startHotBarSlot = inventorySlots.size(); for (int i = 0; i < 9; ++i) { Slot slot = new Slot(playerInv, i, x + i * 18, y + 58); addSlotToContainer(slot); } endHotBarSlot = inventorySlots.size(); initRan = true; return (X) this; }
public ContainerEnderCap(@Nonnull InventoryPlayer playerInv, @Nonnull T itemHandler, @Nullable S te) { inv = checkNotNull(itemHandler); this.playerInv = checkNotNull(playerInv); this.te = te; init(); // TODO: Drop this line and add the init() call whenever a Container is constructed }
@Override @Nonnull public ItemStack slotClick(int slotId, int dragType, @Nonnull ClickType clickTypeIn, @Nonnull EntityPlayer playerIn) { if (getTileEntity() == null && slotId == 27 + playerIn.inventory.currentItem) { return ItemStack.EMPTY; } return super.slotClick(slotId, dragType, clickTypeIn, playerIn); }
@Override public @Nonnull Point getPlayerInventoryOffset() { Point p = super.getPlayerInventoryOffset(); p.translate(8, 70); return p; }
@Override public void onContainerClosed(@Nonnull EntityPlayer playerIn) { super.onContainerClosed(playerIn); if (getTileEntity() == null) { player.resetActiveHand(); } }
@Override public @Nonnull ItemStack transferStackInSlot(@Nonnull EntityPlayer p_82846_1_, int p_82846_2_) { ItemStack itemstack = ItemStack.EMPTY; Slot slot = this.inventorySlots.get(p_82846_2_); if (slot != null && slot.getHasStack()) { ItemStack itemstack1 = slot.getStack(); itemstack = itemstack1.copy(); int minPlayerSlot = inventorySlots.size() - playerInv.mainInventory.size(); if (p_82846_2_ < minPlayerSlot) { if (!this.mergeItemStack(itemstack1, minPlayerSlot, this.inventorySlots.size(), true)) { return ItemStack.EMPTY; } } else if (!this.mergeItemStack(itemstack1, 0, minPlayerSlot, false)) { return ItemStack.EMPTY; } if (itemstack1.isEmpty()) { slot.putStack(ItemStack.EMPTY); } else { slot.onSlotChanged(); } } return itemstack; }
public void renderSlotHighlights(@Nonnull IoMode mode) { Map<Slot, Point> slotLocations = getInventory().getSlotLocations(); for (Slot slot : slotLocations.keySet()) { if (slot instanceof EnderSlot) { Type type = ((EnderSlot) slot).getType(); if (mode == IoMode.PULL) { if (type == EnderInventory.Type.INPUT || type == EnderInventory.Type.INOUT) { renderSlotHighlight(slot, PULL_COLOR); } } else if (mode == IoMode.PUSH) { if (type == EnderInventory.Type.OUTPUT || type == EnderInventory.Type.INOUT) { renderSlotHighlight(slot, PUSH_COLOR); } } else if (mode == IoMode.PUSH_PULL) { if (type == EnderInventory.Type.INPUT) { renderSlotHighlight(slot, PULL_COLOR); } else if (type == EnderInventory.Type.OUTPUT) { renderSlotHighlight(slot, PUSH_COLOR); } else if (type == EnderInventory.Type.INOUT) { renderSplitHighlight(slot); } } } } }