OSDN Git Service

分解台と化合台に分離した
authormozipi <mozipi@users.sourceforge.jp>
Sun, 16 Dec 2012 03:08:40 +0000 (12:08 +0900)
committermozipi <mozipi@users.sourceforge.jp>
Sun, 16 Dec 2012 03:08:40 +0000 (12:08 +0900)
17 files changed:
common/chemicraft/BlockChemicalCombinationTable.java [new file with mode: 0644]
common/chemicraft/BlockDecompositionTable.java [moved from common/chemicraft/BlockChemicalCraftingTable.java with 69% similarity]
common/chemicraft/ChemiCraft.java
common/chemicraft/ChemiCraftTab.java [deleted file]
common/chemicraft/CommonProxy.java
common/chemicraft/CompoundHandlerTest.java [deleted file]
common/chemicraft/ContainerChemicalCombinationTable.java [new file with mode: 0644]
common/chemicraft/ContainerDecompositionTable.java [moved from common/chemicraft/ContainerChemicalCraftingTable.java with 65% similarity]
common/chemicraft/GuiChemicalCombinationTable.java [new file with mode: 0644]
common/chemicraft/GuiChemicalCraftingTable.java [deleted file]
common/chemicraft/GuiDecompositionTable.java [new file with mode: 0644]
common/chemicraft/InventoryChemicalCombination.java [new file with mode: 0644]
common/chemicraft/PacketHandler.java
common/chemicraft/SlotChemicalCombinationResult.java [new file with mode: 0644]
common/chemicraft/TileEntityChemicalCombinationTable.java [new file with mode: 0644]
common/chemicraft/TileEntityDecompositionTable.java [moved from common/chemicraft/TileEntityChemicalCraftingTable.java with 55% similarity]
src/chemicraft/client/ClientProxy.java

diff --git a/common/chemicraft/BlockChemicalCombinationTable.java b/common/chemicraft/BlockChemicalCombinationTable.java
new file mode 100644 (file)
index 0000000..7c9009c
--- /dev/null
@@ -0,0 +1,50 @@
+package chemicraft;
+
+import net.minecraft.src.BlockContainer;
+import net.minecraft.src.CreativeTabs;
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.Material;
+import net.minecraft.src.TileEntity;
+import net.minecraft.src.World;
+
+public class BlockChemicalCombinationTable extends BlockContainer {
+
+       protected BlockChemicalCombinationTable(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.guiChemicalCombinationTableID, 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 TileEntityChemicalCombinationTable();
+       }
+
+}
@@ -7,18 +7,18 @@ import net.minecraft.src.Material;
 import net.minecraft.src.TileEntity;
 import net.minecraft.src.World;
 
-public class BlockChemicalCraftingTable extends BlockContainer {
+public class BlockDecompositionTable extends BlockContainer {
 
-       public BlockChemicalCraftingTable(int par1, int par2, Material par3Material){
+       public BlockDecompositionTable(int par1, int par2, Material par3Material){
                super(par1, par2, par3Material);
-               this.setCreativeTab(CreativeTabs.tabBlock);
+               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.guiChemicalCraftingTableID, par1World, par2, par3, par4);
+               par5EntityPlayer.openGui(ChemiCraft.instance, ChemiCraft.instance.guiDecompositionTableID, par1World, par2, par3, par4);
                return true;
        }
 
@@ -34,21 +34,20 @@ public class BlockChemicalCraftingTable extends BlockContainer {
        @Override
        public int getBlockTextureFromSide(int par1)
        {
-               return this.blockIndexInTexture;
-               /*
                if(par1 == 0){
+                       return 17;
+               }else if(par1 == 1){
                        return 0;
                }else{
-                       return 1;
+                       return 16;
                }
-               */
        }
 
 
 
        @Override
        public TileEntity createNewTileEntity(World var1){
-               return new TileEntityChemicalCraftingTable();
+               return new TileEntityDecompositionTable();
        }
 
 }
index 64720b1..af49358 100644 (file)
@@ -17,9 +17,9 @@ import cpw.mods.fml.common.registry.GameRegistry;
 \r
 /**\r
  * ChemiCraft本体\r
- * \r
+ *\r
  * @author P.C.C.\r
- * \r
+ *\r
  */\r
 @Mod(modid = "chemiCraft", name = "ChemiCraft", version = "beta")\r
 // ID,名前,バージョン\r
@@ -27,147 +27,175 @@ import cpw.mods.fml.common.registry.GameRegistry;
 // クライアント、サーバー共に必要 1.3.2用\r
 public class ChemiCraft {\r
 \r
-    public final String[] atomsName = { "Hydrogen", "Helium", "Lithium", "Beryllium", "Boron", "Carbon", "Nitrogen", "Oxygen", "Fluorine", "Neon", "Sodium", "Magnesium", "Aluminium", "Silicon",\r
-           "Phosphorus", "Sulfur", "Chlorine", "Argon", "Potassium", "Calcium", "Scandium", "Titanium", "Vanadium", "Chromium", "Manganese", "Iron", "Cobalt", "Nickel", "Copper", "Zinc", "Gallium",\r
-           "Germanium", "Arsenic", "Selenium", "Bromine", "Krypton", "Rubidium", "Strontium", "Yttorium", "Zirconium", "Niobium", "Molybdenum", "Technetium", "Ruthenium", "Rhodium", "Palladium",\r
-           "Silver", "Cadmium", "Indium", "Tin", "Antimony", "Tellurium", "Iodine", "Xenon", "Caesium", "Barium", "Lanthanum", "Cerium", "Praseodymium", "Neodymium", "Promethium", "Samarium",\r
-           "Europium", "Gadolinium", "Terbium", "Dysprosium", "Holmium", "Erbium", "Thulium", "Ytterbium", "Lutetium", "Hafnium", "Tantalum", "Tungsten", "Rhenium", "Osmium", "Iridium", "Platinum",\r
-           "Gold", "Mercury", "Thallium", "Lead", "Bismuth", "Polonium", "Astatine", "Radon", "Francium", "Radium", "Actinium", "Thorium", "Protactinium", "Uranium", "Neptunium", "Plutonium",\r
-           "Americium", "Curium", "Berkelium", "Californium", "Einsteinium", "Fermium", "Mendelevium", "Nobelium", "Lawrencium", "Rutherfordium", "Dubnium", "Seaborgium", "Bohrium", "Hassium",\r
-           "Meitnerium", "Darmstadtium", "Roentgenium", "Copernicium", "Ununtrium", "Ununquadium", "Ununpentium", "Ununhexium", "Ununseptium", "Ununoctium" };\r
-\r
-    public final String[] atomsNameJP = { "水素", "ヘリウム", "リチウム", "ベリウム", "ホウ素", "炭素", "窒素", "酸素", "フッ素", "ネオン", "ナトリウム", "マグネシウム", "アルミニウム", "ケイ素", "リン", "硫黄", "塩素", "アルゴン", "カリウム", "カルシウム", "スカンジウム",\r
-           "チタン", "バナジウム", "クロム", "マンガン", "鉄", "コバルト", "ニッケル", "銅", "亜鉛", "ガリウム", "ゲルマニウム", "ヒ素", "セレン", "臭素", "クリプトン", "ルビジウム", "ストロンチウム", "イットリウム", "ジルコニウム", "ニオブ", "モリブデン", "テクネチウム", "ルテニウム",\r
-           "ロジウム", "パラジウム", "銀", "カドミウム", "インジウム", "スズ", "アンチモン", "テルル", "ヨウ素", "キセノン", "セシウム", "バリウム", "ランタン", "セリウム", "プラセオジム", "ネオジム", "プロメチウム", "サマリウム", "ユウロビウム", "ガドリニウム", "テルビウム", "ジスプロニウム",\r
-           "ホルミウム", "エルビウム", "ツリウム", "イッテルビウム", "ルテチウム", "ハフニウム", "タンタル", "タングステン", "レニウム", "オスミウム", "イリジウム", "白金", "金", "水銀", "タリウム", "鉛", "ビスマス", "ポロニウム", "アスタチン", "ラドン", "フランシウム", "ラジウム",\r
-           "アクチニウム", "トリウム", "プロトアクチウム", "ウラン", "ネプツニウム", "プルトニウム", "アメリシウム", "キュリウム", "バークリウム", "カルホルニウム", "アインスタイニウム", "フェルミウム", "メンデレビウム", "ノーベリウム", "ローレンシウム", "ラサホージウム", "ドブニウム", "シーボーギウム",\r
-           "ボーリウム", "ハッシウム", "マイトネリウム", "ダームスタチウム", "レントゲニウム", "コペルニシウム", "ウンウントリウム", "ウンウンクアジウム", "ウンウンペンチウム", "ウンウンヘキシウム", "ウンウンセプチウム", "ウンウンオクチウム" };\r
-\r
-    /**\r
-     * このmodのインスタンス\r
-     */\r
-    @Mod.Instance("chemiCraft")\r
-    public static ChemiCraft instance;\r
-\r
-    /**\r
-     * ChemiCraftのProxy\r
-     */\r
-    @SidedProxy(clientSide = "chemicraft.client.ClientProxy", serverSide = "chemicraft.CommonProxy")\r
-    public static CommonProxy proxy;\r
-\r
-    /**\r
-     * ChemiCraftのCreativeTab\r
-     */\r
-    public CreativeTabs creativeTab = new CreativeTabAtoms("ChemiCraft");\r
-\r
-    /**\r
-     * ItemID\r
-     */\r
-    public int atomsID;\r
-    public int compoundsID;\r
-    public int gasCollectingBottleID;\r
-\r
-    /**\r
-     * BlockID\r
-     */\r
-    public int chemicalCraftingTableID;\r
-\r
-    /**\r
-     * GUIID\r
-     */\r
-    public int guiChemicalCraftingTableID;\r
-\r
-    /**\r
-     * Block型変数\r
-     */\r
-    public Block blockChemicalCraftingTable;\r
-\r
-    /**\r
-     * Item型変数\r
-     */\r
-    public Item itemAtoms;\r
-    public Item itemCompounds;\r
-    public Item itemGasCollectingBottle;\r
-\r
-    /**\r
-     * このmodで使用するTextureのパス\r
-     */\r
-    public String itemAtomsTexture = "/chemicraft/items/Atoms.png";\r
-    public String itemCompoundsTexture = "/chemicraft/items/Compounds.png";\r
-    public String blockChemicalCraftingTableTexture = "/chemicraft/blocks/CCTable.png";\r
-    public String guiDecompositionTexture = "/chemicraft/guis/Decomposition.png";\r
-    public String guiChemicalCombinationTexture = "/chemicraft/guis/ChemicalCombination.png";\r
-    public String guiToolAndWeaponCraftingTexture = "/chemicraft/guis/ToolAndWeaponCrafting.png";\r
-    public String guiMaterialCraftingTexture = "/chemicraft/guis/MaterialCrafting.png";\r
-    public String guiTabs = "/chemicraft/guis/Tabs.png";\r
-\r
-    /**\r
-     * このmodに必要な補助クラスのインスタンス\r
-     */\r
-    private Auxiliary Auxiliary = new Auxiliary();\r
-    private NameAuxiliary NameAuxiliary = Auxiliary.new NameAuxiliary();\r
-\r
-\r
-    @Mod.PreInit\r
-    public void chemiPreLoadMethod(FMLPreInitializationEvent event) {\r
-       Configuration cfg = new Configuration(event.getSuggestedConfigurationFile());\r
-       cfg.load();\r
-\r
-       Property chemicalCraftingTableIDProp = cfg.getBlock("chemicalCraftingTable", 200);\r
-       Property atomsIDProp = cfg.getItem("atomsID", 25000);\r
-       Property compoundsIDProp = cfg.getItem("compoundsID", 25001);\r
-       Property gasCollectingBottleIDProp = cfg.getItem("gasCollectingBottleID", 25002);\r
-       Property guiChemicalCraftingTableIDProp = cfg.get("GUI", "GUIChemicalCraftingTableID", 1000);\r
-\r
-       this.chemicalCraftingTableID = chemicalCraftingTableIDProp.getInt();\r
-       this.atomsID = atomsIDProp.getInt();\r
-       this.compoundsID = compoundsIDProp.getInt();\r
-       this.gasCollectingBottleID = gasCollectingBottleIDProp.getInt();\r
-       this.guiChemicalCraftingTableID = guiChemicalCraftingTableIDProp.getInt();\r
-\r
-       cfg.save();\r
-       \r
-       // 描画関係の読み込み\r
-       proxy.registerRenderInformation();\r
-    }\r
-\r
-\r
-    @Mod.PostInit\r
-    public void chemiPostLoadMethod(FMLPostInitializationEvent event) {\r
-       // API用の処理\r
-       this.NameAuxiliary.addName(itemCompounds, ChemiCraftAPI.getCompoundsName().toArray());\r
-       this.NameAuxiliary.addName(itemCompounds, "ja_JP", ChemiCraftAPI.getCompoundsLangName().toArray());\r
-\r
-       // Blockを追加します\r
-       this.blockChemicalCraftingTable = new BlockChemicalCraftingTable(chemicalCraftingTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep)\r
-               .setBlockName("ChemicalCraftingTable");\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
-\r
-       // BlockをMinecraftに登録します\r
-       GameRegistry.registerBlock(blockChemicalCraftingTable);\r
-\r
-       // Blockの名前を設定します\r
-       this.NameAuxiliary.addName(blockChemicalCraftingTable, "ChemicalCraftingTable");\r
-       this.NameAuxiliary.addName(blockChemicalCraftingTable, "ja_JP", "科学作業台");\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
-\r
-       // 化合物の名前を設定し追加します\r
-       ChemiCraftAPI.addLangCompound("ja_JP", "Salt", "塩");\r
-\r
-       // TileEntityを追加します\r
-       GameRegistry.registerTileEntity(TileEntityChemicalCraftingTable.class, "TileEntityChemicalCraftingTable");\r
-\r
-       // GUIを追加します\r
-       NetworkRegistry.instance().registerGuiHandler(instance, proxy);\r
-    }\r
+       public final String[] atomsName = { "Hydrogen", "Helium", "Lithium", "Beryllium", "Boron", "Carbon", "Nitrogen", "Oxygen", "Fluorine", "Neon", "Sodium", "Magnesium", "Aluminium", "Silicon",\r
+                       "Phosphorus", "Sulfur", "Chlorine", "Argon", "Potassium", "Calcium", "Scandium", "Titanium", "Vanadium", "Chromium", "Manganese", "Iron", "Cobalt", "Nickel", "Copper", "Zinc", "Gallium",\r
+                       "Germanium", "Arsenic", "Selenium", "Bromine", "Krypton", "Rubidium", "Strontium", "Yttorium", "Zirconium", "Niobium", "Molybdenum", "Technetium", "Ruthenium", "Rhodium", "Palladium",\r
+                       "Silver", "Cadmium", "Indium", "Tin", "Antimony", "Tellurium", "Iodine", "Xenon", "Caesium", "Barium", "Lanthanum", "Cerium", "Praseodymium", "Neodymium", "Promethium", "Samarium",\r
+                       "Europium", "Gadolinium", "Terbium", "Dysprosium", "Holmium", "Erbium", "Thulium", "Ytterbium", "Lutetium", "Hafnium", "Tantalum", "Tungsten", "Rhenium", "Osmium", "Iridium", "Platinum",\r
+                       "Gold", "Mercury", "Thallium", "Lead", "Bismuth", "Polonium", "Astatine", "Radon", "Francium", "Radium", "Actinium", "Thorium", "Protactinium", "Uranium", "Neptunium", "Plutonium",\r
+                       "Americium", "Curium", "Berkelium", "Californium", "Einsteinium", "Fermium", "Mendelevium", "Nobelium", "Lawrencium", "Rutherfordium", "Dubnium", "Seaborgium", "Bohrium", "Hassium",\r
+                       "Meitnerium", "Darmstadtium", "Roentgenium", "Copernicium", "Ununtrium", "Ununquadium", "Ununpentium", "Ununhexium", "Ununseptium", "Ununoctium" };\r
+\r
+       public final String[] atomsNameJP = { "水素", "ヘリウム", "リチウム", "ベリウム", "ホウ素", "炭素", "窒素", "酸素", "フッ素", "ネオン", "ナトリウム", "マグネシウム", "アルミニウム", "ケイ素", "リン", "硫黄", "塩素", "アルゴン", "カリウム", "カルシウム", "スカンジウム",\r
+                       "チタン", "バナジウム", "クロム", "マンガン", "鉄", "コバルト", "ニッケル", "銅", "亜鉛", "ガリウム", "ゲルマニウム", "ヒ素", "セレン", "臭素", "クリプトン", "ルビジウム", "ストロンチウム", "イットリウム", "ジルコニウム", "ニオブ", "モリブデン", "テクネチウム", "ルテニウム",\r
+                       "ロジウム", "パラジウム", "銀", "カドミウム", "インジウム", "スズ", "アンチモン", "テルル", "ヨウ素", "キセノン", "セシウム", "バリウム", "ランタン", "セリウム", "プラセオジム", "ネオジム", "プロメチウム", "サマリウム", "ユウロビウム", "ガドリニウム", "テルビウム", "ジスプロニウム",\r
+                       "ホルミウム", "エルビウム", "ツリウム", "イッテルビウム", "ルテチウム", "ハフニウム", "タンタル", "タングステン", "レニウム", "オスミウム", "イリジウム", "白金", "金", "水銀", "タリウム", "鉛", "ビスマス", "ポロニウム", "アスタチン", "ラドン", "フランシウム", "ラジウム",\r
+                       "アクチニウム", "トリウム", "プロトアクチウム", "ウラン", "ネプツニウム", "プルトニウム", "アメリシウム", "キュリウム", "バークリウム", "カルホルニウム", "アインスタイニウム", "フェルミウム", "メンデレビウム", "ノーベリウム", "ローレンシウム", "ラサホージウム", "ドブニウム", "シーボーギウム",\r
+                       "ボーリウム", "ハッシウム", "マイトネリウム", "ダームスタチウム", "レントゲニウム", "コペルニシウム", "ウンウントリウム", "ウンウンクアジウム", "ウンウンペンチウム", "ウンウンヘキシウム", "ウンウンセプチウム", "ウンウンオクチウム" };\r
+\r
+       /**\r
+        * このmodのインスタンス\r
+        */\r
+       @Mod.Instance("chemiCraft")\r
+       public static ChemiCraft instance;\r
+\r
+       /**\r
+        * ChemiCraftのProxy\r
+        */\r
+       @SidedProxy(clientSide = "chemicraft.client.ClientProxy", serverSide = "chemicraft.CommonProxy")\r
+       public static CommonProxy proxy;\r
+\r
+       /**\r
+        * ChemiCraftのCreativeTab\r
+        */\r
+       public CreativeTabs creativeTab = new CreativeTabAtoms("ChemiCraft");\r
+\r
+       /**\r
+        * ItemID\r
+        */\r
+       public int atomsID;\r
+       public int compoundsID;\r
+       public int gasCollectingBottleID;\r
+\r
+       /**\r
+        * BlockID\r
+        */\r
+       public int decompositionTableID;\r
+       public int chemicalConbinationTableID;\r
+       public int toolAndWeaponCraftingTableID;\r
+       public int materialCraftingTableID;\r
+\r
+       /**\r
+        * GUIID\r
+        */\r
+       public int guiDecompositionTableID;\r
+       public int guiChemicalCombinationTableID;\r
+       public int guiToolAndWeaponCraftingTableID;\r
+       public int guiMaterialCraftingTableID;\r
+\r
+       /**\r
+        * Block型変数\r
+        */\r
+       public Block blockDecompositionTable;\r
+       public Block blockChemicalCombinationTable;\r
+       public Block blockToolAndWeaponCraftingTable;\r
+       public Block blockMaterialCraftingTable;\r
+\r
+       /**\r
+        * Item型変数\r
+        */\r
+       public Item itemAtoms;\r
+       public Item itemCompounds;\r
+       public Item itemGasCollectingBottle;\r
+\r
+       /**\r
+        * このmodで使用するTextureのパス\r
+        */\r
+       public String itemAtomsTexture = "/chemicraft/items/Atoms.png";\r
+       public String itemCompoundsTexture = "/chemicraft/items/Compounds.png";\r
+       public String blockChemicalCraftingTableTexture = "/chemicraft/blocks/CCTable.png";\r
+       public String guiDecompositionTexture = "/chemicraft/guis/Decomposition.png";\r
+       public String guiChemicalCombinationTexture = "/chemicraft/guis/ChemicalCombination.png";\r
+       public String guiToolAndWeaponCraftingTexture = "/chemicraft/guis/ToolAndWeaponCrafting.png";\r
+       public String guiMaterialCraftingTexture = "/chemicraft/guis/MaterialCrafting.png";\r
+       public String guiTabs = "/chemicraft/guis/Tabs.png";\r
+\r
+       /**\r
+        * このmodに必要な補助クラスのインスタンス\r
+        */\r
+       private Auxiliary Auxiliary = new Auxiliary();\r
+       private NameAuxiliary NameAuxiliary = Auxiliary.new NameAuxiliary();\r
+\r
+\r
+       @Mod.PreInit\r
+       public void chemiPreLoadMethod(FMLPreInitializationEvent event) {\r
+               Configuration cfg = new Configuration(event.getSuggestedConfigurationFile());\r
+               cfg.load();\r
+\r
+               Property decompositionTableIDProp = cfg.getBlock("DecompositionTable", 200);\r
+               Property chemicalCombinationTableIDProp = cfg.getBlock("ChemicalCombinationID", 201);\r
+               Property toolAndWeaponCraftingTableIDProp = cfg.getBlock("ToolAndWeaponCraftingTableID", 202);\r
+               Property materialCraftingTableIDProp = cfg.getBlock("MaterialCraftingTableID", 203);\r
+\r
+               Property atomsIDProp = cfg.getItem("AtomsID", 25000);\r
+               Property compoundsIDProp = cfg.getItem("CompoundsID", 25001);\r
+               Property gasCollectingBottleIDProp = cfg.getItem("gasCollectingBottleID", 25002);\r
+\r
+               Property guiDecompositionTableIDProp = cfg.get("GUI", "GUIChemicalCraftingTableID", 1000);\r
+               Property guiChemicalCombinationTableIDProp = cfg.get("GUI", "GUIChemicalCombinationTableID", 1001);\r
+               Property guiToolAndWeaponCraftingTableIDProp = cfg.get("GUI", "GUIToolAndWeaponCraftingTableID", 1002);\r
+               Property guiMaterialCraftingTableIDProp = cfg.get("GUI", "GUIMaterialCraftingTableID", 1003);\r
+\r
+\r
+               this.decompositionTableID = decompositionTableIDProp.getInt();\r
+               this.chemicalConbinationTableID = chemicalCombinationTableIDProp.getInt();\r
+               this.toolAndWeaponCraftingTableID = toolAndWeaponCraftingTableIDProp.getInt();\r
+               this.materialCraftingTableID = materialCraftingTableIDProp.getInt();\r
+               this.atomsID = atomsIDProp.getInt();\r
+               this.compoundsID = compoundsIDProp.getInt();\r
+               this.gasCollectingBottleID = gasCollectingBottleIDProp.getInt();\r
+               this.guiDecompositionTableID = guiDecompositionTableIDProp.getInt();\r
+               this.guiChemicalCombinationTableID = guiChemicalCombinationTableIDProp.getInt();\r
+               this.guiToolAndWeaponCraftingTableID = guiToolAndWeaponCraftingTableIDProp.getInt();\r
+               this.guiMaterialCraftingTableID = guiMaterialCraftingTableIDProp.getInt();\r
+\r
+               cfg.save();\r
+\r
+               // 描画関係の読み込み\r
+               proxy.registerRenderInformation();\r
+       }\r
+\r
+\r
+       @Mod.PostInit\r
+       public void chemiPostLoadMethod(FMLPostInitializationEvent event) {\r
+               // API用の処理\r
+               this.NameAuxiliary.addName(itemCompounds, ChemiCraftAPI.getCompoundsName().toArray());\r
+               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
+\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
+\r
+               // BlockをMinecraftに登録します\r
+               GameRegistry.registerBlock(blockDecompositionTable);\r
+               GameRegistry.registerBlock(blockChemicalCombinationTable);\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
+\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
+\r
+               // TileEntityを追加します\r
+               GameRegistry.registerTileEntity(TileEntityDecompositionTable.class, "DecompositionTable");\r
+               GameRegistry.registerTileEntity(TileEntityChemicalCombinationTable.class, "TileEntityChemicalCombinationTable");\r
+\r
+               // GUIを追加します\r
+               NetworkRegistry.instance().registerGuiHandler(instance, proxy);\r
+\r
+               //Textureをpreloadします\r
+               proxy.registerTextures();\r
+       }\r
 \r
 }
\ No newline at end of file
diff --git a/common/chemicraft/ChemiCraftTab.java b/common/chemicraft/ChemiCraftTab.java
deleted file mode 100644 (file)
index acc7711..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-package chemicraft;\r
-\r
-import net.minecraft.src.ItemStack;\r
-\r
-public class ChemiCraftTab {\r
-\r
-       /**\r
-        * TabのID\r
-        */\r
-       private int id;\r
-\r
-\r
-       /**\r
-        * TabにOverlayするItemStack\r
-        */\r
-       private ItemStack renderItemStack;\r
-\r
-\r
-       /**\r
-        * Tabの名前\r
-        */\r
-       private String tabName;\r
-\r
-\r
-       /**\r
-        * TabがActiveであるかどうか\r
-        */\r
-       private boolean theActive;\r
-\r
-\r
-\r
-       /**\r
-        * ChemiCraftTabを作成します\r
-        * @param id\r
-        * @param tabName\r
-        * @param renderItemStack\r
-        */\r
-       public ChemiCraftTab(int id, String tabName, ItemStack renderItemStack){\r
-               this.id = id;\r
-               this.renderItemStack = renderItemStack;\r
-               this.tabName = tabName;\r
-       }\r
-\r
-\r
-\r
-       /**\r
-        * TabのIDを返します\r
-        * @return TabのID\r
-        */\r
-       public int getID(){\r
-               return this.id;\r
-       }\r
-\r
-\r
-\r
-       /**\r
-        * TabにOverlayするItemStackを返します\r
-        * @return TabにOverlayするItemStack\r
-        */\r
-       public ItemStack getRenderItemStack(){\r
-               return this.renderItemStack;\r
-       }\r
-\r
-\r
-\r
-       /**\r
-        * Tabの名前を返します\r
-        * @return Tabの名前\r
-        */\r
-       public String getTabName(){\r
-               return this.tabName;\r
-       }\r
-\r
-\r
-\r
-       /**\r
-        * Tabがアクティブであるかを返します\r
-        * @return Tabがアクティブであるか\r
-        */\r
-       public boolean isActive(){\r
-               return theActive;\r
-       }\r
-\r
-\r
-\r
-       /**\r
-        * Activeであるかを設定します\r
-        * @param active\r
-        */\r
-       public void setActive(boolean active){\r
-               this.theActive = active;\r
-       }\r
-\r
-}\r
index fd85bef..e80ad80 100644 (file)
@@ -8,6 +8,10 @@ import cpw.mods.fml.common.network.IGuiHandler;
 
 public class CommonProxy implements IGuiHandler {
 
+       public void registerTextures(){
+
+       }
+
        public void registerRenderInformation() {
        }
 
@@ -18,8 +22,10 @@ public class CommonProxy implements IGuiHandler {
                        return null;
 
                TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
-               if (tileEntity instanceof TileEntityChemicalCraftingTable) {
-                       return new ContainerChemicalCraftingTable(player, (TileEntityChemicalCraftingTable) tileEntity);
+               if (tileEntity instanceof TileEntityDecompositionTable) {
+                       return new ContainerDecompositionTable(player, (TileEntityDecompositionTable) tileEntity);
+               }else if(tileEntity instanceof TileEntityChemicalCombinationTable){
+                       return new ContainerChemicalCombinationTable(player, (TileEntityChemicalCombinationTable) tileEntity);
                }
                return null;
        }
diff --git a/common/chemicraft/CompoundHandlerTest.java b/common/chemicraft/CompoundHandlerTest.java
deleted file mode 100644 (file)
index 105e1cf..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-package chemicraft;
-
-import net.minecraft.src.Entity;
-import net.minecraft.src.EntityPlayer;
-import net.minecraft.src.ItemStack;
-import net.minecraft.src.World;
-
-public class CompoundHandlerTest implements ICompoundHandler {
-
-       @Override
-       public void onRightClickHandler(ItemStack par1ItemStack, World par2World,
-                       EntityPlayer par3EntityPlayer) {}
-
-
-
-       @Override
-       public ItemStack onItemUseHandler(ItemStack par1ItemStack,
-                       EntityPlayer par2EntityPlayer, World par3World, int par4, int par5,
-                       int par6, int par7, float par8, float par9, float par10) {
-               return null;
-       }
-
-
-
-       @Override
-       public void onUpdateHandler(ItemStack par1ItemStack, World par2World,
-                       Entity par3Entity, int par4, boolean par5) {}
-
-}
diff --git a/common/chemicraft/ContainerChemicalCombinationTable.java b/common/chemicraft/ContainerChemicalCombinationTable.java
new file mode 100644 (file)
index 0000000..6ad0ef7
--- /dev/null
@@ -0,0 +1,98 @@
+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 ContainerChemicalCombinationTable extends Container {
+
+       /**
+        * Worldのインスタンス
+        */
+       private World worldObj;
+
+
+       /**
+        * BlockのX, Y, Z座標
+        */
+       private int posX;
+       private int posY;
+       private int posZ;
+
+
+       /**
+        * the TileEntity.
+        */
+       private TileEntityChemicalCombinationTable tileEntity;
+
+
+
+       public ContainerChemicalCombinationTable(EntityPlayer par1EntityPlayer, TileEntityChemicalCombinationTable par2)
+       {
+               super();
+               this.worldObj = par2.worldObj;
+               this.posX = par2.xCoord;
+               this.posY = par2.yCoord;
+               this.posZ = par2.zCoord;
+               this.tileEntity = par2;
+               //GenerateInventory
+               this.generateSlots("ChemicalCombination", 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.chemicalConbinationTableID ? 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 < 4;i++){
+                       for(int j = 0;j < 4;j++){
+                               this.addSlotToContainer(new Slot(inventorys[0], count, 16 + 18 * j, 8 + 20 * i));
+                               count++;
+                       }
+               }
+               this.addSlotToContainer(new SlotChemicalCombinationResult(inventorys[0], count, 119 + 4, 28 + 4));
+       }
+}
@@ -10,7 +10,7 @@ import net.minecraft.src.ItemStack;
 import net.minecraft.src.Slot;
 import net.minecraft.src.World;
 
-public class ContainerChemicalCraftingTable extends Container {
+public class ContainerDecompositionTable extends Container {
 
        /**
         * Worldのインスタンス
@@ -29,11 +29,11 @@ public class ContainerChemicalCraftingTable extends Container {
        /**
         * the TileEntity.
         */
-       private TileEntityChemicalCraftingTable tileEntity;
+       private TileEntityDecompositionTable tileEntity;
 
 
 
-       public ContainerChemicalCraftingTable(EntityPlayer par1EntityPlayer, TileEntityChemicalCraftingTable par2)
+       public ContainerDecompositionTable(EntityPlayer par1EntityPlayer, TileEntityDecompositionTable par2)
        {
                super();
                this.worldObj = par2.worldObj;
@@ -42,7 +42,7 @@ public class ContainerChemicalCraftingTable extends Container {
                this.posZ = par2.zCoord;
                this.tileEntity = par2;
                //GenerateInventory
-               this.generateSlots(par2.getActiveTab(), par2.getActiveInventory());
+               this.generateSlots("Decomposition", par2.getInventorys());
                //GeneratePlayerInventory
                int var3;
 
@@ -76,7 +76,7 @@ public class ContainerChemicalCraftingTable extends Container {
 
        @Override
        public boolean canInteractWith(EntityPlayer par1EntityPlayer){
-               return this.worldObj.getBlockId(this.posX, this.posY, this.posZ) != ChemiCraft.instance.chemicalCraftingTableID ? false : par1EntityPlayer.getDistanceSq((double)this.posX + 0.5D, (double)this.posY + 0.5D, (double)this.posZ + 0.5D) <= 64.0D;
+               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;
        }
 
 
@@ -89,20 +89,14 @@ public class ContainerChemicalCraftingTable extends Container {
 
 
        private void generateSlots(String activeTabs, IInventory[] inventorys){
-               if(activeTabs.equals("Decomposition")){
-                       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));
-                                       count++;
-                               }
+               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));
+                               count++;
                        }
-                       this.addSlotToContainer(new Slot(inventorys[0], count, 25 + 4, 26 + 4));
-               }else if(activeTabs.equals("ChemicalCombination")){
-
-               }else{
-                       return;
                }
+               this.addSlotToContainer(new Slot(inventorys[0], count, 24 + 4, 26 + 4));
        }
 
 }
diff --git a/common/chemicraft/GuiChemicalCombinationTable.java b/common/chemicraft/GuiChemicalCombinationTable.java
new file mode 100644 (file)
index 0000000..eb88510
--- /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 GuiChemicalCombinationTable extends GuiContainer {
+
+       /**
+        * the TileEntity.
+        */
+       private TileEntityChemicalCombinationTable tileEntity;
+
+
+       /**
+        * the InventoryPlayer.
+        */
+       private InventoryPlayer inventoryPlayer;
+
+
+       /**
+        * the Container
+        */
+       private ContainerChemicalCombinationTable container;
+
+
+
+       public GuiChemicalCombinationTable(EntityPlayer par1EntityPlayer, TileEntityChemicalCombinationTable par2){
+               super(new ContainerChemicalCombinationTable(par1EntityPlayer, par2));
+               this.inventoryPlayer = par1EntityPlayer.inventory;
+               this.tileEntity = par2;
+               this.container = (ContainerChemicalCombinationTable) this.inventorySlots;
+       }
+
+
+
+       @Override
+       protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3){
+               this.mc.renderEngine.bindTexture(this.mc.renderEngine.getTexture(ChemiCraft.instance.guiChemicalCombinationTexture));
+               this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);
+       }
+
+}
diff --git a/common/chemicraft/GuiChemicalCraftingTable.java b/common/chemicraft/GuiChemicalCraftingTable.java
deleted file mode 100644 (file)
index 80f0503..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-package chemicraft;\r
-\r
-import java.util.ArrayList;\r
-import java.util.HashMap;\r
-\r
-import net.minecraft.src.Block;\r
-import net.minecraft.src.EntityPlayer;\r
-import net.minecraft.src.GuiContainer;\r
-import net.minecraft.src.InventoryBasic;\r
-import net.minecraft.src.InventoryPlayer;\r
-import net.minecraft.src.Item;\r
-import net.minecraft.src.ItemStack;\r
-import cpw.mods.fml.common.Side;\r
-import cpw.mods.fml.common.asm.SideOnly;\r
-import cpw.mods.fml.common.network.PacketDispatcher;\r
-import cpw.mods.fml.common.network.Player;\r
-\r
-@SideOnly(Side.CLIENT)\r
-public class GuiChemicalCraftingTable extends GuiContainer {\r
-\r
-       /**\r
-        * TabListのArrayList\r
-        */\r
-       private ArrayList<ChemiCraftTab> tabList = new ArrayList<ChemiCraftTab>();\r
-\r
-\r
-       /**\r
-        * Gui画像のHashMap\r
-        * キーの名前は拡張子を除くファイル名にする\r
-        */\r
-       private HashMap<String, Integer> guiImageMap = new HashMap<String, Integer>();\r
-\r
-\r
-       /**\r
-        * 画像のHashMap\r
-        * キーの名前は拡張子を除くファイル名にする\r
-        */\r
-       private HashMap<String, Integer> otherImageMap = new HashMap<String, Integer>();\r
-\r
-\r
-       /**\r
-        * the TileEntity.\r
-        */\r
-       private TileEntityChemicalCraftingTable tileEntity;\r
-\r
-\r
-       /**\r
-        * the InventoryPlayer.\r
-        */\r
-       private InventoryPlayer inventoryPlayer;\r
-\r
-\r
-       /**\r
-        * the Container\r
-        */\r
-       private ContainerChemicalCraftingTable container;\r
-\r
-\r
-\r
-       public GuiChemicalCraftingTable(EntityPlayer par1EntityPlayer, TileEntityChemicalCraftingTable par2){\r
-               super(new ContainerChemicalCraftingTable(par1EntityPlayer, par2));\r
-               //TileEntityを設定\r
-               this.inventoryPlayer = par1EntityPlayer.inventory;\r
-               this.tileEntity = par2;\r
-               this.container = (ContainerChemicalCraftingTable) this.inventorySlots;\r
-               //TabListにTabを追加する\r
-               this.addTabs(0, "Decomposition", new ItemStack(Block.tnt.blockID, 1, 1));\r
-               this.addTabs(1, "ChemicalCombination", new ItemStack(ChemiCraft.instance.itemAtoms, 1, 0));\r
-               this.addTabs(2, "ToolAndWeaponCrafting", new ItemStack(Item.pickaxeSteel, 1, 0));\r
-               this.addTabs(3, "MaterialCrafting", new ItemStack(Item.fireballCharge, 1, 0));\r
-               //ActiveTabの初期化\r
-               for(int i = 0;i < tabList.size();i++){\r
-                       String field_00001 = this.tabList.get(i).getTabName();\r
-                       String field_00002 = this.tileEntity.getActiveTab();\r
-                       if(field_00001.equals(field_00002)){\r
-                               this.tileEntity.setActiveTab(this.tabList.get(i).getTabName());\r
-                       }\r
-               }\r
-       }\r
-\r
-\r
-\r
-       @Override\r
-       protected void mouseClicked(int par1, int par2, int par3){\r
-               super.mouseClicked(par1, par2, par3);\r
-\r
-               int var1 = par1 - this.guiLeft;\r
-               int var2 = par2 - this.guiTop;\r
-               if(var1 < this.tabList.size() * 28 && var1 >= 0 && var2 < 0){\r
-                       String var3 = this.tabList.get(var1 / 28).getTabName();\r
-                       if(!var3.equals(this.tileEntity.getActiveTab())){\r
-                               this.tileEntity.setActiveTab(var3);\r
-                               this.inventoryPlayer.player.openGui(ChemiCraft.instance, ChemiCraft.instance.guiChemicalCraftingTableID, this.tileEntity.worldObj, this.tileEntity.xCoord, this.tileEntity.yCoord, this.tileEntity.zCoord);\r
-                               this.onGuiClosed();\r
-                       }\r
-               }\r
-       }\r
-\r
-\r
-\r
-       @Override\r
-       protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3){\r
-               //ActiveTab Reset.\r
-               this.func_00003();\r
-               //Texture Load.\r
-               this.func_00002();\r
-               //Draw Tabs.\r
-               this.func_00001(par1, par2, par3);\r
-               //Draw GUI\r
-               if(this.tileEntity.getActiveTab().equals("Decomposition")){\r
-                       this.mc.renderEngine.bindTexture(this.guiImageMap.get("Decomposition"));\r
-                       this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);\r
-               }\r
-       }\r
-\r
-\r
-\r
-       private void func_00001(float par1, int par2, int par3){\r
-               int var1 = this.guiLeft;\r
-               int var2 = this.guiTop - 32;\r
-               for(int i = 0;i < this.tabList.size();i++){\r
-                       if(!this.tabList.get(i).isActive()){\r
-                               this.mc.renderEngine.bindTexture(this.otherImageMap.get("tabs"));\r
-                               this.drawTexturedModalRect(var1 + (28 * i), var2, 0, 0, 28, 32);\r
-                               this.itemRenderer.renderItemIntoGUI(this.fontRenderer, this.mc.renderEngine, this.tabList.get(i).getRenderItemStack(), var1 + (28 * i) + 6, var2 + 9);\r
-                               this.itemRenderer.renderItemOverlayIntoGUI(this.fontRenderer, this.mc.renderEngine, this.tabList.get(i).getRenderItemStack(), var1 + (28 * i) + 6, var2 + 9);\r
-                       }else{\r
-                               this.mc.renderEngine.bindTexture(this.otherImageMap.get("tabs"));\r
-                               this.drawTexturedModalRect(var1 + (28 * i), var2, 0, 32, 28, 32);\r
-                               this.itemRenderer.renderItemIntoGUI(this.fontRenderer, this.mc.renderEngine, this.tabList.get(i).getRenderItemStack(), var1 + (28 * i) + 6, var2 + 9);\r
-                               this.itemRenderer.renderItemOverlayIntoGUI(this.fontRenderer, this.mc.renderEngine, this.tabList.get(i).getRenderItemStack(), var1 + (28 * i) + 6, var2 + 9);\r
-                       }\r
-               }\r
-       }\r
-\r
-\r
-\r
-       private void func_00002(){\r
-               //guiImageMapに画像を格納する\r
-               guiImageMap.put("Decomposition", this.mc.renderEngine.getTexture(ChemiCraft.instance.guiDecompositionTexture));\r
-               //otherImageMapに画像を格納する\r
-               otherImageMap.put("tabs", this.mc.renderEngine.getTexture(ChemiCraft.instance.guiTabs));\r
-       }\r
-\r
-\r
-\r
-       private void func_00003(){\r
-               for(int i = 0;i < this.tabList.size();i++){\r
-                       if(!this.tabList.get(i).getTabName().equals(this.tileEntity.getActiveTab())){\r
-                               this.tabList.get(i).setActive(false);\r
-                       }else{\r
-                               this.tabList.get(i).setActive(true);\r
-                       }\r
-               }\r
-       }\r
-\r
-\r
-\r
-       /**\r
-        * ChemiCraftTabを追加します。\r
-        * @param id TabのID\r
-        * @param texture OverlayするTextureID\r
-        * @param name Tabの名前\r
-        * @throws Exception IDが重複している場合にスローされます\r
-        */\r
-       private void addTabs(int id, String name, ItemStack renderItemStack){\r
-               for(int i = 0;i < this.tabList.size();i++){\r
-                       if(id == this.tabList.get(i).getID()){\r
-                               try {\r
-                                       throw new Exception("ChemiCraft内でエラー:ChemiCraftTabのIDが重複しています");\r
-                               } catch (Exception e) {\r
-                                       e.printStackTrace();\r
-                               }\r
-                       }\r
-               }\r
-               this.tabList.add(new ChemiCraftTab(id, name, renderItemStack));\r
-       }\r
-\r
-}\r
diff --git a/common/chemicraft/GuiDecompositionTable.java b/common/chemicraft/GuiDecompositionTable.java
new file mode 100644 (file)
index 0000000..d339947
--- /dev/null
@@ -0,0 +1,55 @@
+package chemicraft;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import net.minecraft.src.Block;
+import net.minecraft.src.EntityPlayer;
+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 cpw.mods.fml.common.Side;
+import cpw.mods.fml.common.asm.SideOnly;
+import cpw.mods.fml.common.network.PacketDispatcher;
+import cpw.mods.fml.common.network.Player;
+
+@SideOnly(Side.CLIENT)
+public class GuiDecompositionTable extends GuiContainer {
+
+       /**
+        * the TileEntity.
+        */
+       private TileEntityDecompositionTable tileEntity;
+
+
+       /**
+        * the InventoryPlayer.
+        */
+       private InventoryPlayer inventoryPlayer;
+
+
+       /**
+        * the Container
+        */
+       private ContainerDecompositionTable container;
+
+
+
+       public GuiDecompositionTable(EntityPlayer par1EntityPlayer, TileEntityDecompositionTable par2){
+               super(new ContainerDecompositionTable(par1EntityPlayer, par2));
+               this.inventoryPlayer = par1EntityPlayer.inventory;
+               this.tileEntity = par2;
+               this.container = (ContainerDecompositionTable) this.inventorySlots;
+       }
+
+
+
+       @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);
+       }
+
+}
diff --git a/common/chemicraft/InventoryChemicalCombination.java b/common/chemicraft/InventoryChemicalCombination.java
new file mode 100644 (file)
index 0000000..8dfd3cd
--- /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 InventoryChemicalCombination implements IInventory {
+
+       private ItemStack[] inventory = new ItemStack[16+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 "ChemicalCombinationInventory";
+       }
+
+       @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 cb1efed..37258d7 100644 (file)
@@ -33,7 +33,7 @@ public class PacketHandler implements IPacketHandler {
                        World worldClient;\r
                        World worldServer;\r
                        TileEntity tileEntity;\r
-                       TileEntityChemicalCraftingTable var2;\r
+                       TileEntityDecompositionTable var2;\r
 \r
                        // TileEntityのx, y, z座標\r
                        int x, y, z;\r
@@ -47,16 +47,16 @@ public class PacketHandler implements IPacketHandler {
                        worldServer = ((EntityPlayer)player).worldObj;\r
                        if(worldClient != null){\r
                                tileEntity = worldClient.getBlockTileEntity(x, y, z);\r
-                               if (tileEntity instanceof TileEntityChemicalCraftingTable) {\r
-                                       var2 = (TileEntityChemicalCraftingTable) tileEntity;\r
+                               if (tileEntity instanceof TileEntityDecompositionTable) {\r
+                                       var2 = (TileEntityDecompositionTable) tileEntity;\r
                                        var2.readPacket(var1);\r
                                }\r
                                return;\r
                        }\r
                        if(worldServer != null){\r
                                tileEntity = worldServer.getBlockTileEntity(x, y, z);\r
-                               if (tileEntity instanceof TileEntityChemicalCraftingTable) {\r
-                                       var2 = (TileEntityChemicalCraftingTable) tileEntity;\r
+                               if (tileEntity instanceof TileEntityDecompositionTable) {\r
+                                       var2 = (TileEntityDecompositionTable) tileEntity;\r
                                        var2.readPacket(var1);\r
                                }\r
                                return;\r
@@ -65,7 +65,7 @@ public class PacketHandler implements IPacketHandler {
        }\r
 \r
 \r
-       public static Packet getPacket(TileEntityChemicalCraftingTable tileEntity) {\r
+       public static Packet getPacket(TileEntityDecompositionTable tileEntity) {\r
                ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);\r
                DataOutputStream var2 = new DataOutputStream(var1);\r
 \r
@@ -98,4 +98,39 @@ public class PacketHandler implements IPacketHandler {
                packet.isChunkDataPacket = true;\r
                return packet;\r
        }\r
+\r
+       public static Packet getPacket(TileEntityChemicalCombinationTable 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/SlotChemicalCombinationResult.java b/common/chemicraft/SlotChemicalCombinationResult.java
new file mode 100644 (file)
index 0000000..192f212
--- /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 SlotChemicalCombinationResult extends Slot {
+
+       public SlotChemicalCombinationResult(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/TileEntityChemicalCombinationTable.java b/common/chemicraft/TileEntityChemicalCombinationTable.java
new file mode 100644 (file)
index 0000000..38bc5f1
--- /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 TileEntityChemicalCombinationTable extends TileEntity {
+
+       /**
+        * DecompositionのInventory
+        */
+       public IInventory chemicalCombinationInv = new InventoryChemicalCombination();
+
+
+       public TileEntityChemicalCombinationTable() {
+               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.chemicalCombinationInv.getSizeInventory())
+                       {
+                               this.chemicalCombinationInv.setInventorySlotContents(var5, ItemStack.loadItemStackFromNBT(var4));
+                       }
+               }
+       }
+
+
+       @Override
+       public void writeToNBT(NBTTagCompound par1) {
+               super.writeToNBT(par1);
+
+               NBTTagList var2 = new NBTTagList();
+               for (int var3 = 0; var3 < this.chemicalCombinationInv.getSizeInventory(); ++var3)
+               {
+                       if (this.chemicalCombinationInv.getStackInSlot(var3) != null)
+                       {
+                               NBTTagCompound var4 = new NBTTagCompound();
+                               var4.setByte("Slot", (byte)var3);
+                               this.chemicalCombinationInv.getStackInSlot(var3).writeToNBT(var4);
+                               var2.appendTag(var4);
+                       }
+               }
+               par1.setTag("Items", var2);
+       }
+
+
+       public IInventory[] getInventorys(){
+               ArrayList<IInventory> inventorys = new ArrayList<IInventory>();
+               inventorys.add(this.chemicalCombinationInv);
+               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();
+               }
+       }
+
+}
@@ -14,26 +14,18 @@ import com.google.common.io.ByteArrayDataInput;
 
 import cpw.mods.fml.common.network.PacketDispatcher;
 
-public class TileEntityChemicalCraftingTable extends TileEntity {
+public class TileEntityDecompositionTable extends TileEntity {
 
        /**
         * DecompositionのInventory
         */
        public IInventory decompositionInv = new InventoryDecomposition();
 
-       /**
-        * ActiveなTabの名前
-        */
-       private String activeTab;
 
-
-       public TileEntityChemicalCraftingTable() {
+       public TileEntityDecompositionTable() {
                super();
-               // ActiveTabのデフォルトを設定
-               this.activeTab = "Decomposition";
        }
 
-       int time = 0;
        @Override
        public void updateEntity() {
                super.updateEntity();
@@ -44,8 +36,6 @@ public class TileEntityChemicalCraftingTable extends TileEntity {
        public void readFromNBT(NBTTagCompound par1) {
                super.readFromNBT(par1);
 
-               this.activeTab = par1.getString("activeTab");
-
                NBTTagList var2 = par1.getTagList("Items");
                for (int var3 = 0; var3 < var2.tagCount(); ++var3)
                {
@@ -64,8 +54,6 @@ public class TileEntityChemicalCraftingTable extends TileEntity {
        public void writeToNBT(NBTTagCompound par1) {
                super.writeToNBT(par1);
 
-               par1.setString("activeTab", this.activeTab);
-
                NBTTagList var2 = new NBTTagList();
                for (int var3 = 0; var3 < this.decompositionInv.getSizeInventory(); ++var3)
                {
@@ -81,25 +69,10 @@ public class TileEntityChemicalCraftingTable extends TileEntity {
        }
 
 
-       public String getActiveTab() {
-               return this.activeTab;
-       }
-
-
-       public void setActiveTab(String activeTab) {
-               this.activeTab = activeTab;
-               PacketDispatcher.sendPacketToServer(this.getDescriptionPacket());
-       }
-
-
-       public IInventory[] getActiveInventory(){
+       public IInventory[] getInventorys(){
                ArrayList<IInventory> inventorys = new ArrayList<IInventory>();
-               if(this.activeTab.equals("Decomposition")){
-                       inventorys.add(this.decompositionInv);
-                       return inventorys.toArray(new IInventory[1]);
-               }else{
-                       return null;
-               }
+               inventorys.add(this.decompositionInv);
+               return inventorys.toArray(new IInventory[1]);
        }
 
 
@@ -111,15 +84,6 @@ public class TileEntityChemicalCraftingTable extends TileEntity {
 
        public void readPacket(ByteArrayDataInput data) {
                try {
-                       this.activeTab = data.readUTF();
-                       for(int i = 0;i < this.decompositionInv.getSizeInventory();i++){
-                               int id = data.readInt();
-                               int damage = data.readInt();
-                               int size = data.readInt();
-                               if(id != 0){
-                                       this.decompositionInv.setInventorySlotContents(i, new ItemStack(id, size, damage));
-                               }
-                       }
                } catch (Exception e) {
                        e.printStackTrace();
                }
@@ -128,18 +92,6 @@ public class TileEntityChemicalCraftingTable extends TileEntity {
 
        public void writePacket(DataOutputStream dos){
                try {
-                       dos.writeUTF(this.activeTab);
-                       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();
                }
index 520956c..bd463c5 100644 (file)
@@ -6,42 +6,45 @@ import net.minecraft.src.World;
 import net.minecraftforge.client.MinecraftForgeClient;
 import chemicraft.ChemiCraft;
 import chemicraft.CommonProxy;
-import chemicraft.GuiChemicalCraftingTable;
-import chemicraft.TileEntityChemicalCraftingTable;
+import chemicraft.GuiChemicalCombinationTable;
+import chemicraft.GuiDecompositionTable;
+import chemicraft.TileEntityChemicalCombinationTable;
+import chemicraft.TileEntityDecompositionTable;
 import cpw.mods.fml.client.FMLClientHandler;
 
 public class ClientProxy extends CommonProxy {
 
-    @Override
-    public void registerRenderInformation() {
-       // テクスチャのプリロードはここで行ってください
-       MinecraftForgeClient.preloadTexture(ChemiCraft.instance.blockChemicalCraftingTableTexture);
-       MinecraftForgeClient.preloadTexture(ChemiCraft.instance.itemAtomsTexture);
-       MinecraftForgeClient.preloadTexture(ChemiCraft.instance.itemCompoundsTexture);
-       MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiChemicalCombinationTexture);
-       MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiDecompositionTexture);
-       MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiMaterialCraftingTexture);
-       MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiToolAndWeaponCraftingTexture);
-       MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiTabs);
-    }
-
-
-    @Override
-    public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
-       if (!world.blockExists(x, y, z))
-           return null;
-
-       TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
-       if (tileEntity instanceof TileEntityChemicalCraftingTable) {
-           return new GuiChemicalCraftingTable(player, (TileEntityChemicalCraftingTable) tileEntity);
+       @Override
+       public void registerRenderInformation() {
+               MinecraftForgeClient.preloadTexture(ChemiCraft.instance.blockChemicalCraftingTableTexture);
+               MinecraftForgeClient.preloadTexture(ChemiCraft.instance.itemAtomsTexture);
+               MinecraftForgeClient.preloadTexture(ChemiCraft.instance.itemCompoundsTexture);
+               MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiChemicalCombinationTexture);
+               MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiDecompositionTexture);
+               MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiMaterialCraftingTexture);
+               MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiToolAndWeaponCraftingTexture);
+               MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiTabs);
        }
-       return null;
-    }
 
 
-    @Override
-    public World getClientWorld() {
-       return FMLClientHandler.instance().getClient().theWorld;
-    }
+       @Override
+       public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
+               if (!world.blockExists(x, y, z))
+                       return null;
+
+               TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
+               if (tileEntity instanceof TileEntityDecompositionTable) {
+                       return new GuiDecompositionTable(player, (TileEntityDecompositionTable) tileEntity);
+               }else if(tileEntity instanceof TileEntityChemicalCombinationTable){
+                       return new GuiChemicalCombinationTable(player, (TileEntityChemicalCombinationTable) tileEntity);
+               }
+               return null;
+       }
+
+
+       @Override
+       public World getClientWorld() {
+               return FMLClientHandler.instance().getClient().theWorld;
+       }
 
 }