OSDN Git Service

原子記号と番号書いてー
[chemicraft/chemicraft.git] / common / chemicraft / tileentity / TileEntityChemicalCombinationTable.java
index 1627027..01235d4 100644 (file)
@@ -2,85 +2,114 @@ package chemicraft.tileentity;
 
 import java.io.DataOutputStream;
 
-import net.minecraft.src.IInventory;
+import com.google.common.io.ByteArrayDataInput;
+
+import chemicraft.inventory.InventoryChemicalCombinationTableMaterial;
+import chemicraft.inventory.InventoryChemicalCombinationTableResult;
+import chemicraft.system.PacketHandler;
 import net.minecraft.src.ItemStack;
 import net.minecraft.src.NBTTagCompound;
 import net.minecraft.src.NBTTagList;
 import net.minecraft.src.Packet;
 import net.minecraft.src.TileEntity;
-import chemicraft.inventory.InventoryChemicalCombination;
-import chemicraft.system.PacketHandler;
-
-import com.google.common.io.ByteArrayDataInput;
 
 public class TileEntityChemicalCombinationTable extends TileEntity {
 
-       /**
-        * DecompositionのInventory
-        */
-       public IInventory chemicalCombinationInv = new InventoryChemicalCombination();
-
-
-       public TileEntityChemicalCombinationTable() {
-               super();
-       }
-
-       @Override
-       public void updateEntity() {
-               super.updateEntity();
-       }
+       private InventoryChemicalCombinationTableMaterial invm = new InventoryChemicalCombinationTableMaterial();
+       private InventoryChemicalCombinationTableResult invr = new InventoryChemicalCombinationTableResult();
 
+       private String atomsList = "";
 
        @Override
-       public void readFromNBT(NBTTagCompound par1) {
+       public void readFromNBT(NBTTagCompound par1){
                super.readFromNBT(par1);
-
                NBTTagList var2 = par1.getTagList("Items");
                for (int var3 = 0; var3 < var2.tagCount(); ++var3)
                {
                        NBTTagCompound var4 = (NBTTagCompound)var2.tagAt(var3);
                        int var5 = var4.getByte("Slot") & 255;
 
-                       if (var5 >= 0 && var5 < this.chemicalCombinationInv.getSizeInventory())
+                       if (var5 >= 0 && var5 < this.invm.getSizeInventory())
                        {
-                               this.chemicalCombinationInv.setInventorySlotContents(var5, ItemStack.loadItemStackFromNBT(var4));
+                               this.invm.setInventorySlotContents(var5, ItemStack.loadItemStackFromNBT(var4));
                        }
                }
+
+               NBTTagList var6 = par1.getTagList("Items2");
+               for (int var3 = 0; var3 < var6.tagCount(); ++var3)
+               {
+                       NBTTagCompound var7 = (NBTTagCompound)var6.tagAt(var3);
+                       int var8 = var7.getByte("Slot2") & 255;
+
+                       if (var8 >= 0 && var8 < this.invr.getSizeInventory())
+                       {
+                               this.invr.setInventorySlotContents(var8, ItemStack.loadItemStackFromNBT(var7));
+                       }
+               }
+
+               this.atomsList = par1.getString("AtomsList");
        }
 
+       @Override
+       public Packet getDescriptionPacket() {
+               return PacketHandler.getPacket(this);
+       }
 
        @Override
-       public void writeToNBT(NBTTagCompound par1) {
+       public void writeToNBT(NBTTagCompound par1){
                super.writeToNBT(par1);
-
                NBTTagList var2 = new NBTTagList();
-               for (int var3 = 0; var3 < this.chemicalCombinationInv.getSizeInventory(); ++var3)
+               for (int var3 = 0; var3 < this.invm.getSizeInventory(); ++var3)
                {
-                       if (this.chemicalCombinationInv.getStackInSlot(var3) != null)
+                       if (this.invm.getStackInSlot(var3) != null)
                        {
                                NBTTagCompound var4 = new NBTTagCompound();
                                var4.setByte("Slot", (byte)var3);
-                               this.chemicalCombinationInv.getStackInSlot(var3).writeToNBT(var4);
+                               this.invm.getStackInSlot(var3).writeToNBT(var4);
                                var2.appendTag(var4);
                        }
                }
                par1.setTag("Items", var2);
-       }
-
-
-       public InventoryChemicalCombination getInventorys(){
-               return (InventoryChemicalCombination) this.chemicalCombinationInv;
-       }
 
+               NBTTagList var5 = new NBTTagList();
+               for (int var6 = 0; var6 < this.invr.getSizeInventory(); ++var6)
+               {
+                       if (this.invr.getStackInSlot(var6) != null)
+                       {
+                               NBTTagCompound var7 = new NBTTagCompound();
+                               var7.setByte("Slot2", (byte)var6);
+                               this.invr.getStackInSlot(var6).writeToNBT(var7);
+                               var5.appendTag(var7);
+                       }
+               }
+               par1.setTag("Items2", var5);
 
-       @Override
-       public Packet getDescriptionPacket() {
-               return PacketHandler.getPacket(this);
+               par1.setString("AtomsList", this.atomsList);
        }
 
-
        public void readPacket(ByteArrayDataInput data) {
                try {
+                       for(int i = 0;i < this.invm.getSizeInventory();i++){
+                               int id = data.readInt();
+                               int size = data.readByte();
+                               int damage = data.readInt();
+                               if(id != 0 && size != 0){
+                                       this.invm.setInventorySlotContents(i, new ItemStack(id, size, damage));
+                               }else{
+                                       this.invm.setInventorySlotContents(i, null);
+                               }
+                       }
+
+                       for(int i = 0;i < this.invr.getSizeInventory();i++){
+                               int id = data.readInt();
+                               int size = data.readByte();
+                               int damage = data.readInt();
+                               if(id != 0 && size != 0){
+                                       this.invr.setInventorySlotContents(i, new ItemStack(id, size, damage));
+                               }else{
+                                       this.invr.setInventorySlotContents(i, null);
+                               }
+                       }
                } catch (Exception e) {
                        e.printStackTrace();
                }
@@ -89,9 +118,58 @@ public class TileEntityChemicalCombinationTable extends TileEntity {
 
        public void writePacket(DataOutputStream dos){
                try {
+                       for(int i = 0;i < this.invm.getSizeInventory();i++){
+                               int id = 0;
+                               int size = 0;
+                               int damage  = 0;
+                               ItemStack itemstack = this.invm.getStackInSlot(i);
+                               if(itemstack != null){
+                                       id = itemstack.itemID;
+                                       size = itemstack.stackSize;
+                                       damage = itemstack.getItemDamage();
+                                       dos.writeInt(id);
+                                       dos.writeByte(size);
+                                       dos.writeInt(damage);
+                               }else{
+                                       dos.writeInt(0);
+                                       dos.writeByte(0);
+                                       dos.writeInt(0);
+                               }
+                       }
+
+                       for(int i = 0;i < this.invr.getSizeInventory();i++){
+                               int id = 0;
+                               int size = 0;
+                               int damage  = 0;
+                               ItemStack itemstack = this.invr.getStackInSlot(i);
+                               if(itemstack != null){
+                                       id = itemstack.itemID;
+                                       size = itemstack.stackSize;
+                                       damage = itemstack.getItemDamage();
+                                       dos.writeInt(id);
+                                       dos.writeByte(size);
+                                       dos.writeInt(damage);
+                               }else{
+                                       dos.writeInt(0);
+                                       dos.writeByte(0);
+                                       dos.writeInt(0);
+                               }
+                       }
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }
 
+       public void setAtoms(String par1){
+               this.atomsList = this.atomsList + par1;
+       }
+
+       public InventoryChemicalCombinationTableMaterial getInvMaterial(){
+               return this.invm;
+       }
+
+       public InventoryChemicalCombinationTableResult getInvResult(){
+               return this.invr;
+       }
+
 }