OSDN Git Service

Merge branch 'master' of https://scm.sourceforge.jp/gitroot/chemicraft/chemicraft
[chemicraft/chemicraft.git] / common / chemicraft / ChemiCraft.java
index 51e8a97..5b6adbb 100644 (file)
@@ -7,11 +7,32 @@ 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.BlockDecompositionTable;\r
+import chemicraft.block.BlockMaterialCraftingTable;\r
+import chemicraft.block.BlockToolAndMaterialCraftingTable;\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.TileEntityDecompositionTable;\r
+import chemicraft.tileentity.TileEntityMaterialCraftingTable;\r
+import chemicraft.tileentity.TileEntityToolAndWeaponCraftingTable;\r
+import chemicraft.util.Auxiliary;\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
@@ -67,7 +88,7 @@ public class ChemiCraft {
        public int atomsID;\r
        public int compoundsID;\r
        public int gasCollectingBottleID;\r
-       public int grenadeID;\r
+       public int atomGrenadeID;\r
 \r
        /**\r
         * BlockID\r
@@ -99,7 +120,7 @@ public class ChemiCraft {
        public static Item itemAtoms;\r
        public static Item itemCompounds;\r
        public static Item itemGasCollectingBottle;\r
-       public static Item itemGrenade;\r
+       public static Item itemAtomGrenade;\r
 \r
        /**\r
         * このmodで使用するTextureのパス\r
@@ -132,7 +153,7 @@ public class ChemiCraft {
                Property atomsIDProp = cfg.getItem("AtomsID", 25000);\r
                Property compoundsIDProp = cfg.getItem("CompoundsID", 25001);\r
                Property gasCollectingBottleIDProp = cfg.getItem("gasCollectingBottleID", 25002);\r
-               Property grenadeIDProp = cfg.getItem("GrenadeID0", 25003);\r
+               Property atomGrenadeIDProp = cfg.getItem("AtomGrenadeID", 25003);\r
 \r
                Property guiDecompositionTableIDProp = cfg.get("GUI", "GUIChemicalCraftingTableID", 1000);\r
                Property guiChemicalCombinationTableIDProp = cfg.get("GUI", "GUIChemicalCombinationTableID", 1001);\r
@@ -147,7 +168,7 @@ public class ChemiCraft {
                this.atomsID = atomsIDProp.getInt();\r
                this.compoundsID = compoundsIDProp.getInt();\r
                this.gasCollectingBottleID = gasCollectingBottleIDProp.getInt();\r
-               this.grenadeID = grenadeIDProp.getInt();\r
+               this.atomGrenadeID = atomGrenadeIDProp.getInt();\r
                this.guiDecompositionTableID = guiDecompositionTableIDProp.getInt();\r
                this.guiChemicalCombinationTableID = guiChemicalCombinationTableIDProp.getInt();\r
                this.guiToolAndWeaponCraftingTableID = guiToolAndWeaponCraftingTableIDProp.getInt();\r
@@ -159,12 +180,23 @@ 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
@@ -177,7 +209,7 @@ public class ChemiCraft {
                this.itemAtoms = new ItemAtoms(this.atomsID).setItemName("atoms");\r
                this.itemCompounds = new ItemCompounds(this.compoundsID).setItemName("compounds");\r
                this.itemGasCollectingBottle = new ItemGasCollectingBottle(this.gasCollectingBottleID).setItemName("gasCollectingBottle").setIconIndex(0);\r
-               this.itemGrenade = new ItemAtomGrenade(this.grenadeID).setItemName("grenade").setIconIndex(1);\r
+               this.itemAtomGrenade = new ItemAtomGrenade(this.atomGrenadeID).setItemName("grenade").setIconIndex(1);\r
 \r
                // BlockをMinecraftに登録します\r
                GameRegistry.registerBlock(this.blockDecompositionTable);\r
@@ -201,8 +233,8 @@ public class ChemiCraft {
                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.itemGrenade, "AtomGrenade");\r
-               this.NameAuxiliary.addName(this.itemGrenade, "元素手榴弾");\r
+               this.NameAuxiliary.addName(this.itemAtomGrenade, "AtomGrenade");\r
+               this.NameAuxiliary.addName(this.itemAtomGrenade, "元素手榴弾");\r
 \r
                // TileEntityを追加します\r
                GameRegistry.registerTileEntity(TileEntityDecompositionTable.class, "DecompositionTable");\r
@@ -216,8 +248,55 @@ public class ChemiCraft {
                //Textureをpreloadします\r
                proxy.registerTextures();\r
 \r
-               ChemiCraftAPI.instance.addMaterialRecipe(new ItemStack[]{new ItemStack(Block.dirt)}, new ItemStack(this.itemGrenade), 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.blockMaterialCraftingTable),\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.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(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 +306,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