OSDN Git Service

bfbde2a014a07b3df9cf3ea85a881807f436a8f2
[chemicraft/chemicraft.git] / common / chemicraft / ContainerChemicalCombinationTable.java
1 package chemicraft;
2
3 import net.minecraft.src.Container;
4 import net.minecraft.src.EntityPlayer;
5 import net.minecraft.src.IInventory;
6 import net.minecraft.src.ItemStack;
7 import net.minecraft.src.Slot;
8 import net.minecraft.src.World;
9
10 public class ContainerChemicalCombinationTable extends Container {
11
12         /**
13          * Worldのインスタンス
14          */
15         private World worldObj;
16
17
18         /**
19          * BlockのX, Y, Z座標
20          */
21         private int posX;
22         private int posY;
23         private int posZ;
24
25
26         /**
27          * the TileEntity.
28          */
29         private TileEntityChemicalCombinationTable tileEntity;
30
31
32         /**
33          * the inventory.
34          */
35         private IInventory inv;
36
37
38
39         public ContainerChemicalCombinationTable(EntityPlayer par1EntityPlayer, TileEntityChemicalCombinationTable par2)
40         {
41                 super();
42                 this.worldObj = par2.worldObj;
43                 this.posX = par2.xCoord;
44                 this.posY = par2.yCoord;
45                 this.posZ = par2.zCoord;
46                 this.tileEntity = par2;
47                 this.inv = par2.getInventorys();
48                 //GenerateInventory
49                 this.generateSlots("ChemicalCombination", par2.getInventorys());
50                 //GeneratePlayerInventory
51                 int var3;
52
53                 for (var3 = 0; var3 < 3; ++var3)
54                 {
55                         for (int var4 = 0; var4 < 9; ++var4)
56                         {
57                                 this.addSlotToContainer(new Slot(par1EntityPlayer.inventory, var4 + var3 * 9 + 9, 8 + var4 * 18, 85 + var3 * 18));
58                         }
59                 }
60
61                 for (var3 = 0; var3 < 9; ++var3)
62                 {
63                         this.addSlotToContainer(new Slot(par1EntityPlayer.inventory, var3, 8 + var3 * 18, 143));
64                 }
65
66                 this.tileEntity.getInventorys().setEventHandler(this);
67
68         }
69
70
71
72         @Override
73         public void onCraftMatrixChanged(IInventory par1IInventory){
74                 this.putStackInSlot(16, ChemiCraftAPI.instance.getCraftingManager().getChemicalCombinationResult(par1IInventory));
75                 ((InventoryChemicalCombination) par1IInventory).setFlag(true);
76         }
77
78
79
80         @Override
81         public void onCraftGuiClosed(EntityPlayer par1EntityPlayer){
82                 super.onCraftGuiClosed(par1EntityPlayer);
83         }
84
85
86
87         @Override
88         public boolean canInteractWith(EntityPlayer par1EntityPlayer){
89                 return this.worldObj.getBlockId(this.posX, this.posY, this.posZ) != ChemiCraft.instance.chemicalConbinationTableID ? false : par1EntityPlayer.getDistanceSq((double)this.posX + 0.5D, (double)this.posY + 0.5D, (double)this.posZ + 0.5D) <= 64.0D;
90         }
91
92
93
94         @Override
95         public ItemStack transferStackInSlot(int par1){
96                 return null;
97         }
98
99
100
101         private void generateSlots(String activeTabs, IInventory inventorys){
102                 int count = 0;
103                 for(int i = 0;i < 4;i++){
104                         for(int j = 0;j < 4;j++){
105                                 this.addSlotToContainer(new Slot(inventorys, count, 16 + 18 * j, 8 + 18 * i));
106                                 count++;
107                         }
108                 }
109                 this.addSlotToContainer(new SlotChemicalCombinationResult(inventorys, count, 123, 33));
110         }
111 }