OSDN Git Service

素材製作台(減算処理・NBT処理抜き)を製作
[chemicraft/chemicraft.git] / common / chemicraft / ChemiCraft.java
index debd499..991b668 100644 (file)
@@ -7,11 +7,33 @@ import net.minecraft.src.ItemStack;
 import net.minecraft.src.Material;\r
 import net.minecraftforge.common.Configuration;\r
 import net.minecraftforge.common.Property;\r
-import chemicraft.Auxiliary.NameAuxiliary;\r
+import chemicraft.block.BlockChemicalCombinationTable;\r
+import chemicraft.block.BlockChemicalCraftingTable;\r
+import chemicraft.block.BlockDecompositionTable;\r
+import chemicraft.block.BlockToolAndWeaponCraftingTable;\r
+import chemicraft.debug.CommandDeleteItem;\r
+import chemicraft.debug.CommandSetTile;\r
+import chemicraft.debug.CompoundHandlerTest;\r
+import chemicraft.item.ItemAtomGrenade;\r
+import chemicraft.item.ItemAtoms;\r
+import chemicraft.item.ItemCompounds;\r
+import chemicraft.item.ItemGasCollectingBottle;\r
+import chemicraft.system.CommonProxy;\r
+import chemicraft.system.PacketHandler;\r
+import chemicraft.tileentity.TileEntityChemicalCombinationTable;\r
+import chemicraft.tileentity.TileEntityChemicalCraftingTable;\r
+import chemicraft.tileentity.TileEntityDecompositionTable;\r
+import chemicraft.tileentity.TileEntityToolAndWeaponCraftingTable;\r
+import chemicraft.util.Auxiliary;\r
+import chemicraft.util.Auxiliary.ArrayAuxiliary;\r
+import chemicraft.util.Auxiliary.NameAuxiliary;\r
+import chemicraft.util.CreativeTabAtoms;\r
+import chemicraft.util.NBTRecipeGrenade;\r
 import cpw.mods.fml.common.Mod;\r
 import cpw.mods.fml.common.SidedProxy;\r
 import cpw.mods.fml.common.event.FMLPostInitializationEvent;\r
 import cpw.mods.fml.common.event.FMLPreInitializationEvent;\r
+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.GameRegistry;\r
@@ -75,7 +97,7 @@ public class ChemiCraft {
        public int decompositionTableID;\r
        public int chemicalConbinationTableID;\r
        public int toolAndWeaponCraftingTableID;\r
-       public int materialCraftingTableID;\r
+       public int ChemicalCraftingTableID;\r
 \r
        /**\r
         * GUIID\r
@@ -83,7 +105,7 @@ public class ChemiCraft {
        public int guiDecompositionTableID;\r
        public int guiChemicalCombinationTableID;\r
        public int guiToolAndWeaponCraftingTableID;\r
-       public int guiMaterialCraftingTableID;\r
+       public int guiChemicalCraftingTableID;\r
 \r
        /**\r
         * Block型変数\r
@@ -91,7 +113,7 @@ public class ChemiCraft {
        public static Block blockDecompositionTable;\r
        public static Block blockChemicalCombinationTable;\r
        public static Block blockToolAndWeaponCraftingTable;\r
-       public static Block blockMaterialCraftingTable;\r
+       public static Block blockChemicalCraftingTable;\r
 \r
        /**\r
         * Item型変数\r
@@ -111,13 +133,14 @@ public class ChemiCraft {
        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 guiChemicalCraftingTexture = "/chemicraft/guis/MaterialCrafting.png";\r
 \r
        /**\r
         * このmodに必要な補助クラスのインスタンス\r
         */\r
-       private Auxiliary Auxiliary = new Auxiliary();\r
-       private NameAuxiliary NameAuxiliary = Auxiliary.new NameAuxiliary();\r
+       public Auxiliary auxiliary = new Auxiliary();\r
+       public NameAuxiliary nameAuxiliary = auxiliary.new NameAuxiliary();\r
+       public ArrayAuxiliary arrayAuxiliary = auxiliary.new ArrayAuxiliary();\r
 \r
        @Mod.PreInit\r
        public void chemiPreLoadMethod(FMLPreInitializationEvent event) {\r
@@ -127,7 +150,7 @@ public class ChemiCraft {
                Property decompositionTableIDProp = cfg.getBlock("DecompositionTable", 2400);\r
                Property chemicalCombinationTableIDProp = cfg.getBlock("ChemicalCombinationID", 2401);\r
                Property toolAndWeaponCraftingTableIDProp = cfg.getBlock("ToolAndWeaponCraftingTableID", 2402);\r
-               Property materialCraftingTableIDProp = cfg.getBlock("MaterialCraftingTableID", 2403);\r
+               Property ChemicalCraftingTableIDProp = cfg.getBlock("ChemicalCraftingTableID", 2403);\r
 \r
                Property atomsIDProp = cfg.getItem("AtomsID", 25000);\r
                Property compoundsIDProp = cfg.getItem("CompoundsID", 25001);\r
@@ -137,13 +160,13 @@ public class ChemiCraft {
                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
+               Property guiChemicalCraftingTableIDProp = cfg.get("GUI", "GUIChemicalCraftingTableID", 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.ChemicalCraftingTableID = ChemicalCraftingTableIDProp.getInt();\r
                this.atomsID = atomsIDProp.getInt();\r
                this.compoundsID = compoundsIDProp.getInt();\r
                this.gasCollectingBottleID = gasCollectingBottleIDProp.getInt();\r
@@ -151,7 +174,7 @@ public class ChemiCraft {
                this.guiDecompositionTableID = guiDecompositionTableIDProp.getInt();\r
                this.guiChemicalCombinationTableID = guiChemicalCombinationTableIDProp.getInt();\r
                this.guiToolAndWeaponCraftingTableID = guiToolAndWeaponCraftingTableIDProp.getInt();\r
-               this.guiMaterialCraftingTableID = guiMaterialCraftingTableIDProp.getInt();\r
+               this.guiChemicalCraftingTableID = guiChemicalCraftingTableIDProp.getInt();\r
 \r
                cfg.save();\r
 \r
@@ -159,18 +182,29 @@ public class ChemiCraft {
                proxy.registerRenderInformation();\r
        }\r
 \r
+       @Mod.ServerStarting\r
+       public void serverStarting(FMLServerStartingEvent event){\r
+               event.registerServerCommand(new CommandSetTile());\r
+               event.registerServerCommand(new CommandDeleteItem());\r
+       }\r
 \r
        @Mod.PostInit\r
        public void chemiPostLoadMethod(FMLPostInitializationEvent event) {\r
-               // API用の処理\r
-               this.NameAuxiliary.addName(itemCompounds, ChemiCraftAPI.instance.getCompoundsName().toArray());\r
-               this.NameAuxiliary.addName(itemCompounds, "ja_JP", ChemiCraftAPI.instance.getCompoundsLangName().toArray());\r
+               this.settingProcessing(event);\r
+               this.apiProcessing(event);\r
+       }\r
+\r
+       private void settingProcessing(FMLPostInitializationEvent event){\r
+\r
+               ChemiCraftAPI.instance.addCompound("Test");\r
+               ChemiCraftAPI.instance.addCompound("Test2");\r
+               ChemiCraftAPI.instance.settingCompoundHandler("Test", new CompoundHandlerTest());\r
 \r
                // Blockを追加します\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
+               this.blockToolAndWeaponCraftingTable = new BlockToolAndWeaponCraftingTable(this.toolAndWeaponCraftingTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("ToolAndWeaponCraftingTable");\r
+               this.blockChemicalCraftingTable = new BlockChemicalCraftingTable(ChemicalCraftingTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("ChemicalCraftingTable");\r
 \r
 \r
                // Itemを追加します\r
@@ -183,32 +217,32 @@ public class ChemiCraft {
                GameRegistry.registerBlock(this.blockDecompositionTable);\r
                GameRegistry.registerBlock(this.blockChemicalCombinationTable);\r
                GameRegistry.registerBlock(this.blockToolAndWeaponCraftingTable);\r
-               GameRegistry.registerBlock(this.blockMaterialCraftingTable);\r
+               GameRegistry.registerBlock(this.blockChemicalCraftingTable);\r
 \r
                // Blockの名前を設定します\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
+               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(blockChemicalCraftingTable, "ChemicalCraftingTable");\r
+               this.nameAuxiliary.addName(blockChemicalCraftingTable, "ja_JP", "素材製作台");\r
 \r
 \r
                // Itemの名前を設定します\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
-               this.NameAuxiliary.addName(this.itemAtomGrenade, "AtomGrenade");\r
-               this.NameAuxiliary.addName(this.itemAtomGrenade, "元素手榴弾");\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
+               this.nameAuxiliary.addName(this.itemAtomGrenade, "AtomGrenade");\r
+               this.nameAuxiliary.addName(this.itemAtomGrenade, "元素手榴弾");\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
+               GameRegistry.registerTileEntity(TileEntityChemicalCraftingTable.class, "TileEntityChemicalCraftingTable");\r
 \r
                // GUIを追加します\r
                NetworkRegistry.instance().registerGuiHandler(instance, proxy);\r
@@ -216,8 +250,58 @@ public class ChemiCraft {
                //Textureをpreloadします\r
                proxy.registerTextures();\r
 \r
-               ChemiCraftAPI.instance.addMaterialRecipe(new ItemStack[]{new ItemStack(Block.dirt)}, new ItemStack(this.itemAtomGrenade), new NBTRecipeGrenade());\r
+               //化学作業台類のレシピを追加します\r
+               GameRegistry.addRecipe(new ItemStack(this.blockDecompositionTable),\r
+                               new Object[]{\r
+                       "XYX", "ZAZ", "ZZZ",\r
+                       new Character('X'), new ItemStack(Item.ingotIron),\r
+                       new Character('Y'), new ItemStack(Block.workbench),\r
+                       new Character('Z'), new ItemStack(Block.stone),\r
+                       new Character('A'), new ItemStack(Block.tnt),\r
+               });\r
+               GameRegistry.addRecipe(new ItemStack(this.blockChemicalCombinationTable),\r
+                               new Object[]{\r
+                       "XYX", "ZAZ", "ZZZ",\r
+                       new Character('X'), new ItemStack(Item.ingotIron),\r
+                       new Character('Y'), new ItemStack(Block.workbench),\r
+                       new Character('Z'), new ItemStack(Block.stone),\r
+                       new Character('A'), new ItemStack(Block.obsidian),\r
+               });\r
+               GameRegistry.addRecipe(new ItemStack(this.blockToolAndWeaponCraftingTable),\r
+                               new Object[]{\r
+                       "XYX", "ZAZ", "ZZZ",\r
+                       new Character('X'), new ItemStack(Item.ingotIron),\r
+                       new Character('Y'), new ItemStack(Block.workbench),\r
+                       new Character('Z'), new ItemStack(Block.stone),\r
+                       new Character('A'), new ItemStack(Item.pickaxeSteel),\r
+               });\r
+               GameRegistry.addRecipe(new ItemStack(this.blockChemicalCraftingTable),\r
+                               new Object[]{\r
+                       "XYX", "ZAZ", "ZZZ",\r
+                       new Character('X'), new ItemStack(Item.ingotIron),\r
+                       new Character('Y'), new ItemStack(Block.workbench),\r
+                       new Character('Z'), new ItemStack(Block.stone),\r
+                       new Character('A'), new ItemStack(this.itemAtoms, 1, 0),\r
+               });\r
+\r
+               //\r
+               ChemiCraftAPI.instance.addDecompositionRecipe(new ItemStack(Block.dirt), new ItemStack[]{new ItemStack(Block.stone)});\r
+\r
+               // 化合物を追加します\r
+               ChemiCraftAPI.instance.addLangCompound("ja_JP", "CarbonDioxide", "二酸化炭素");\r
+\r
+               // 化合物のレシピを追加します\r
+               ChemiCraftAPI.instance.addChemicalCombinationRecipe(new ItemStack[]{new ItemStack(this.itemAtoms, 5), new ItemStack(this.itemAtoms, 7)}, new ItemStack(this.itemCompounds, 0));\r
+\r
+               //手榴弾の追加\r
+               ChemiCraftAPI.instance.addMaterialRecipe(new ItemStack[]{new ItemStack(Item.gunpowder), new ItemStack(Block.stone)}, new ItemStack(this.itemAtomGrenade, 16, 0), new NBTRecipeGrenade());\r
+\r
+       }\r
 \r
+       private void apiProcessing(FMLPostInitializationEvent event){\r
+               // API用の処理\r
+               this.nameAuxiliary.addName(itemCompounds, ChemiCraftAPI.instance.getCompoundsName().toArray());\r
+               this.nameAuxiliary.addName(itemCompounds, "ja_JP", ChemiCraftAPI.instance.getCompoundsLangName().toArray());\r
        }\r
 \r
        public final static int HYDROGEN = 0;\r
@@ -227,6 +311,7 @@ public class ChemiCraft {
        public final static int BORON = 4;\r
        public final static int CARBON = 5;\r
        public final static int NITROGEN = 6;\r
+       public final static int OXYGEN = 7;\r
        public final static int URANIUM = 91;\r
 \r
 }
\ No newline at end of file