OSDN Git Service

Slotのセット完了
authormozipi <mozipi@users.sourceforge.jp>
Sun, 16 Dec 2012 07:36:51 +0000 (16:36 +0900)
committermozipi <mozipi@users.sourceforge.jp>
Sun, 16 Dec 2012 07:36:51 +0000 (16:36 +0900)
疲れた
あとTexture誰かツクリナオシテエー

20 files changed:
common/chemicraft/BlockChemicalCombinationTable.java
common/chemicraft/BlockMaterialCraftingTable.java [new file with mode: 0644]
common/chemicraft/BlockToolAndMaterialCraftingTable.java [new file with mode: 0644]
common/chemicraft/ChemiCraft.java
common/chemicraft/CommonProxy.java
common/chemicraft/ContainerChemicalCombinationTable.java
common/chemicraft/ContainerDecompositionTable.java
common/chemicraft/ContainerMaterialCraftingTable.java [new file with mode: 0644]
common/chemicraft/ContainerToolAndWeaponCraftingTable.java [new file with mode: 0644]
common/chemicraft/GuiChemicalCombinationTable.java
common/chemicraft/GuiMaterialCraftingTable.java [new file with mode: 0644]
common/chemicraft/GuiToolAndWeaponCraftingTable.java [new file with mode: 0644]
common/chemicraft/InventoryMaterialCrafting.java [new file with mode: 0644]
common/chemicraft/InventoryToolAndWeaponCrafting.java [new file with mode: 0644]
common/chemicraft/PacketHandler.java
common/chemicraft/SlotMaterialCraftingResult.java [new file with mode: 0644]
common/chemicraft/SlotToolAndWeaponCraftingResult.java [new file with mode: 0644]
common/chemicraft/TileEntityMaterialCraftingTable.java [new file with mode: 0644]
common/chemicraft/TileEntityToolAndWeaponCraftingTable.java [new file with mode: 0644]
src/chemicraft/client/ClientProxy.java

index 7c9009c..5f3302c 100644 (file)
@@ -9,7 +9,7 @@ import net.minecraft.src.World;
 
 public class BlockChemicalCombinationTable extends BlockContainer {
 
-       protected BlockChemicalCombinationTable(int par1, int par2, Material par3Material) {
+       public BlockChemicalCombinationTable(int par1, int par2, Material par3Material) {
                super(par1, par2, par3Material);
                this.setCreativeTab(ChemiCraft.instance.creativeTab);
        }
diff --git a/common/chemicraft/BlockMaterialCraftingTable.java b/common/chemicraft/BlockMaterialCraftingTable.java
new file mode 100644 (file)
index 0000000..03b6c81
--- /dev/null
@@ -0,0 +1,51 @@
+package chemicraft;
+
+import net.minecraft.src.BlockContainer;
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.Material;
+import net.minecraft.src.TileEntity;
+import net.minecraft.src.World;
+
+public class BlockMaterialCraftingTable extends BlockContainer {
+
+       public BlockMaterialCraftingTable(int par1, int par2, Material par3Material) {
+               super(par1, par2, par3Material);
+               this.setCreativeTab(ChemiCraft.instance.creativeTab);
+       }
+
+
+       @Override
+       public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9){
+               par5EntityPlayer.openGui(ChemiCraft.instance, ChemiCraft.instance.guiMaterialCraftingTableID, par1World, par2, par3, par4);
+               return true;
+       }
+
+
+
+       @Override
+       public String getTextureFile(){
+               return ChemiCraft.instance.blockChemicalCraftingTableTexture;
+       }
+
+
+
+       @Override
+       public int getBlockTextureFromSide(int par1)
+       {
+               if(par1 == 0){
+                       return 17;
+               }else if(par1 == 1){
+                       return 0;
+               }else{
+                       return 16;
+               }
+       }
+
+
+
+       @Override
+       public TileEntity createNewTileEntity(World var1) {
+               return new TileEntityMaterialCraftingTable();
+       }
+
+}
diff --git a/common/chemicraft/BlockToolAndMaterialCraftingTable.java b/common/chemicraft/BlockToolAndMaterialCraftingTable.java
new file mode 100644 (file)
index 0000000..bef867c
--- /dev/null
@@ -0,0 +1,52 @@
+package chemicraft;
+
+import net.minecraft.src.BlockContainer;
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.Material;
+import net.minecraft.src.TileEntity;
+import net.minecraft.src.World;
+
+public class BlockToolAndMaterialCraftingTable extends BlockContainer {
+
+       public BlockToolAndMaterialCraftingTable(int par1, int par2, Material par3Material) {
+               super(par1, par2, par3Material);
+               this.setCreativeTab(ChemiCraft.instance.creativeTab);
+       }
+
+
+
+       @Override
+       public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9){
+               par5EntityPlayer.openGui(ChemiCraft.instance, ChemiCraft.instance.guiToolAndWeaponCraftingTableID, par1World, par2, par3, par4);
+               return true;
+       }
+
+
+
+       @Override
+       public String getTextureFile(){
+               return ChemiCraft.instance.blockChemicalCraftingTableTexture;
+       }
+
+
+
+       @Override
+       public int getBlockTextureFromSide(int par1)
+       {
+               if(par1 == 0){
+                       return 17;
+               }else if(par1 == 1){
+                       return 0;
+               }else{
+                       return 16;
+               }
+       }
+
+
+
+       @Override
+       public TileEntity createNewTileEntity(World var1) {
+               return new TileEntityToolAndWeaponCraftingTable();
+       }
+
+}
index af49358..da4cd42 100644 (file)
@@ -163,33 +163,45 @@ public class ChemiCraft {
                this.NameAuxiliary.addName(itemCompounds, "ja_JP", ChemiCraftAPI.getCompoundsLangName().toArray());\r
 \r
                // Blockを追加します\r
-               this.blockDecompositionTable = new BlockDecompositionTable(decompositionTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("DecompositionTable");\r
-               this.blockChemicalCombinationTable = new BlockChemicalCombinationTable(chemicalConbinationTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("ChemicalCombinationTable");\r
+               this.blockDecompositionTable = new BlockDecompositionTable(this.decompositionTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("DecompositionTable");\r
+               this.blockChemicalCombinationTable = new BlockChemicalCombinationTable(this.chemicalConbinationTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("ChemicalCombinationTable");\r
+               this.blockToolAndWeaponCraftingTable = new BlockToolAndMaterialCraftingTable(this.toolAndWeaponCraftingTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("ToolAndWeaponCraftingTable");\r
+               this.blockMaterialCraftingTable = new BlockMaterialCraftingTable(materialCraftingTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("MaterialCraftingTable");\r
+\r
 \r
                // Itemを追加します\r
-               this.itemAtoms = new ItemAtoms(atomsID).setItemName("atoms");\r
-               this.itemCompounds = new ItemCompounds(compoundsID).setItemName("compounds");\r
-               this.itemGasCollectingBottle = new ItemGasCollectingBottle(gasCollectingBottleID).setItemName("gasCollectingBottle");\r
+               this.itemAtoms = new ItemAtoms(this.atomsID).setItemName("atoms");\r
+               this.itemCompounds = new ItemCompounds(this.compoundsID).setItemName("compounds");\r
+               this.itemGasCollectingBottle = new ItemGasCollectingBottle(this.gasCollectingBottleID).setItemName("gasCollectingBottle");\r
 \r
                // BlockをMinecraftに登録します\r
-               GameRegistry.registerBlock(blockDecompositionTable);\r
-               GameRegistry.registerBlock(blockChemicalCombinationTable);\r
+               GameRegistry.registerBlock(this.blockDecompositionTable);\r
+               GameRegistry.registerBlock(this.blockChemicalCombinationTable);\r
+               GameRegistry.registerBlock(this.blockToolAndWeaponCraftingTable);\r
+               GameRegistry.registerBlock(this.blockMaterialCraftingTable);\r
 \r
                // Blockの名前を設定します\r
-               this.NameAuxiliary.addName(blockDecompositionTable, "DecompositionTable");\r
-               this.NameAuxiliary.addName(blockDecompositionTable, "ja_JP", "分解台");\r
-               this.NameAuxiliary.addName(blockChemicalCombinationTable, "ChemicalCombinationTable");\r
-               this.NameAuxiliary.addName(blockChemicalCombinationTable, "ja_JP", "化合台");\r
+               this.NameAuxiliary.addName(this.blockDecompositionTable, "DecompositionTable");\r
+               this.NameAuxiliary.addName(this.blockDecompositionTable, "ja_JP", "分解台");\r
+               this.NameAuxiliary.addName(this.blockChemicalCombinationTable, "ChemicalCombinationTable");\r
+               this.NameAuxiliary.addName(this.blockChemicalCombinationTable, "ja_JP", "化合台");\r
+               this.NameAuxiliary.addName(blockToolAndWeaponCraftingTable, "ToolAndWeaponCraftingTable");\r
+               this.NameAuxiliary.addName(blockToolAndWeaponCraftingTable, "ja_JP", "ツール&武器製作台");\r
+               this.NameAuxiliary.addName(blockMaterialCraftingTable, "MaterialCraftingTable");\r
+               this.NameAuxiliary.addName(blockMaterialCraftingTable, "ja_JP", "素材製作台");\r
+\r
 \r
                // Itemの名前を設定します\r
-               this.NameAuxiliary.addName(itemAtoms, atomsName);\r
-               this.NameAuxiliary.addName(itemAtoms, "ja_JP", atomsNameJP);\r
-               this.NameAuxiliary.addName(itemGasCollectingBottle, "GasCollectingBottle");\r
-               this.NameAuxiliary.addName(itemGasCollectingBottle, "ja_JP", "集気瓶");\r
+               this.NameAuxiliary.addName(this.itemAtoms, atomsName);\r
+               this.NameAuxiliary.addName(this.itemAtoms, "ja_JP", atomsNameJP);\r
+               this.NameAuxiliary.addName(this.itemGasCollectingBottle, "GasCollectingBottle");\r
+               this.NameAuxiliary.addName(this.itemGasCollectingBottle, "ja_JP", "集気瓶");\r
 \r
                // TileEntityを追加します\r
                GameRegistry.registerTileEntity(TileEntityDecompositionTable.class, "DecompositionTable");\r
                GameRegistry.registerTileEntity(TileEntityChemicalCombinationTable.class, "TileEntityChemicalCombinationTable");\r
+               GameRegistry.registerTileEntity(TileEntityToolAndWeaponCraftingTable.class, "TileEntityToolAndWeaponCraftingTable");\r
+               GameRegistry.registerTileEntity(TileEntityMaterialCraftingTable.class, "TileEntityMaterialCraftingTable");\r
 \r
                // GUIを追加します\r
                NetworkRegistry.instance().registerGuiHandler(instance, proxy);\r
index e80ad80..f5e7968 100644 (file)
@@ -26,6 +26,10 @@ public class CommonProxy implements IGuiHandler {
                        return new ContainerDecompositionTable(player, (TileEntityDecompositionTable) tileEntity);
                }else if(tileEntity instanceof TileEntityChemicalCombinationTable){
                        return new ContainerChemicalCombinationTable(player, (TileEntityChemicalCombinationTable) tileEntity);
+               }else if(tileEntity instanceof TileEntityToolAndWeaponCraftingTable){
+                       return new ContainerToolAndWeaponCraftingTable(player, (TileEntityToolAndWeaponCraftingTable) tileEntity);
+               }else if(tileEntity instanceof TileEntityMaterialCraftingTable){
+                       return new ContainerMaterialCraftingTable(player, (TileEntityMaterialCraftingTable) tileEntity);
                }
                return null;
        }
index 6ad0ef7..6c1ddfc 100644 (file)
@@ -89,10 +89,10 @@ public class ContainerChemicalCombinationTable extends Container {
                int count = 0;
                for(int i = 0;i < 4;i++){
                        for(int j = 0;j < 4;j++){
-                               this.addSlotToContainer(new Slot(inventorys[0], count, 16 + 18 * j, 8 + 20 * i));
+                               this.addSlotToContainer(new Slot(inventorys[0], count, 16 + 18 * j, 8 + 18 * i));
                                count++;
                        }
                }
-               this.addSlotToContainer(new SlotChemicalCombinationResult(inventorys[0], count, 119 + 4, 28 + 4));
+               this.addSlotToContainer(new SlotChemicalCombinationResult(inventorys[0], count, 123, 33));
        }
 }
index e9a95d0..e79801e 100644 (file)
@@ -96,7 +96,7 @@ public class ContainerDecompositionTable extends Container {
                                count++;
                        }
                }
-               this.addSlotToContainer(new Slot(inventorys[0], count, 24 + 4, 26 + 4));
+               this.addSlotToContainer(new Slot(inventorys[0], count, 28, 30));
        }
 
 }
diff --git a/common/chemicraft/ContainerMaterialCraftingTable.java b/common/chemicraft/ContainerMaterialCraftingTable.java
new file mode 100644 (file)
index 0000000..35a4ce7
--- /dev/null
@@ -0,0 +1,103 @@
+package chemicraft;
+
+import net.minecraft.src.Container;
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
+import net.minecraft.src.Slot;
+import net.minecraft.src.World;
+
+public class ContainerMaterialCraftingTable extends Container {
+
+       /**
+        * Worldのインスタンス
+        */
+       private World worldObj;
+
+
+       /**
+        * BlockのX, Y, Z座標
+        */
+       private int posX;
+       private int posY;
+       private int posZ;
+
+
+       /**
+        * the TileEntity.
+        */
+       private TileEntityMaterialCraftingTable tileEntity;
+
+
+
+       public ContainerMaterialCraftingTable(EntityPlayer par1EntityPlayer, TileEntityMaterialCraftingTable par2)
+       {
+               super();
+               this.worldObj = par2.worldObj;
+               this.posX = par2.xCoord;
+               this.posY = par2.yCoord;
+               this.posZ = par2.zCoord;
+               this.tileEntity = par2;
+               //GenerateInventory
+               this.generateSlots("Decomposition", par2.getInventorys());
+               //GeneratePlayerInventory
+               int var3;
+
+               for (var3 = 0; var3 < 3; ++var3)
+               {
+                       for (int var4 = 0; var4 < 9; ++var4)
+                       {
+                               this.addSlotToContainer(new Slot(par1EntityPlayer.inventory, var4 + var3 * 9 + 9, 8 + var4 * 18, 85 + var3 * 18));
+                       }
+               }
+
+               for (var3 = 0; var3 < 9; ++var3)
+               {
+                       this.addSlotToContainer(new Slot(par1EntityPlayer.inventory, var3, 8 + var3 * 18, 143));
+               }
+       }
+
+
+
+       @Override
+       public void onCraftMatrixChanged(IInventory par1IInventory){}
+
+
+
+       @Override
+       public void onCraftGuiClosed(EntityPlayer par1EntityPlayer){
+               super.onCraftGuiClosed(par1EntityPlayer);
+       }
+
+
+
+       @Override
+       public boolean canInteractWith(EntityPlayer par1EntityPlayer){
+               return this.worldObj.getBlockId(this.posX, this.posY, this.posZ) != ChemiCraft.instance.materialCraftingTableID ? false : par1EntityPlayer.getDistanceSq((double)this.posX + 0.5D, (double)this.posY + 0.5D, (double)this.posZ + 0.5D) <= 64.0D;
+       }
+
+
+
+       @Override
+       public ItemStack transferStackInSlot(int par1){
+               return null;
+       }
+
+
+
+       private void generateSlots(String activeTabs, IInventory[] inventorys){
+               int count = 0;
+               for(int i = 0;i < 3;i++){
+                       this.addSlotToContainer(new Slot(inventorys[0], count, 30 + 18 * i, 7));
+                       count++;
+               }
+               for(int i = 0;i < 3;i++){
+                       for(int j = 0;j < 3;j++){
+                               this.addSlotToContainer(new Slot(inventorys[0], count, 30 + 18 * j, 27 + 18 * i));
+                               count++;
+                       }
+               }
+               this.addSlotToContainer(new SlotMaterialCraftingResult(inventorys[0], count, 123, 33));
+       }
+
+}
diff --git a/common/chemicraft/ContainerToolAndWeaponCraftingTable.java b/common/chemicraft/ContainerToolAndWeaponCraftingTable.java
new file mode 100644 (file)
index 0000000..26396be
--- /dev/null
@@ -0,0 +1,99 @@
+package chemicraft;
+
+import net.minecraft.src.Container;
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
+import net.minecraft.src.Slot;
+import net.minecraft.src.World;
+
+public class ContainerToolAndWeaponCraftingTable extends Container {
+
+       /**
+        * Worldのインスタンス
+        */
+       private World worldObj;
+
+
+       /**
+        * BlockのX, Y, Z座標
+        */
+       private int posX;
+       private int posY;
+       private int posZ;
+
+
+       /**
+        * the TileEntity.
+        */
+       private TileEntityToolAndWeaponCraftingTable tileEntity;
+
+
+
+       public ContainerToolAndWeaponCraftingTable(EntityPlayer par1EntityPlayer, TileEntityToolAndWeaponCraftingTable par2)
+       {
+               super();
+               this.worldObj = par2.worldObj;
+               this.posX = par2.xCoord;
+               this.posY = par2.yCoord;
+               this.posZ = par2.zCoord;
+               this.tileEntity = par2;
+               //GenerateInventory
+               this.generateSlots("Decomposition", par2.getInventorys());
+               //GeneratePlayerInventory
+               int var3;
+
+               for (var3 = 0; var3 < 3; ++var3)
+               {
+                       for (int var4 = 0; var4 < 9; ++var4)
+                       {
+                               this.addSlotToContainer(new Slot(par1EntityPlayer.inventory, var4 + var3 * 9 + 9, 8 + var4 * 18, 85 + var3 * 18));
+                       }
+               }
+
+               for (var3 = 0; var3 < 9; ++var3)
+               {
+                       this.addSlotToContainer(new Slot(par1EntityPlayer.inventory, var3, 8 + var3 * 18, 143));
+               }
+       }
+
+
+
+       @Override
+       public void onCraftMatrixChanged(IInventory par1IInventory){}
+
+
+
+       @Override
+       public void onCraftGuiClosed(EntityPlayer par1EntityPlayer){
+               super.onCraftGuiClosed(par1EntityPlayer);
+       }
+
+
+
+       @Override
+       public boolean canInteractWith(EntityPlayer par1EntityPlayer){
+               return this.worldObj.getBlockId(this.posX, this.posY, this.posZ) != ChemiCraft.instance.toolAndWeaponCraftingTableID ? false : par1EntityPlayer.getDistanceSq((double)this.posX + 0.5D, (double)this.posY + 0.5D, (double)this.posZ + 0.5D) <= 64.0D;
+       }
+
+
+
+       @Override
+       public ItemStack transferStackInSlot(int par1){
+               return null;
+       }
+
+
+
+       private void generateSlots(String activeTabs, IInventory[] inventorys){
+               int count = 0;
+               for(int i = 0;i < 3;i++){
+                       for(int j = 0;j < 3;j++){
+                               this.addSlotToContainer(new Slot(inventorys[0], count, 30 + 18 * j, 17 + 18 * i));
+                               count++;
+                       }
+               }
+               this.addSlotToContainer(new SlotToolAndWeaponCraftingResult(inventorys[0], count, 125, 37));
+       }
+
+}
index eb88510..3f4e615 100644 (file)
@@ -1,10 +1,13 @@
 package chemicraft;
 
+import cpw.mods.fml.common.Side;
+import cpw.mods.fml.common.asm.SideOnly;
 import net.minecraft.src.Container;
 import net.minecraft.src.EntityPlayer;
 import net.minecraft.src.GuiContainer;
 import net.minecraft.src.InventoryPlayer;
 
+@SideOnly(Side.CLIENT)
 public class GuiChemicalCombinationTable extends GuiContainer {
 
        /**
diff --git a/common/chemicraft/GuiMaterialCraftingTable.java b/common/chemicraft/GuiMaterialCraftingTable.java
new file mode 100644 (file)
index 0000000..c94b7ba
--- /dev/null
@@ -0,0 +1,47 @@
+package chemicraft;
+
+import cpw.mods.fml.common.Side;
+import cpw.mods.fml.common.asm.SideOnly;
+import net.minecraft.src.Container;
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.GuiContainer;
+import net.minecraft.src.InventoryPlayer;
+
+@SideOnly(Side.CLIENT)
+public class GuiMaterialCraftingTable extends GuiContainer {
+
+       /**
+        * the TileEntity.
+        */
+       private TileEntityMaterialCraftingTable tileEntity;
+
+
+       /**
+        * the InventoryPlayer.
+        */
+       private InventoryPlayer inventoryPlayer;
+
+
+       /**
+        * the Container
+        */
+       private ContainerMaterialCraftingTable container;
+
+
+
+       public GuiMaterialCraftingTable(EntityPlayer par1EntityPlayer, TileEntityMaterialCraftingTable par2){
+               super(new ContainerMaterialCraftingTable(par1EntityPlayer, par2));
+               this.inventoryPlayer = par1EntityPlayer.inventory;
+               this.tileEntity = par2;
+               this.container = (ContainerMaterialCraftingTable) this.inventorySlots;
+       }
+
+
+
+       @Override
+       protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3){
+               this.mc.renderEngine.bindTexture(this.mc.renderEngine.getTexture(ChemiCraft.instance.guiMaterialCraftingTexture));
+               this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);
+       }
+
+}
diff --git a/common/chemicraft/GuiToolAndWeaponCraftingTable.java b/common/chemicraft/GuiToolAndWeaponCraftingTable.java
new file mode 100644 (file)
index 0000000..a252bf4
--- /dev/null
@@ -0,0 +1,44 @@
+package chemicraft;
+
+import net.minecraft.src.Container;
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.GuiContainer;
+import net.minecraft.src.InventoryPlayer;
+
+public class GuiToolAndWeaponCraftingTable extends GuiContainer {
+
+       /**
+        * the TileEntity.
+        */
+       private TileEntityToolAndWeaponCraftingTable tileEntity;
+
+
+       /**
+        * the InventoryPlayer.
+        */
+       private InventoryPlayer inventoryPlayer;
+
+
+       /**
+        * the Container
+        */
+       private ContainerToolAndWeaponCraftingTable container;
+
+
+
+       public GuiToolAndWeaponCraftingTable(EntityPlayer par1EntityPlayer, TileEntityToolAndWeaponCraftingTable par2){
+               super(new ContainerToolAndWeaponCraftingTable(par1EntityPlayer, par2));
+               this.inventoryPlayer = par1EntityPlayer.inventory;
+               this.tileEntity = par2;
+               this.container = (ContainerToolAndWeaponCraftingTable) this.inventorySlots;
+       }
+
+
+
+       @Override
+       protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3){
+               this.mc.renderEngine.bindTexture(this.mc.renderEngine.getTexture(ChemiCraft.instance.guiToolAndWeaponCraftingTexture));
+               this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);
+       }
+
+}
diff --git a/common/chemicraft/InventoryMaterialCrafting.java b/common/chemicraft/InventoryMaterialCrafting.java
new file mode 100644 (file)
index 0000000..c9504de
--- /dev/null
@@ -0,0 +1,86 @@
+package chemicraft;
+
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
+
+public class InventoryMaterialCrafting implements IInventory {
+
+       private ItemStack[] inventory = new ItemStack[3+9+1];
+
+       @Override
+       public int getSizeInventory() {
+               return inventory.length;
+       }
+
+       @Override
+       public ItemStack getStackInSlot(int var1) {
+               return inventory[var1];
+       }
+
+       @Override
+       public ItemStack decrStackSize(int par1, int par2)
+       {
+               if (this.inventory[par1] != null)
+               {
+                       ItemStack var3 = this.inventory[par1];
+                       this.inventory[par1] = null;
+                       return var3;
+               }
+               else
+               {
+                       return null;
+               }
+       }
+
+       @Override
+       public ItemStack getStackInSlotOnClosing(int par1)
+       {
+               if (this.inventory[par1] != null)
+               {
+                       ItemStack var2 = this.inventory[par1];
+                       this.inventory[par1] = null;
+                       return var2;
+               }
+               else
+               {
+                       return null;
+               }
+       }
+
+       @Override
+       public void setInventorySlotContents(int var1, ItemStack var2) {
+               inventory[var1] = var2;
+       }
+
+       @Override
+       public String getInvName() {
+               return "MaterialCraftingInventory";
+       }
+
+       @Override
+       public int getInventoryStackLimit() {
+               return 64;
+       }
+
+       @Override
+       public void onInventoryChanged() {
+
+       }
+
+       @Override
+       public boolean isUseableByPlayer(EntityPlayer var1) {
+               return true;
+       }
+
+       @Override
+       public void openChest() {
+
+       }
+
+       @Override
+       public void closeChest() {
+
+       }
+
+}
diff --git a/common/chemicraft/InventoryToolAndWeaponCrafting.java b/common/chemicraft/InventoryToolAndWeaponCrafting.java
new file mode 100644 (file)
index 0000000..7cae902
--- /dev/null
@@ -0,0 +1,86 @@
+package chemicraft;
+
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
+
+public class InventoryToolAndWeaponCrafting implements IInventory {
+
+       private ItemStack[] inventory = new ItemStack[9+1];
+
+       @Override
+       public int getSizeInventory() {
+               return inventory.length;
+       }
+
+       @Override
+       public ItemStack getStackInSlot(int var1) {
+               return inventory[var1];
+       }
+
+       @Override
+       public ItemStack decrStackSize(int par1, int par2)
+       {
+               if (this.inventory[par1] != null)
+               {
+                       ItemStack var3 = this.inventory[par1];
+                       this.inventory[par1] = null;
+                       return var3;
+               }
+               else
+               {
+                       return null;
+               }
+       }
+
+       @Override
+       public ItemStack getStackInSlotOnClosing(int par1)
+       {
+               if (this.inventory[par1] != null)
+               {
+                       ItemStack var2 = this.inventory[par1];
+                       this.inventory[par1] = null;
+                       return var2;
+               }
+               else
+               {
+                       return null;
+               }
+       }
+
+       @Override
+       public void setInventorySlotContents(int var1, ItemStack var2) {
+               inventory[var1] = var2;
+       }
+
+       @Override
+       public String getInvName() {
+               return "ToolAndWeaponCraftingInventory";
+       }
+
+       @Override
+       public int getInventoryStackLimit() {
+               return 64;
+       }
+
+       @Override
+       public void onInventoryChanged() {
+
+       }
+
+       @Override
+       public boolean isUseableByPlayer(EntityPlayer var1) {
+               return true;
+       }
+
+       @Override
+       public void openChest() {
+
+       }
+
+       @Override
+       public void closeChest() {
+
+       }
+
+}
index 37258d7..0ebfc9c 100644 (file)
@@ -133,4 +133,72 @@ public class PacketHandler implements IPacketHandler {
                return packet;\r
        }\r
 \r
+       public static Packet getPacket(TileEntityToolAndWeaponCraftingTable tileEntity) {\r
+               ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);\r
+               DataOutputStream var2 = new DataOutputStream(var1);\r
+\r
+               // Blockのx, y, z座標\r
+               int x, y, z;\r
+\r
+               // activeTab\r
+               String activeTab;\r
+\r
+               // x, y, z座標を代入\r
+               x = tileEntity.xCoord;\r
+               y = tileEntity.yCoord;\r
+               z = tileEntity.zCoord;\r
+\r
+               try {\r
+                       // 座標書き込み\r
+                       var2.writeInt(x);\r
+                       var2.writeInt(y);\r
+                       var2.writeInt(z);\r
+                       tileEntity.writePacket(var2);\r
+               } catch (IOException e) {\r
+                       e.printStackTrace();\r
+               }\r
+\r
+               // パケットの作成\r
+               Packet250CustomPayload packet = new Packet250CustomPayload();\r
+               packet.channel = "chemicraft";\r
+               packet.data = var1.toByteArray();\r
+               packet.length = var1.size();\r
+               packet.isChunkDataPacket = true;\r
+               return packet;\r
+       }\r
+\r
+       public static Packet getPacket(TileEntityMaterialCraftingTable tileEntity) {\r
+               ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);\r
+               DataOutputStream var2 = new DataOutputStream(var1);\r
+\r
+               // Blockのx, y, z座標\r
+               int x, y, z;\r
+\r
+               // activeTab\r
+               String activeTab;\r
+\r
+               // x, y, z座標を代入\r
+               x = tileEntity.xCoord;\r
+               y = tileEntity.yCoord;\r
+               z = tileEntity.zCoord;\r
+\r
+               try {\r
+                       // 座標書き込み\r
+                       var2.writeInt(x);\r
+                       var2.writeInt(y);\r
+                       var2.writeInt(z);\r
+                       tileEntity.writePacket(var2);\r
+               } catch (IOException e) {\r
+                       e.printStackTrace();\r
+               }\r
+\r
+               // パケットの作成\r
+               Packet250CustomPayload packet = new Packet250CustomPayload();\r
+               packet.channel = "chemicraft";\r
+               packet.data = var1.toByteArray();\r
+               packet.length = var1.size();\r
+               packet.isChunkDataPacket = true;\r
+               return packet;\r
+       }\r
+\r
 }\r
diff --git a/common/chemicraft/SlotMaterialCraftingResult.java b/common/chemicraft/SlotMaterialCraftingResult.java
new file mode 100644 (file)
index 0000000..9ab8bf6
--- /dev/null
@@ -0,0 +1,19 @@
+package chemicraft;
+
+import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
+import net.minecraft.src.Slot;
+
+public class SlotMaterialCraftingResult extends Slot {
+
+       public SlotMaterialCraftingResult(IInventory par1iInventory, int par2, int par3, int par4) {
+               super(par1iInventory, par2, par3, par4);
+       }
+
+       @Override
+       public boolean isItemValid(ItemStack par1ItemStack)
+       {
+               return false;
+       }
+
+}
diff --git a/common/chemicraft/SlotToolAndWeaponCraftingResult.java b/common/chemicraft/SlotToolAndWeaponCraftingResult.java
new file mode 100644 (file)
index 0000000..5dfa96d
--- /dev/null
@@ -0,0 +1,19 @@
+package chemicraft;
+
+import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
+import net.minecraft.src.Slot;
+
+public class SlotToolAndWeaponCraftingResult extends Slot {
+
+       public SlotToolAndWeaponCraftingResult(IInventory par1iInventory, int par2, int par3, int par4) {
+               super(par1iInventory, par2, par3, par4);
+       }
+
+       @Override
+       public boolean isItemValid(ItemStack par1ItemStack)
+       {
+               return false;
+       }
+
+}
diff --git a/common/chemicraft/TileEntityMaterialCraftingTable.java b/common/chemicraft/TileEntityMaterialCraftingTable.java
new file mode 100644 (file)
index 0000000..139263f
--- /dev/null
@@ -0,0 +1,98 @@
+package chemicraft;
+
+import java.io.DataOutputStream;
+import java.util.ArrayList;
+
+import com.google.common.io.ByteArrayDataInput;
+
+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;
+
+public class TileEntityMaterialCraftingTable extends TileEntity {
+
+       /**
+        * DecompositionのInventory
+        */
+       public IInventory materialCraftingInv = new InventoryMaterialCrafting();
+
+
+       public TileEntityMaterialCraftingTable() {
+               super();
+       }
+
+       @Override
+       public void updateEntity() {
+               super.updateEntity();
+       }
+
+
+       @Override
+       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.materialCraftingInv.getSizeInventory())
+                       {
+                               this.materialCraftingInv.setInventorySlotContents(var5, ItemStack.loadItemStackFromNBT(var4));
+                       }
+               }
+       }
+
+
+       @Override
+       public void writeToNBT(NBTTagCompound par1) {
+               super.writeToNBT(par1);
+
+               NBTTagList var2 = new NBTTagList();
+               for (int var3 = 0; var3 < this.materialCraftingInv.getSizeInventory(); ++var3)
+               {
+                       if (this.materialCraftingInv.getStackInSlot(var3) != null)
+                       {
+                               NBTTagCompound var4 = new NBTTagCompound();
+                               var4.setByte("Slot", (byte)var3);
+                               this.materialCraftingInv.getStackInSlot(var3).writeToNBT(var4);
+                               var2.appendTag(var4);
+                       }
+               }
+               par1.setTag("Items", var2);
+       }
+
+
+       public IInventory[] getInventorys(){
+               ArrayList<IInventory> inventorys = new ArrayList<IInventory>();
+               inventorys.add(this.materialCraftingInv);
+               return inventorys.toArray(new IInventory[1]);
+       }
+
+
+       @Override
+       public Packet getDescriptionPacket() {
+               return PacketHandler.getPacket(this);
+       }
+
+
+       public void readPacket(ByteArrayDataInput data) {
+               try {
+               } catch (Exception e) {
+                       e.printStackTrace();
+               }
+       }
+
+
+       public void writePacket(DataOutputStream dos){
+               try {
+               } catch (Exception e) {
+                       e.printStackTrace();
+               }
+       }
+
+}
diff --git a/common/chemicraft/TileEntityToolAndWeaponCraftingTable.java b/common/chemicraft/TileEntityToolAndWeaponCraftingTable.java
new file mode 100644 (file)
index 0000000..f58eddd
--- /dev/null
@@ -0,0 +1,98 @@
+package chemicraft;
+
+import java.io.DataOutputStream;
+import java.util.ArrayList;
+
+import com.google.common.io.ByteArrayDataInput;
+
+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;
+
+public class TileEntityToolAndWeaponCraftingTable extends TileEntity {
+
+       /**
+        * DecompositionのInventory
+        */
+       public IInventory toolAndCraftingInv = new InventoryToolAndWeaponCrafting();
+
+
+       public TileEntityToolAndWeaponCraftingTable() {
+               super();
+       }
+
+       @Override
+       public void updateEntity() {
+               super.updateEntity();
+       }
+
+
+       @Override
+       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.toolAndCraftingInv.getSizeInventory())
+                       {
+                               this.toolAndCraftingInv.setInventorySlotContents(var5, ItemStack.loadItemStackFromNBT(var4));
+                       }
+               }
+       }
+
+
+       @Override
+       public void writeToNBT(NBTTagCompound par1) {
+               super.writeToNBT(par1);
+
+               NBTTagList var2 = new NBTTagList();
+               for (int var3 = 0; var3 < this.toolAndCraftingInv.getSizeInventory(); ++var3)
+               {
+                       if (this.toolAndCraftingInv.getStackInSlot(var3) != null)
+                       {
+                               NBTTagCompound var4 = new NBTTagCompound();
+                               var4.setByte("Slot", (byte)var3);
+                               this.toolAndCraftingInv.getStackInSlot(var3).writeToNBT(var4);
+                               var2.appendTag(var4);
+                       }
+               }
+               par1.setTag("Items", var2);
+       }
+
+
+       public IInventory[] getInventorys(){
+               ArrayList<IInventory> inventorys = new ArrayList<IInventory>();
+               inventorys.add(this.toolAndCraftingInv);
+               return inventorys.toArray(new IInventory[1]);
+       }
+
+
+       @Override
+       public Packet getDescriptionPacket() {
+               return PacketHandler.getPacket(this);
+       }
+
+
+       public void readPacket(ByteArrayDataInput data) {
+               try {
+               } catch (Exception e) {
+                       e.printStackTrace();
+               }
+       }
+
+
+       public void writePacket(DataOutputStream dos){
+               try {
+               } catch (Exception e) {
+                       e.printStackTrace();
+               }
+       }
+
+}
index bd463c5..f2caf86 100644 (file)
@@ -8,8 +8,12 @@ import chemicraft.ChemiCraft;
 import chemicraft.CommonProxy;
 import chemicraft.GuiChemicalCombinationTable;
 import chemicraft.GuiDecompositionTable;
+import chemicraft.GuiMaterialCraftingTable;
+import chemicraft.GuiToolAndWeaponCraftingTable;
 import chemicraft.TileEntityChemicalCombinationTable;
 import chemicraft.TileEntityDecompositionTable;
+import chemicraft.TileEntityMaterialCraftingTable;
+import chemicraft.TileEntityToolAndWeaponCraftingTable;
 import cpw.mods.fml.client.FMLClientHandler;
 
 public class ClientProxy extends CommonProxy {
@@ -37,6 +41,10 @@ public class ClientProxy extends CommonProxy {
                        return new GuiDecompositionTable(player, (TileEntityDecompositionTable) tileEntity);
                }else if(tileEntity instanceof TileEntityChemicalCombinationTable){
                        return new GuiChemicalCombinationTable(player, (TileEntityChemicalCombinationTable) tileEntity);
+               }else if(tileEntity instanceof TileEntityToolAndWeaponCraftingTable){
+                       return new GuiToolAndWeaponCraftingTable(player, (TileEntityToolAndWeaponCraftingTable) tileEntity);
+               }else if(tileEntity instanceof TileEntityMaterialCraftingTable){
+                       return new GuiMaterialCraftingTable(player, (TileEntityMaterialCraftingTable) tileEntity);
                }
                return null;
        }