From 70c1354a4a96698758a88c032866288f79de6f5a Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Sat, 24 Aug 2024 08:16:37 -0400 Subject: Initial commit --- .../jp/plusplus/fbs/container/ContainerBasket.java | 93 ++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 src/main/java/jp/plusplus/fbs/container/ContainerBasket.java (limited to 'src/main/java/jp/plusplus/fbs/container/ContainerBasket.java') diff --git a/src/main/java/jp/plusplus/fbs/container/ContainerBasket.java b/src/main/java/jp/plusplus/fbs/container/ContainerBasket.java new file mode 100644 index 0000000..86b38f1 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/container/ContainerBasket.java @@ -0,0 +1,93 @@ +package jp.plusplus.fbs.container; + +import jp.plusplus.fbs.container.inventory.InventoryBasket; +import jp.plusplus.fbs.container.slot.SlotInventory; +import jp.plusplus.fbs.container.slot.SlotShowOnly; +import jp.plusplus.fbs.item.ItemCore; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +/** + * Created by plusplus_F on 2015/11/11. + */ +public class ContainerBasket extends Container { + private InventoryBasket inventory; + + public ContainerBasket(InventoryPlayer inventoryPlayer) { + inventory = new InventoryBasket(inventoryPlayer); + inventory.openInventory(); + + for (int i = 0; i < inventory.getSizeInventory(); i++) { + this.addSlotToContainer(new SlotInventory(inventory, i, 8 + (i % 9) * 18, 18 + (i / 9) * 18, 3)); + } + + //player inventory + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 9; j++) { + ItemStack item = inventoryPlayer.getStackInSlot(j + i * 9 + 9); + if (item != null && item.getItem() == ItemCore.basket) { + this.addSlotToContainer(new SlotShowOnly(inventoryPlayer, j + i * 9 + 9, 8 + j * 18, 140 + i * 18)); + } else { + this.addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, 8 + j * 18, 140 + i * 18)); + } + } + } + + //player slots + for (int i = 0; i < 9; i++) { + ItemStack item = inventoryPlayer.getStackInSlot(i); + if (item != null && item.getItem() == ItemCore.basket) { + this.addSlotToContainer(new SlotShowOnly(inventoryPlayer, i, 8 + i * 18, 198)); + } else { + this.addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 198)); + } + } + } + + @Override + public boolean canInteractWith(EntityPlayer p_75145_1_) { + return true; + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int p_82846_2_) { + ItemStack itemstack = null; + Slot slot = (Slot) this.inventorySlots.get(p_82846_2_); + + if (slot != null && slot.getHasStack()) { + ItemStack itemstack1 = slot.getStack(); + itemstack = itemstack1.copy(); + + if(slot.getStack()==null || slot.getStack().getItem() == ItemCore.basket){ + return null; + } + else if (p_82846_2_ < this.inventory.getSizeInventory()) { + if (!this.mergeItemStack(itemstack1, this.inventory.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } + else if(!inventory.isItemValidForSlot(p_82846_2_, itemstack)){ + return null; + } + else if (!this.mergeItemStack(itemstack1, 0, this.inventory.getSizeInventory(), false)) { + return null; + } + if (itemstack1.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return itemstack; + } + + @Override + public void onContainerClosed(EntityPlayer p_75134_1_) { + super.onContainerClosed(p_75134_1_); + this.inventory.closeInventory(); + } +} \ No newline at end of file -- cgit v1.2.3