3 import cpw.mods.fml.common.network.PacketDispatcher;
4 import net.minecraft.src.Container;
5 import net.minecraft.src.EntityPlayer;
6 import net.minecraft.src.IInventory;
7 import net.minecraft.src.InventoryPlayer;
8 import net.minecraft.src.Item;
9 import net.minecraft.src.ItemStack;
10 import net.minecraft.src.Slot;
11 import net.minecraft.src.World;
13 public class ContainerDecompositionTable extends Container {
18 private World worldObj;
32 private TileEntityDecompositionTable tileEntity;
36 public ContainerDecompositionTable(EntityPlayer par1EntityPlayer, TileEntityDecompositionTable par2)
39 this.worldObj = par2.worldObj;
40 this.posX = par2.xCoord;
41 this.posY = par2.yCoord;
42 this.posZ = par2.zCoord;
43 this.tileEntity = par2;
45 this.generateSlots("Decomposition", par2.getInventorys());
46 //GeneratePlayerInventory
49 for (var3 = 0; var3 < 3; ++var3)
51 for (int var4 = 0; var4 < 9; ++var4)
53 this.addSlotToContainer(new Slot(par1EntityPlayer.inventory, var4 + var3 * 9 + 9, 8 + var4 * 18, 85 + var3 * 18));
57 for (var3 = 0; var3 < 9; ++var3)
59 this.addSlotToContainer(new Slot(par1EntityPlayer.inventory, var3, 8 + var3 * 18, 143));
66 public void onCraftMatrixChanged(IInventory par1IInventory){}
71 public void onCraftGuiClosed(EntityPlayer par1EntityPlayer){
72 super.onCraftGuiClosed(par1EntityPlayer);
78 public boolean canInteractWith(EntityPlayer par1EntityPlayer){
79 return this.worldObj.getBlockId(this.posX, this.posY, this.posZ) != ChemiCraft.instance.decompositionTableID ? false : par1EntityPlayer.getDistanceSq((double)this.posX + 0.5D, (double)this.posY + 0.5D, (double)this.posZ + 0.5D) <= 64.0D;
85 public ItemStack transferStackInSlot(int par1){
91 private void generateSlots(String activeTabs, IInventory[] inventorys){
93 for(int i = 0;i < 4;i++){
94 for(int j = 0;j < 4;j++){
95 this.addSlotToContainer(new SlotDecompositionResult(inventorys[0], count, 90 + 18 * j, 8 + 18 * i));
99 this.addSlotToContainer(new Slot(inventorys[0], count, 28, 30));