OSDN Git Service

ChemiCraft.java修正
[chemicraft/chemicraft.git] / common / chemicraft / ChemiCraft.java
index fe7ebf5..7f8829a 100644 (file)
@@ -1,22 +1,23 @@
 package chemicraft;\r
 \r
-import net.minecraft.src.Block;\r
-import net.minecraft.src.CreativeTabs;\r
-import net.minecraft.src.Item;\r
-import net.minecraft.src.ItemStack;\r
-import net.minecraft.src.Material;\r
+import net.minecraft.block.Block;\r
+import net.minecraft.block.material.Material;\r
+import net.minecraft.client.audio.SoundManager;\r
+import net.minecraft.creativetab.CreativeTabs;\r
+import net.minecraft.item.Item;\r
+import net.minecraft.item.ItemStack;\r
 import net.minecraftforge.common.Configuration;\r
 import net.minecraftforge.common.Property;\r
 import chemicraft.block.BlockChemicalCombinationTable;\r
 import chemicraft.block.BlockChemicalCraftingTable;\r
-import chemicraft.block.BlockDecompositionTable;\r
+import chemicraft.block.BlockElectrolysisTable;\r
+import chemicraft.block.BlockPyrolysisTable;\r
 import chemicraft.block.BlockToolAndWeaponCraftingTable;\r
+import chemicraft.compounds.CompoundDebug;\r
 import chemicraft.compounds.CompoundWater;\r
 import chemicraft.debug.CommandDeleteItem;\r
 import chemicraft.debug.CommandGenDebugRoom;\r
 import chemicraft.debug.CommandSetTile;\r
-import chemicraft.entity.EntityAtomsGrenade;\r
-import chemicraft.item.ItemAtomGrenade;\r
 import chemicraft.item.ItemAtoms;\r
 import chemicraft.item.ItemAtomsGrenade;\r
 import chemicraft.item.ItemCompounds;\r
@@ -25,7 +26,8 @@ import chemicraft.system.CommonProxy;
 import chemicraft.system.PacketHandler;\r
 import chemicraft.tileentity.TileEntityChemicalCombinationTable;\r
 import chemicraft.tileentity.TileEntityChemicalCraftingTable;\r
-import chemicraft.tileentity.TileEntityDecompositionTable;\r
+import chemicraft.tileentity.TileEntityElectrolysisTable;\r
+import chemicraft.tileentity.TileEntityPyrolysisTable;\r
 import chemicraft.tileentity.TileEntityToolAndWeaponCraftingTable;\r
 import chemicraft.util.Auxiliary;\r
 import chemicraft.util.Auxiliary.ArrayAuxiliary;\r
@@ -39,7 +41,6 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent;
 import cpw.mods.fml.common.event.FMLServerStartingEvent;\r
 import cpw.mods.fml.common.network.NetworkMod;\r
 import cpw.mods.fml.common.network.NetworkRegistry;\r
-import cpw.mods.fml.common.registry.EntityRegistry;\r
 import cpw.mods.fml.common.registry.GameRegistry;\r
 \r
 /**\r
@@ -48,9 +49,7 @@ import cpw.mods.fml.common.registry.GameRegistry;
  *\r
  */\r
 @Mod(modid = "chemiCraft", name = "ChemiCraft", version = "beta")\r
-// ID,名前,バージョン\r
-@NetworkMod(clientSideRequired = true, serverSideRequired = true, versionBounds = "1.3.2", channels = "chemicraft", packetHandler = PacketHandler.class)\r
-// クライアント、サーバー共に必要 1.3.2用\r
+@NetworkMod(clientSideRequired = true, serverSideRequired = true, versionBounds = "1.4.6", channels = "chemicraft", packetHandler = PacketHandler.class)\r
 public class ChemiCraft {\r
 \r
        public static final String[] ATOMSNAME = {\r
@@ -99,26 +98,29 @@ public class ChemiCraft {
        /**\r
         * BlockID.\r
         */\r
-       public int decompositionTableID;\r
+       public int pyrolysisTableID;\r
        public int chemicalConbinationTableID;\r
        public int toolAndWeaponCraftingTableID;\r
        public int chemicalCraftingTableID;\r
+       public int electrolysisTableID;\r
 \r
        /**\r
         * GUIID.\r
         */\r
-       public int guiDecompositionTableID;\r
+       public int guiPyrolysisTableID;\r
        public int guiChemicalCombinationTableID;\r
        public int guiToolAndWeaponCraftingTableID;\r
        public int guiChemicalCraftingTableID;\r
+       public int guiElectrolysisTableID;\r
 \r
        /**\r
         * Block型変数.\r
         */\r
-       public Block blockDecompositionTable;\r
+       public Block blockPyrolysisTable;\r
        public Block blockChemicalCombinationTable;\r
        public Block blockToolAndWeaponCraftingTable;\r
        public Block blockChemicalCraftingTable;\r
+       public Block blockElectrolysisTable;\r
 \r
        /**\r
         * Item型変数.\r
@@ -131,14 +133,15 @@ public class ChemiCraft {
        /**\r
         * このmodで使用するTextureのパス.\r
         */\r
-       public String itemAtomsTexture = "/chemicraft/items/Atoms.png";\r
-       public String itemCompoundsTexture = "/chemicraft/items/Compounds.png";\r
-       public String itemTexture = "/chemicraft/items/items.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 guiChemicalCraftingTexture = "/chemicraft/guis/MaterialCrafting.png";\r
+       public final String ITEM_ATOMS_TEXTURE = "/chemicraft/items/Atoms.png";\r
+       public final String ITEM_COMPOUNDS_TEXTURE = "/chemicraft/items/Compounds.png";\r
+       public final String ITEM_TEXTURE = "/chemicraft/items/items.png";\r
+       public final String BLOCK_CHEMICALCRAFTING_TABLE_TEXTURE = "/chemicraft/blocks/cctable.png";\r
+       public final String GUI_PYROLYSIS_TEXTURE = "/chemicraft/guis/Pyrolysis.png";\r
+       public final String GUI_ELECTROLYSIS_TEXTURE = "/chemicraft/guis/Electrolysis.png";\r
+       public final String GUI_CHEMICALCOMBINATION_TEXTURE = "/chemicraft/guis/ChemicalCombination.png";\r
+       public final String GUI_TOOLANDWEAPONCRAFTING_TEXTURE = "/chemicraft/guis/ToolAndWeaponCrafting.png";\r
+       public final String GUI_CHEMICALCRAFTING_TEXTURE = "/chemicraft/guis/MaterialCrafting.png";\r
 \r
        /**\r
         * このmodに必要な補助クラスのインスタンス.\r
@@ -155,34 +158,38 @@ public class ChemiCraft {
                Configuration cfg = new Configuration(event.getSuggestedConfigurationFile());\r
                cfg.load();\r
 \r
-               Property decompositionTableIDProp = cfg.getBlock("DecompositionTable", 2400);\r
+               Property pyrolysisTableIDProp = cfg.getBlock("PyrolysisTable", 2400);\r
                Property chemicalCombinationTableIDProp = cfg.getBlock("ChemicalCombinationID", 2401);\r
                Property toolAndWeaponCraftingTableIDProp = cfg.getBlock("ToolAndWeaponCraftingTableID", 2402);\r
                Property chemicalCraftingTableIDProp = cfg.getBlock("ChemicalCraftingTableID", 2403);\r
+               Property electrolysisTableIDProp = cfg.getBlock("ElectrolysisTableID", 2404);\r
 \r
                Property atomsIDProp = cfg.getItem("AtomsID", 25000);\r
                Property compoundsIDProp = cfg.getItem("CompoundsID", 25001);\r
                Property gasCollectingBottleIDProp = cfg.getItem("gasCollectingBottleID", 25002);\r
                Property atomGrenadeIDProp = cfg.getItem("AtomGrenadeID", 25003);\r
 \r
-               Property guiDecompositionTableIDProp = cfg.get("GUI", "GUIChemicalCraftingTableID", 1000);\r
+               Property guiPyrolysisTableIDProp = cfg.get("GUI", "GUIPyrolysisID", 1000);\r
                Property guiChemicalCombinationTableIDProp = cfg.get("GUI", "GUIChemicalCombinationTableID", 1001);\r
                Property guiToolAndWeaponCraftingTableIDProp = cfg.get("GUI", "GUIToolAndWeaponCraftingTableID", 1002);\r
                Property guiChemicalCraftingTableIDProp = cfg.get("GUI", "GUIChemicalCraftingTableID", 1003);\r
+               Property guiElectrolysisTableIDProp = cfg.get("GUI", "GUIElectrolysisTableID", 1004);\r
 \r
 \r
-               this.decompositionTableID = decompositionTableIDProp.getInt();\r
+               this.pyrolysisTableID = pyrolysisTableIDProp.getInt();\r
                this.chemicalConbinationTableID = chemicalCombinationTableIDProp.getInt();\r
                this.toolAndWeaponCraftingTableID = toolAndWeaponCraftingTableIDProp.getInt();\r
                this.chemicalCraftingTableID = chemicalCraftingTableIDProp.getInt();\r
+               this.electrolysisTableID = electrolysisTableIDProp.getInt();\r
                this.atomsID = atomsIDProp.getInt();\r
                this.compoundsID = compoundsIDProp.getInt();\r
                this.gasCollectingBottleID = gasCollectingBottleIDProp.getInt();\r
                this.atomGrenadeID = atomGrenadeIDProp.getInt();\r
-               this.guiDecompositionTableID = guiDecompositionTableIDProp.getInt();\r
+               this.guiPyrolysisTableID = guiPyrolysisTableIDProp.getInt();\r
                this.guiChemicalCombinationTableID = guiChemicalCombinationTableIDProp.getInt();\r
                this.guiToolAndWeaponCraftingTableID = guiToolAndWeaponCraftingTableIDProp.getInt();\r
                this.guiChemicalCraftingTableID = guiChemicalCraftingTableIDProp.getInt();\r
+               this.guiElectrolysisTableID = guiElectrolysisTableIDProp.getInt();\r
 \r
                cfg.save();\r
        }\r
@@ -204,11 +211,11 @@ public class ChemiCraft {
        private void settingProcessing(final FMLPostInitializationEvent event) {\r
 \r
                // Blockを追加します\r
-               this.blockDecompositionTable = new BlockDecompositionTable(this.decompositionTableID, 0, Material.ground).\r
+               this.blockPyrolysisTable = new BlockPyrolysisTable(this.pyrolysisTableID, 0, Material.ground).\r
                                setHardness(2.0F).\r
                                setResistance(0.0F).\r
                                setStepSound(Block.soundStoneFootstep).\r
-                               setBlockName("DecompositionTable");\r
+                               setBlockName("PyrolysisTable");\r
                this.blockChemicalCombinationTable = new BlockChemicalCombinationTable(this.chemicalConbinationTableID, 0, Material.ground).\r
                                setHardness(2.0F).\r
                                setResistance(0.0F).\r
@@ -219,11 +226,16 @@ public class ChemiCraft {
                                setResistance(0.0F).\r
                                setStepSound(Block.soundStoneFootstep).\r
                                setBlockName("ToolAndWeaponCraftingTable");\r
-               this.blockChemicalCraftingTable = new BlockChemicalCraftingTable(chemicalCraftingTableID, 0, Material.ground).\r
+               this.blockChemicalCraftingTable = new BlockChemicalCraftingTable(this.chemicalCraftingTableID, 0, Material.ground).\r
                                setHardness(2.0F).\r
                                setResistance(0.0F).\r
                                setStepSound(Block.soundStoneFootstep).\r
                                setBlockName("ChemicalCraftingTable");\r
+               this.blockElectrolysisTable = new BlockElectrolysisTable(this.electrolysisTableID, 0, Material.ground).\r
+                               setHardness(2.0F).\r
+                               setResistance(0.0F).\r
+                               setStepSound(Block.soundStoneFootstep).\r
+                               setBlockName("ElectrolysisTable");\r
 \r
                // Itemを追加します\r
                this.itemAtoms = new ItemAtoms(this.atomsID).setItemName("atoms");\r
@@ -232,20 +244,23 @@ public class ChemiCraft {
                this.itemAtomGrenade = new ItemAtomsGrenade(this.atomGrenadeID).setItemName("grenade").setIconIndex(1);\r
 \r
                // BlockをMinecraftに登録します\r
-               GameRegistry.registerBlock(this.blockDecompositionTable);\r
-               GameRegistry.registerBlock(this.blockChemicalCombinationTable);\r
-               GameRegistry.registerBlock(this.blockToolAndWeaponCraftingTable);\r
-               GameRegistry.registerBlock(this.blockChemicalCraftingTable);\r
+               GameRegistry.registerBlock(this.blockPyrolysisTable, "BlockPyrolysisTable");\r
+               GameRegistry.registerBlock(this.blockChemicalCombinationTable, "BlockChemicalCombinationTable");\r
+               GameRegistry.registerBlock(this.blockToolAndWeaponCraftingTable, "BlockToolAndWeaponCraftingTable");\r
+               GameRegistry.registerBlock(this.blockChemicalCraftingTable, "BlockMaterialCraftingTable");\r
+               GameRegistry.registerBlock(this.blockElectrolysisTable, "BlockElectrolysisTable");\r
 \r
                // Blockの名前を設定します\r
-               this.nameAuxiliary.addName(this.blockDecompositionTable, "DecompositionTable");\r
-               this.nameAuxiliary.addName(this.blockDecompositionTable, "ja_JP", "分解台");\r
+               this.nameAuxiliary.addName(this.blockPyrolysisTable, "PyrolysisTable");\r
+               this.nameAuxiliary.addName(this.blockPyrolysisTable, "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(blockChemicalCraftingTable, "ChemicalCraftingTable");\r
-               this.nameAuxiliary.addName(blockChemicalCraftingTable, "ja_JP", "素材製作台");\r
+               this.nameAuxiliary.addName(this.blockToolAndWeaponCraftingTable, "ToolAndWeaponCraftingTable");\r
+               this.nameAuxiliary.addName(this.blockToolAndWeaponCraftingTable, "ja_JP", "ツール&武器製作台");\r
+               this.nameAuxiliary.addName(this.blockChemicalCraftingTable, "ChemicalCraftingTable");\r
+               this.nameAuxiliary.addName(this.blockChemicalCraftingTable, "ja_JP", "素材製作台");\r
+               this.nameAuxiliary.addName(this.blockElectrolysisTable, "ElectrolysisTable");\r
+               this.nameAuxiliary.addName(this.blockElectrolysisTable, "ja_JP", "電気分解台");\r
 \r
                // Itemの名前を設定します\r
                this.nameAuxiliary.addName(this.itemAtoms, ATOMSNAME);\r
@@ -256,10 +271,11 @@ public class ChemiCraft {
                this.nameAuxiliary.addName(this.itemAtomGrenade, "元素手榴弾");\r
 \r
                // TileEntityを追加します\r
-               GameRegistry.registerTileEntity(TileEntityDecompositionTable.class, "DecompositionTable");\r
+               GameRegistry.registerTileEntity(TileEntityPyrolysisTable.class, "TileEntityPyrolysisTable");\r
                GameRegistry.registerTileEntity(TileEntityChemicalCombinationTable.class, "TileEntityChemicalCombinationTable");\r
                GameRegistry.registerTileEntity(TileEntityToolAndWeaponCraftingTable.class, "TileEntityToolAndWeaponCraftingTable");\r
                GameRegistry.registerTileEntity(TileEntityChemicalCraftingTable.class, "TileEntityChemicalCraftingTable");\r
+               GameRegistry.registerTileEntity(TileEntityElectrolysisTable.class, "TileEntityElectrolysisTable");\r
 \r
                // GUIを追加します\r
                NetworkRegistry.instance().registerGuiHandler(instance, proxy);\r
@@ -268,13 +284,13 @@ public class ChemiCraft {
                proxy.registerRenderInformation();\r
 \r
                //化学作業台類のレシピを追加します\r
-               GameRegistry.addRecipe(new ItemStack(this.blockDecompositionTable),\r
+               GameRegistry.addRecipe(new ItemStack(this.blockPyrolysisTable),\r
                                new Object[]{\r
                        "XYX", "ZAZ", "ZZZ",\r
                        Character.valueOf('X'), new ItemStack(Item.ingotIron),\r
                        Character.valueOf('Y'), new ItemStack(Block.workbench),\r
                        Character.valueOf('Z'), new ItemStack(Block.stone),\r
-                       Character.valueOf('A'), new ItemStack(Block.tnt),\r
+                       Character.valueOf('A'), new ItemStack(Item.bucketLava),\r
                });\r
                GameRegistry.addRecipe(new ItemStack(this.blockChemicalCombinationTable),\r
                                new Object[]{\r
@@ -302,45 +318,57 @@ public class ChemiCraft {
                });\r
 \r
                // 化合物を追加します\r
-               ChemiCraftAPI.getInstance().addLangCompound("ja_JP", "CarbonMonoxide", "一酸化炭素");\r
-               ChemiCraftAPI.getInstance().addLangCompound("ja_JP", "CarbonDioxide", "二酸化炭素");\r
-               ChemiCraftAPI.getInstance().addLangCompound("ja_JP", "Water", "水");\r
+               api.addLangCompound("ja_JP", "CarbonMonoxide", "一酸化炭素");\r
+               api.addLangCompound("ja_JP", "CarbonDioxide", "二酸化炭素");\r
+               api.addLangCompound("ja_JP", "Water", "水");\r
+
 \r
                //化合物のHandlerを設定します\r
-               ChemiCraftAPI.getInstance().settingCompoundHandler("Water", new CompoundWater());\r
+               api.settingCompoundHandler("Water", new CompoundWater());\r
+\r
+               //化合物のレシピを追加します\r
+               api.addChemicalCombinationRecipe(new String[]{"H", "O"}, new Integer[]{2, 1}, new ItemStack(this.itemCompounds, 1, api.getCompound("Water")));\r
 \r
                //手榴弾の追加\r
-               ChemiCraftAPI.getInstance().addMaterialRecipe(\r
-                               new ItemStack[]{\r
-                                               null,\r
-                                               new ItemStack(Block.stone),\r
-                                               null,\r
-                                               new ItemStack(Block.stone),\r
-                                               new ItemStack(Item.gunpowder),\r
-                                               new ItemStack(Block.stone),\r
-                                               null,\r
-                                               new ItemStack(Block.stone),\r
-                                               null\r
-                               },\r
-                               new ItemStack(this.itemAtomGrenade, 16, 0),\r
-                               new NBTRecipeGrenade()\r
+               api.addMaterialRecipe(new ItemStack[] {\r
+                               null,\r
+                               new ItemStack(Block.stone),\r
+                               null,\r
+                               new ItemStack(Block.stone),\r
+                               new ItemStack(Item.gunpowder),\r
+                               new ItemStack(Block.stone),\r
+                               null,\r
+                               new ItemStack(Block.stone),\r
+                               null\r
+               },\r
+               new ItemStack(this.itemAtomGrenade, 16, 0),\r
+               new NBTRecipeGrenade()\r
                                );\r
+\r
+               api.addDecompositionRecipe(new ItemStack(Item.potion, 1, 0),\r
+                               new int[] {ChemiCraftData.HYDROGEN, ChemiCraftData.OXYGEN},\r
+                               new int[] {2, 1});\r
+\r
+               api.addDecompositionRecipe(new ItemStack(this.itemCompounds, 1, api.getCompound("Water")),\r
+                               new int[] {ChemiCraftData.HYDROGEN, ChemiCraftData.OXYGEN},\r
+                               new int[] {2, 1});\r
+\r
+               api.addDecompositionFuel(new ItemStack(Item.coal), 2000*8);\r
        }\r
 \r
        private void apiProcessing(final FMLPostInitializationEvent event) {\r
                // API用の処理\r
-               this.nameAuxiliary.addName(itemCompounds, ChemiCraftAPI.getInstance().getCompoundsName().toArray());\r
-               this.nameAuxiliary.addName(itemCompounds, "ja_JP", ChemiCraftAPI.getInstance().getCompoundsLangName().toArray());\r
-               ChemiCraftAPI.getInstance().addCompoundHash(ChemiCraftAPI.getInstance().getCompoundsName().toArray());\r
+               this.nameAuxiliary.addName(itemCompounds, api.getInstance().getCompoundsName().toArray());\r
+               for (int i = 0; i < api.getCompoundsLang().size(); i++) {\r
+                       this.nameAuxiliary.addName(itemCompounds, api.getCompoundsLang().get(i), api.getInstance().getCompoundsLangName().toArray());\r
+               }\r
        }\r
 \r
        private void debug(final FMLPostInitializationEvent event) {\r
-               //デバッグ処理\r
-               api.addChemicalCombinationRecipe(\r
-                               new String[]{ChemiCraftData.HYDROGEN_SIGN, ChemiCraftData.OXYGEN_SIGN},\r
-                               new Integer[]{2, 1},\r
-                               new ItemStack(Block.dirt)\r
-                               );\r
+               //DebugTickingの追加\r
+               this.proxy.registerTickHandler();\r
+               api.addCompound("Debug");\r
+               this.api.settingCompoundHandler("Debug", new CompoundDebug());\r
        }\r
 \r
-}
\ No newline at end of file
+}\r