package pneumaticCraft.common.inventory; import java.util.ArrayList; import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import pneumaticCraft.client.gui.GuiSearcher; import pneumaticCraft.common.item.Itemss; public class ContainerSearcher extends Container{ /** the list of items in this container */ public List itemList = new ArrayList(); private GuiSearcher gui; public void init(GuiSearcher gui){ this.gui = gui; for(int i = 0; i < 6; ++i) { for(int j = 0; j < 8; ++j) { addSlotToContainer(new Slot(gui.getInventory(), i * 8 + j, 8 + j * 18, 52 + i * 18)); } } addSlotToContainer(new Slot(gui.getInventory(), 48, 124, 25)); scrollTo(0.0F); } @Override public boolean canInteractWith(EntityPlayer player){ return player.getCurrentArmor(3) != null && player.getCurrentArmor(3).getItem() == Itemss.pneumaticHelmet; } /** * Updates the gui slots ItemStack's based on scroll position. */ public void scrollTo(float par1){ int i = itemList.size() / 8 - 6 + 1; int j = (int)(par1 * i + 0.5D); if(j < 0) { j = 0; } for(int k = 0; k < 6; ++k) { for(int l = 0; l < 8; ++l) { int i1 = l + (k + j) * 8; if(i1 >= 0 && i1 < itemList.size()) { gui.getInventory().setInventorySlotContents(l + k * 8, (ItemStack)itemList.get(i1)); } else { gui.getInventory().setInventorySlotContents(l + k * 8, (ItemStack)null); } } } } public boolean hasMoreThan1PageOfItemsInList(){ return itemList.size() > 48; } @Override protected void retrySlotClick(int par1, int par2, boolean par3, EntityPlayer par4EntityPlayer){} /** * Called when a player shift-clicks on a slot. You must override this or you will crash when someone does that. */ @Override public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2){ return null; } @Override public void putStacksInSlots(ItemStack[] p_75131_1_){} @Override public void putStackInSlot(int par1, ItemStack par2ItemStack){} //override this to do nothing, as NEI tries to place items in this container which makes it crash. }