package gory_moon.moarsigns.client.interfaces.containers; import gory_moon.moarsigns.client.interfaces.containers.slots.SlotPreview; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ClickType; import net.minecraft.inventory.Container; import net.minecraft.inventory.InventoryBasic; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import javax.annotation.Nullable; import java.util.ArrayList; import java.util.List; public class ContainerPreview extends Container { public List itemList = new ArrayList(); private static InventoryBasic inventory; public ContainerPreview() { if (inventory == null) inventory = new InventoryBasic("Preview Inventory", true, 35); for (int y = 0; y < 7; y++) { for (int x = 0; x < 5; x++) { addSlotToContainer(new SlotPreview(inventory, x + y * 5, 8 + 18 * x, 8 + y * 18)); } } this.scrollTo(0.0F); } public boolean canInteractWith(EntityPlayer player) { return true; } /** * Updates the gui slots ItemStack's based on scroll position. */ public void scrollTo(float pos) { int i = this.itemList.size() / 5 - 6; int j = (int) ((double) (pos * (float) i) + 0.5D); if (j < 0) { j = 0; } for (int k = 0; k < 7; ++k) { for (int l = 0; l < 5; ++l) { int i1 = l + (k + j) * 5; if (i1 >= 0 && i1 < this.itemList.size()) { inventory.setInventorySlotContents(l + k * 5, (ItemStack) this.itemList.get(i1)); } else { inventory.setInventorySlotContents(l + k * 5, (ItemStack) null); } } } } public boolean needsScrollBars() { return this.itemList.size() > 35; } protected void retrySlotClick(int p_75133_1_, int p_75133_2_, boolean p_75133_3_, EntityPlayer p_75133_4_) { } @Nullable @Override public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player) { return null; } public ItemStack transferStackInSlot(EntityPlayer player, int slotId) { return null; } public boolean func_94530_a(ItemStack stack, Slot slot) { return false; } public boolean canDragIntoSlot(Slot slot) { return false; } }