package blusunrize.immersiveengineering.common.gui; import blusunrize.immersiveengineering.api.crafting.MixerRecipe; import blusunrize.immersiveengineering.common.blocks.metal.TileEntityMixer; import blusunrize.immersiveengineering.common.blocks.metal.TileEntityMultiblockMetal.MultiblockProcess; import blusunrize.immersiveengineering.common.blocks.metal.TileEntityMultiblockMetal.MultiblockProcessInMachine; import blusunrize.immersiveengineering.common.gui.IESlot.ICallbackContainer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class ContainerMixer extends ContainerIEBase<TileEntityMixer> implements ICallbackContainer { public ContainerMixer(InventoryPlayer inventoryPlayer, TileEntityMixer tile) { super(inventoryPlayer, tile); for(int i=0; i<8; i++) this.addSlotToContainer(new IESlot.ContainerCallback(this, this.inv, i, 7+(i%2)*21,7+(i/2)*18)); slotCount=8; for (int i = 0; i < 3; i++) for (int j = 0; j < 9; j++) addSlotToContainer(new Slot(inventoryPlayer, j+i*9+9, 8+j*18, 86+i*18)); for (int i = 0; i < 9; i++) addSlotToContainer(new Slot(inventoryPlayer, i, 8+i*18, 144)); } @Override public boolean canInsert(ItemStack stack, int slotNumer, Slot slotObject) { for(MultiblockProcess<MixerRecipe> process : tile.processQueue) if(process instanceof MultiblockProcessInMachine) for(int s : ((MultiblockProcessInMachine)process).getInputSlots()) if(s==slotNumer) return false; return true; } @Override public boolean canTake(ItemStack stack, int slotNumer, Slot slotObject) { for(MultiblockProcess<MixerRecipe> process : tile.processQueue) if(process instanceof MultiblockProcessInMachine) for(int s : ((MultiblockProcessInMachine)process).getInputSlots()) if(s==slotNumer) return false; return true; } }