OSDN Git Service

文字化け用
authormozipi <mozipi@users.sourceforge.jp>
Mon, 17 Dec 2012 10:22:28 +0000 (19:22 +0900)
committermozipi <mozipi@users.sourceforge.jp>
Mon, 17 Dec 2012 10:22:28 +0000 (19:22 +0900)
common/chemicraft/BlockChemicalCombinationTable.java
common/chemicraft/BlockMaterialCraftingTable.java
common/chemicraft/BlockToolAndMaterialCraftingTable.java
common/chemicraft/ChemiCraft.java
common/chemicraft/ChemiCraftAPI.java
common/chemicraft/ChemiCraftCraftingManager.java [new file with mode: 0644]
common/chemicraft/ContainerDecompositionTable.java
common/chemicraft/GuiDecompositionTable.java
common/chemicraft/InventoryDecomposition.java
common/chemicraft/PacketHandler.java
common/chemicraft/TileEntityDecompositionTable.java

index 5f3302c..e885a0c 100644 (file)
@@ -35,7 +35,7 @@ public class BlockChemicalCombinationTable extends BlockContainer {
                if(par1 == 0){
                        return 17;
                }else if(par1 == 1){
-                       return 0;
+                       return 1;
                }else{
                        return 16;
                }
index 03b6c81..b662fdd 100644 (file)
@@ -35,7 +35,7 @@ public class BlockMaterialCraftingTable extends BlockContainer {
                if(par1 == 0){
                        return 17;
                }else if(par1 == 1){
-                       return 0;
+                       return 3;
                }else{
                        return 16;
                }
index bef867c..3415ee3 100644 (file)
@@ -36,7 +36,7 @@ public class BlockToolAndMaterialCraftingTable extends BlockContainer {
                if(par1 == 0){
                        return 17;
                }else if(par1 == 1){
-                       return 0;
+                       return 2;
                }else{
                        return 16;
                }
index 372656a..42a591f 100644 (file)
@@ -3,6 +3,7 @@
 import net.minecraft.src.Block;\r
 import net.minecraft.src.CreativeTabs;\r
 import net.minecraft.src.Item;\r
+import net.minecraft.src.ItemStack;\r
 import net.minecraft.src.Material;\r
 import net.minecraftforge.common.Configuration;\r
 import net.minecraftforge.common.Property;\r
@@ -205,6 +206,9 @@ public class ChemiCraft {
                // GUIを追加します\r
                NetworkRegistry.instance().registerGuiHandler(instance, proxy);\r
 \r
+               //分解レシピを追加します\r
+               ChemiCraftAPI.instance.addDecompositionRecipe(new ItemStack(Block.dirt, 1, 0), new ItemStack[]{new ItemStack(Block.stone, 16, 0)});\r
+\r
                //Textureをpreloadします\r
                proxy.registerTextures();\r
        }\r
index 646c5ee..b56438d 100644 (file)
@@ -2,6 +2,8 @@ package chemicraft;
 
 import java.util.ArrayList;
 
+import net.minecraft.src.ItemStack;
+
 /**
  * ChemiCraftのAPI
  * 基本的にAddonはこのクラスのインスタンスを使う
@@ -39,6 +41,7 @@ public class ChemiCraftAPI {
         */
        private static ArrayList<ICompoundHandler> compoundHandlers = new ArrayList<ICompoundHandler>();
 
+
        /**
         * List of item name of handler to compounds.
         */
@@ -46,6 +49,38 @@ public class ChemiCraftAPI {
 
 
        /**
+        * 分解台の素材のリスト
+        */
+       private static ArrayList<ItemStack> decompositionMaterial = new ArrayList<ItemStack>();
+
+
+       /**
+        * 分解台の結果のリスト
+        */
+       private static ArrayList<ItemStack[]> decompositionResults = new ArrayList<ItemStack[]>();
+
+
+       /**
+        * 化合台の素材のリスト
+        */
+       private static ArrayList<ItemStack[]> chemicalCombinationMaterials = new ArrayList<ItemStack[]>();
+
+
+       /**
+        * 化合台の結果のリスト
+        */
+       private static ArrayList<ItemStack> chemicalCombinationResult = new ArrayList<ItemStack>();
+
+
+
+       /**
+        * ChemiCraftの化学作業台類のレシピのマネージャー
+        */
+       private static ChemiCraftCraftingManager chemiCraftCraftingManager = new ChemiCraftCraftingManager();
+
+
+
+       /**
         * add compound.
         * @param name compound name.
         */
@@ -83,6 +118,35 @@ public class ChemiCraftAPI {
 
 
 
+       /**
+        * 分解レシピを追加します。resultの要素数は0<= n <= 16にしてください。
+        * @param material 素材
+        * @param result 結果
+        */
+       public static void addDecompositionRecipe(ItemStack material, ItemStack[] result){
+               if(result.length <= 16){
+                       decompositionMaterial.add(material);
+                       decompositionResults.add(result);
+               }else{
+                       System.err.println("ChemiCraft内でエラー:addDecompositionRecipeの引数resultの要素数が16を超えています。" + "Material:" + material + "  Result:" + result);
+               }
+       }
+
+
+
+       /**
+        * 化合レシピを追加します。materialの要素数は0<= n <= 16にしてください。
+        * @param material 素材
+        * @param result 結果
+        */
+       public static void addChemicalCombinationRecipe(ItemStack[] material, ItemStack result){
+               if(material.length <= 16){
+                       chemicalCombinationMaterials.add(material);
+                       chemicalCombinationResult.add(result);
+               }else{
+                       System.err.println("ChemiCraft内でエラー:addChemicalCombinationRecipeの引数materialの要素数が16を超えています。" + "Material:" + material + "  Result:" + result);
+               }
+       }
        //以下システム関連//////////////////////////////////////////////////////
 
        public static ArrayList<ICompoundHandler> getCompoundHandler(){
@@ -119,4 +183,34 @@ public class ChemiCraftAPI {
                return compoundsLangList;
        }
 
+
+
+       public static ArrayList<ItemStack> getDecompositionMaterial(){
+               return decompositionMaterial;
+       }
+
+
+
+       public static ArrayList<ItemStack[]> getDecompositionResult(){
+               return decompositionResults;
+       }
+
+
+
+       public static ArrayList<ItemStack[]> getChemicalCombinationMaterial(){
+               return chemicalCombinationMaterials;
+       }
+
+
+
+       public static ArrayList<ItemStack> getChemicalCombinationResult(){
+               return chemicalCombinationResult;
+       }
+
+
+
+       public static ChemiCraftCraftingManager getCraftingManager(){
+               return chemiCraftCraftingManager;
+       }
+
 }
diff --git a/common/chemicraft/ChemiCraftCraftingManager.java b/common/chemicraft/ChemiCraftCraftingManager.java
new file mode 100644 (file)
index 0000000..d70f203
--- /dev/null
@@ -0,0 +1,45 @@
+package chemicraft;
+
+import java.util.ArrayList;
+
+import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
+
+public class ChemiCraftCraftingManager {
+
+       public ItemStack[] getDecompositionResults(IInventory par1IInventory){
+               ((InventoryDecomposition)par1IInventory).setFlag(false);
+               ItemStack[] results = null;
+               for(int i1 = 0;i1 < ChemiCraftAPI.instance.getDecompositionMaterial().size();i1++){
+                       ArrayList<Integer> materialID = new ArrayList<Integer>();
+                       ArrayList<Integer> materialDamage = new ArrayList<Integer>();
+                       results  = new ItemStack[ChemiCraftAPI.instance.getDecompositionResult().get(i1).length];
+
+                       materialID.add(ChemiCraftAPI.instance.getDecompositionMaterial().get(i1).itemID);
+                       materialDamage.add(ChemiCraftAPI.instance.getDecompositionMaterial().get(i1).getItemDamage());
+                       if(par1IInventory.getStackInSlot(16) == null){ this.clearResults(par1IInventory, 16); return new ItemStack[16];}
+                       if(materialID.get(0) != par1IInventory.getStackInSlot(16).itemID){ this.clearResults(par1IInventory, 16); return new ItemStack[16];}
+                       if(materialDamage.get(0) != par1IInventory.getStackInSlot(16).getItemDamage()){ this.clearResults(par1IInventory, 16); return new ItemStack[16];}
+
+                       for(int i = 0;i < ChemiCraftAPI.instance.getDecompositionResult().get(i1).length;i++){
+
+                               results[i] = new ItemStack(
+                                               ChemiCraftAPI.instance.getDecompositionResult().get(i1)[i].itemID,
+                                               ChemiCraftAPI.instance.getDecompositionResult().get(i1)[i].stackSize,
+                                               ChemiCraftAPI.instance.getDecompositionResult().get(i1)[i].getItemDamage()
+                                               );
+                       }
+               }
+               return results;
+       }
+
+
+
+       private void clearResults(IInventory par1IInventory, int par2){
+               ((InventoryDecomposition)par1IInventory).setFlag(false);
+               for(int i = 0;i < par2;i++){
+                       par1IInventory.setInventorySlotContents(i, null);
+               }
+       }
+
+}
index e79801e..4e0637a 100644 (file)
@@ -5,8 +5,8 @@ import net.minecraft.src.Container;
 import net.minecraft.src.EntityPlayer;
 import net.minecraft.src.IInventory;
 import net.minecraft.src.InventoryPlayer;
-import net.minecraft.src.Item;
 import net.minecraft.src.ItemStack;
+import net.minecraft.src.Packet;
 import net.minecraft.src.Slot;
 import net.minecraft.src.World;
 
@@ -32,6 +32,19 @@ public class ContainerDecompositionTable extends Container {
        private TileEntityDecompositionTable tileEntity;
 
 
+       /**
+        * the inventory.
+        */
+       private InventoryDecomposition inv;
+
+
+
+       /**
+        * the inventoryPlayer.
+        */
+       private InventoryPlayer invp;
+
+
 
        public ContainerDecompositionTable(EntityPlayer par1EntityPlayer, TileEntityDecompositionTable par2)
        {
@@ -41,6 +54,8 @@ public class ContainerDecompositionTable extends Container {
                this.posY = par2.yCoord;
                this.posZ = par2.zCoord;
                this.tileEntity = par2;
+               this.inv = par2.getInventorys();
+               this.invp = par1EntityPlayer.inventory;
                //GenerateInventory
                this.generateSlots("Decomposition", par2.getInventorys());
                //GeneratePlayerInventory
@@ -58,12 +73,18 @@ public class ContainerDecompositionTable extends Container {
                {
                        this.addSlotToContainer(new Slot(par1EntityPlayer.inventory, var3, 8 + var3 * 18, 143));
                }
+
+               this.tileEntity.getInventorys().setEventHandler(this);
        }
 
 
 
        @Override
-       public void onCraftMatrixChanged(IInventory par1IInventory){}
+       public void onCraftMatrixChanged(IInventory par1IInventory){
+               ((InventoryDecomposition) par1IInventory).setFlag(false);
+               this.putStacksInSlots(ChemiCraftAPI.getCraftingManager().getDecompositionResults(par1IInventory));
+               ((InventoryDecomposition) par1IInventory).setFlag(true);
+       }
 
 
 
@@ -82,21 +103,108 @@ public class ContainerDecompositionTable extends Container {
 
 
        @Override
+       public ItemStack slotClick(int par1, int par2, boolean par3, EntityPlayer par4EntityPlayer)
+       {
+               if(par1 < 16){
+                       return null;
+               }else{
+                       super.slotClick(par1, par2, par3, par4EntityPlayer);
+               }
+               return null;
+       }
+
+
+
+       @Override
        public ItemStack transferStackInSlot(int par1){
                return null;
        }
 
 
 
-       private void generateSlots(String activeTabs, IInventory[] inventorys){
+       public void addPlayerInv(int par1, ItemStack par2ItemStack){
+               this.putStackInSlot(par1, par2ItemStack);
+       }
+
+
+
+       public void onButtonClick(int par1){
+               if(par1 == 0){
+                       for(int loop = 0;loop < 1;loop++){
+                               if(this.inv.getStackInSlot(16) == null) break;
+                               for(int i = 0;i < this.inv.getSizeInventory();i++){
+                                       if(i < 16 && this.inv.getStackInSlot(i) != null){
+                                               if(this.invp.player.inventory.getFirstEmptyStack() != -1){
+                                                       this.tileEntity.setItemDrop(false);
+                                                       PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
+                                               }else{
+                                                       this.tileEntity.setItemDrop(true);
+                                                       PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
+                                                       this.updateCraftingResults();
+                                               }
+                                       }
+                               }
+                       }
+               }else if(par1 == 1){
+                       for(int loop = 0;loop < 16;loop++){
+                               if(this.inv.getStackInSlot(16) == null) break;
+                               for(int i = 0;i < this.inv.getSizeInventory();i++){
+                                       if(i < 16 && this.inv.getStackInSlot(i) != null){
+                                               if(this.invp.player.inventory.getFirstEmptyStack() != -1){
+                                                       this.tileEntity.setItemDrop(false);
+                                                       PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
+                                               }else{
+                                                       this.tileEntity.setItemDrop(true);
+                                                       PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
+                                               }
+                                       }
+                               }
+                       }
+               }else if(par1 == 2){
+                       for(int loop = 0;loop < 32;loop++){
+                               if(this.inv.getStackInSlot(16) == null) break;
+                               for(int i = 0;i < this.inv.getSizeInventory();i++){
+                                       if(i < 16 && this.inv.getStackInSlot(i) != null){
+                                               if(this.invp.player.inventory.getFirstEmptyStack() != -1){
+                                                       this.tileEntity.setItemDrop(false);
+                                                       PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
+                                               }else{
+                                                       this.tileEntity.setItemDrop(true);
+                                                       PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
+                                               }
+                                       }
+                               }
+                       }
+               }else if(par1 == 3){
+                       for(int loop = 0;loop < 64;loop++){
+                               if(this.inv.getStackInSlot(16) == null) break;
+                               for(int i = 0;i < this.inv.getSizeInventory();i++){
+                                       if(i < 16 && this.inv.getStackInSlot(i) != null){
+                                               if(this.invp.player.inventory.getFirstEmptyStack() != -1){
+                                                       this.tileEntity.setItemDrop(false);
+                                                       PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
+                                               }else{
+                                                       this.tileEntity.setItemDrop(true);
+                                                       PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
+                                               }
+                                       }
+                               }
+                       }
+               }
+               this.onCraftMatrixChanged(this.inv);
+       }
+
+
+
+       private void generateSlots(String activeTabs, IInventory inventorys){
                int count = 0;
                for(int i = 0;i < 4;i++){
                        for(int j = 0;j < 4;j++){
-                               this.addSlotToContainer(new SlotDecompositionResult(inventorys[0], count, 90 + 18 * j, 8 + 18 * i));
+                               this.addSlotToContainer(new SlotDecompositionResult(inventorys, count, 90 + 18 * j, 8 + 18 * i));
                                count++;
                        }
                }
-               this.addSlotToContainer(new Slot(inventorys[0], count, 28, 30));
+               this.addSlotToContainer(new Slot(inventorys, count, 28, 30));
        }
 
 }
index d339947..d29b795 100644 (file)
@@ -5,11 +5,13 @@ import java.util.HashMap;
 
 import net.minecraft.src.Block;
 import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.GuiButton;
 import net.minecraft.src.GuiContainer;
 import net.minecraft.src.InventoryBasic;
 import net.minecraft.src.InventoryPlayer;
 import net.minecraft.src.Item;
 import net.minecraft.src.ItemStack;
+import net.minecraft.src.StatCollector;
 import cpw.mods.fml.common.Side;
 import cpw.mods.fml.common.asm.SideOnly;
 import cpw.mods.fml.common.network.PacketDispatcher;
@@ -47,9 +49,36 @@ public class GuiDecompositionTable extends GuiContainer {
 
 
        @Override
+       public void initGui(){
+               super.initGui();
+               this.controlList.add(new GuiButton(0, this.guiLeft + 44, this.guiTop+2, 20, 10,"x1"));
+               this.controlList.add(new GuiButton(0, this.guiLeft + 44+20, this.guiTop+2, 20, 10,"x16"));
+               this.controlList.add(new GuiButton(0, this.guiLeft + 44, this.guiTop+2+10, 20, 10,"x32"));
+               this.controlList.add(new GuiButton(0, this.guiLeft + 44+20, this.guiTop+2+10, 20, 10,"x64"));
+       }
+
+
+
+
+       @Override
+       protected void drawGuiContainerForegroundLayer()
+       {
+               this.fontRenderer.drawString("Takeout:", 3, 8, 0x000000);
+       }
+
+
+
+       @Override
        protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3){
                this.mc.renderEngine.bindTexture(this.mc.renderEngine.getTexture(ChemiCraft.instance.guiDecompositionTexture));
                this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);
        }
 
+
+
+       @Override
+       protected void actionPerformed(GuiButton par1GuiButton){
+               this.container.onButtonClick(par1GuiButton.id);
+       }
+
 }
index d3e695c..eec04af 100644 (file)
@@ -1,5 +1,6 @@
 package chemicraft;
 
+import net.minecraft.src.Container;
 import net.minecraft.src.EntityPlayer;
 import net.minecraft.src.IInventory;
 import net.minecraft.src.ItemStack;
@@ -8,6 +9,19 @@ public class InventoryDecomposition implements IInventory {
 
        private ItemStack[] inventory = new ItemStack[16+1];
 
+       private Container eventHandler;
+
+       private boolean flag;
+
+       public void setEventHandler(Container par1Container){
+               this.eventHandler = par1Container;
+               this.flag = true;
+       }
+
+       public void setFlag(boolean par1){
+               this.flag = par1;
+       }
+
        @Override
        public int getSizeInventory() {
                return inventory.length;
@@ -51,6 +65,9 @@ public class InventoryDecomposition implements IInventory {
        @Override
        public void setInventorySlotContents(int var1, ItemStack var2) {
                inventory[var1] = var2;
+               if(flag){
+                       this.eventHandler.onCraftMatrixChanged(this);
+               }
        }
 
        @Override
@@ -65,7 +82,9 @@ public class InventoryDecomposition implements IInventory {
 
        @Override
        public void onInventoryChanged() {
-
+               if(flag){
+                       this.eventHandler.onCraftMatrixChanged(this);
+               }
        }
 
        @Override
index 0ebfc9c..ad19212 100644 (file)
@@ -28,36 +28,36 @@ public class PacketHandler implements IPacketHandler {
        @Override\r
        public void onPacketData(NetworkManager manager, Packet250CustomPayload packet, Player player) {\r
                if (packet.channel.equals("chemicraft")) {\r
-                       ByteArrayDataInput var1 = ByteStreams.newDataInput(packet.data);\r
+                       ByteArrayDataInput badi = ByteStreams.newDataInput(packet.data);\r
 \r
                        World worldClient;\r
                        World worldServer;\r
-                       TileEntity tileEntity;\r
+                       TileEntity var1;\r
                        TileEntityDecompositionTable var2;\r
 \r
                        // TileEntityのx, y, z座標\r
                        int x, y, z;\r
 \r
                        // 座標読み込み\r
-                       x = var1.readInt();\r
-                       y = var1.readInt();\r
-                       z = var1.readInt();\r
+                       x = badi.readInt();\r
+                       y = badi.readInt();\r
+                       z = badi.readInt();\r
 \r
                        worldClient = ChemiCraft.instance.proxy.getClientWorld();\r
                        worldServer = ((EntityPlayer)player).worldObj;\r
                        if(worldClient != null){\r
-                               tileEntity = worldClient.getBlockTileEntity(x, y, z);\r
-                               if (tileEntity instanceof TileEntityDecompositionTable) {\r
-                                       var2 = (TileEntityDecompositionTable) tileEntity;\r
-                                       var2.readPacket(var1);\r
+                               var1 = worldClient.getBlockTileEntity(x, y, z);\r
+                               if (var1 instanceof TileEntityDecompositionTable) {\r
+                                       var2 = (TileEntityDecompositionTable) var1;\r
+                                       var2.readPacket(badi, (EntityPlayer)player);\r
                                }\r
                                return;\r
                        }\r
                        if(worldServer != null){\r
-                               tileEntity = worldServer.getBlockTileEntity(x, y, z);\r
-                               if (tileEntity instanceof TileEntityDecompositionTable) {\r
-                                       var2 = (TileEntityDecompositionTable) tileEntity;\r
-                                       var2.readPacket(var1);\r
+                               var1 = worldServer.getBlockTileEntity(x, y, z);\r
+                               if (var1 instanceof TileEntityDecompositionTable) {\r
+                                       var2 = (TileEntityDecompositionTable) var1;\r
+                                       var2.readPacket(badi, (EntityPlayer)player);\r
                                }\r
                                return;\r
                        }\r
index eb96990..92fe507 100644 (file)
@@ -1,26 +1,23 @@
 package chemicraft;
 
 import java.io.DataOutputStream;
-import java.util.ArrayList;
 
+import net.minecraft.src.EntityPlayer;
 import net.minecraft.src.IInventory;
 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 net.minecraft.src.WorldServer;
 
 import com.google.common.io.ByteArrayDataInput;
 
-import cpw.mods.fml.common.network.PacketDispatcher;
-
 public class TileEntityDecompositionTable extends TileEntity {
 
-       /**
-        * DecompositionのInventory
-        */
-       public IInventory decompositionInv = new InventoryDecomposition();
+       private IInventory decompositionInv = new InventoryDecomposition();
 
+       private boolean isItemDrop = false;
 
        public TileEntityDecompositionTable() {
                super();
@@ -69,10 +66,13 @@ public class TileEntityDecompositionTable extends TileEntity {
        }
 
 
-       public IInventory[] getInventorys(){
-               ArrayList<IInventory> inventorys = new ArrayList<IInventory>();
-               inventorys.add(this.decompositionInv);
-               return inventorys.toArray(new IInventory[1]);
+       public InventoryDecomposition getInventorys(){
+               return (InventoryDecomposition) this.decompositionInv;
+       }
+
+
+       public void setItemDrop(boolean par1){
+               this.isItemDrop = par1;
        }
 
 
@@ -82,8 +82,34 @@ public class TileEntityDecompositionTable extends TileEntity {
        }
 
 
-       public void readPacket(ByteArrayDataInput data) {
+       public void readPacket(ByteArrayDataInput data, EntityPlayer entityPlayer) {
+               int id;
+               int damage;
+               int size;
                try {
+
+                       this.isItemDrop = data.readBoolean();
+
+                       for(int i = 0;i < 16;i++){
+                               id = data.readInt();
+                               damage = data.readInt();
+                               size = data.readInt();
+                               if(id != 0){
+                                       if(!this.isItemDrop){
+                                               entityPlayer.inventory.addItemStackToInventory(new ItemStack(id, size, damage));
+                                       }else{
+                                               entityPlayer.dropPlayerItem(new ItemStack(id, size, damage));
+                                       }
+                               }
+                       }
+                       id = data.readInt();
+                       damage = data.readInt();
+                       size = data.readInt();
+                       if(id != 0){
+                               if(entityPlayer.worldObj instanceof WorldServer){
+                                       this.decompositionInv.setInventorySlotContents(16, new ItemStack(id, --size, damage));
+                               }
+                       }
                } catch (Exception e) {
                        e.printStackTrace();
                }
@@ -92,6 +118,21 @@ public class TileEntityDecompositionTable extends TileEntity {
 
        public void writePacket(DataOutputStream dos){
                try {
+
+                       dos.writeBoolean(this.isItemDrop);
+
+                       for(int i = 0;i < this.decompositionInv.getSizeInventory();i++){
+                               if(this.decompositionInv.getStackInSlot(i) != null){
+                                       dos.writeInt(this.decompositionInv.getStackInSlot(i).itemID);
+                                       dos.writeInt(this.decompositionInv.getStackInSlot(i).getItemDamage());
+                                       dos.writeInt(this.decompositionInv.getStackInSlot(i).stackSize);
+                               }else{
+                                       dos.writeInt(0);
+                                       dos.writeInt(0);
+                                       dos.writeInt(0);
+                               }
+                       }
+
                } catch (Exception e) {
                        e.printStackTrace();
                }