OSDN Git Service

修正・変更
[chemicraft/chemicraft.git] / common / pcc / chemicraft / base / ChemiCraftBase.java
index aa483af..7359b95 100644 (file)
@@ -1,8 +1,11 @@
 package pcc.chemicraft.base;
 
+import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 import net.minecraft.block.Block;
+import net.minecraft.block.BlockDispenser;
 import net.minecraft.creativetab.CreativeTabs;
 import net.minecraft.item.Item;
 import net.minecraft.item.ItemStack;
@@ -12,27 +15,29 @@ import net.minecraftforge.oredict.OreDictionary;
 import pcc.chemicraft.ChemiCraft;
 import pcc.chemicraft.ChemiCraftConfiguration;
 import pcc.chemicraft.ChemiCraftRegister;
+import pcc.chemicraft.EnumLoggingType;
 import pcc.chemicraft.base.creativetab.CreativeTabAtomOres;
+import pcc.chemicraft.base.dispenser.DispenserBehaviorAtomsGrenade;
 import pcc.chemicraft.base.system.CommonProxy;
 import pcc.chemicraft.base.system.PacketHandler;
-import pcc.chemicraft.core.ChemiCraftAPI;
+import pcc.chemicraft.core.ChemiCraftCore;
 import cpw.mods.fml.common.Loader;
-import cpw.mods.fml.common.Mod;
-import cpw.mods.fml.common.ModContainer;
 import cpw.mods.fml.common.LoaderState.ModState;
+import cpw.mods.fml.common.Mod;
 import cpw.mods.fml.common.Mod.Instance;
 import cpw.mods.fml.common.Mod.PostInit;
 import cpw.mods.fml.common.Mod.PreInit;
+import cpw.mods.fml.common.ModContainer;
 import cpw.mods.fml.common.SidedProxy;
-import cpw.mods.fml.common.event.FMLInitializationEvent;
 import cpw.mods.fml.common.event.FMLPostInitializationEvent;
 import cpw.mods.fml.common.event.FMLPreInitializationEvent;
 import cpw.mods.fml.common.network.NetworkMod;
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.common.registry.LanguageRegistry;
 
-@Mod(modid = "ChemiCraftBase", name = "ChemiCraftBase", version = "beta")
-@NetworkMod(clientSideRequired = true, serverSideRequired = true, versionBounds = "1.4.6", channels = "chemicraftbase", packetHandler = PacketHandler.class)
-public class ChemiCraftBase extends ChemiCraft
-{
+@Mod(modid = "ChemiCraftBase", name = "ChemiCraftBase", version = "beta1")
+@NetworkMod(clientSideRequired = true, serverSideRequired = true, versionBounds = "1.5", channels = "chemicraftbase", packetHandler = PacketHandler.class)
+public class ChemiCraftBase extends ChemiCraft {
 
        /**
         * this is ChemiCraft instance.
@@ -49,22 +54,24 @@ public class ChemiCraftBase extends ChemiCraft
        /**
         * API Instance.
         */
-       public ChemiCraftAPI api = ChemiCraftAPI.instance();
        public ChemiCraftBaseAPI apiBase = ChemiCraftBaseAPI.instance();
 
        /**
         * CreativeTab of ChemiCraft.
         */
-       public static final CreativeTabs creativeTabAtomsOre = new CreativeTabAtomOres("AtomsOre");
+       public static final CreativeTabs creativeTabAtomOres = new CreativeTabAtomOres("AtomOres");
 
        /**
         * the ItemID.
         */
+       public int atomIngotsID;
        public int atomGrenadeID;
        public int blackSmokeID;
+       public int oreSerarcherID;
        public int dustID;
        public int radiationGunID;
        public int radiationBalletID;
+       public int raditionGunDataChipID;
 
        /**
         * the BlockID.
@@ -79,11 +86,14 @@ public class ChemiCraftBase extends ChemiCraft
        /**
         * Variables of Item type.
         */
+       public Item itemAtomIngots;
        public Item itemAtomGrenade;
        public Item itemBlackSmoke;
        public Item itemDust;
        public Item itemRadiationGun;
        public Item itemRadiationBallet;
+       public Item itemOreSearcher;
+       public Item itemRaditionGunDataChip;
 
        /**
         * the Register Instances.
@@ -96,8 +106,13 @@ public class ChemiCraftBase extends ChemiCraft
        public ChemiCraftRegister registerRecipe;
        public ChemiCraftRegister registerEntitys;
 
-       public ChemiCraftBase()
-       {
+       /**
+        * the Textures.
+        */
+       public static final String INGOT = ChemiCraft.TEXTURE + "atom_ingots_";
+       public static final String ORE = ChemiCraft.TEXTURE + "atom_ores_";
+
+       public ChemiCraftBase() {
                this.registerCompounds = new ChemiCraftRegisterCompounds(this);
                this.registerCompoundsHandler = new ChemiCraftRegisterCompoundsHandler(this);
                this.registerItem = new ChemiCraftRegisterItem(this);
@@ -124,12 +139,10 @@ public class ChemiCraftBase extends ChemiCraft
        }
 
        @Override
-       public void run()
-       {
+       public void run() {
                while (true) {
                        if (proxy != null && instance != null) {
                                this.settingProcessing((FMLPostInitializationEvent) event);
-                               this.apiProcessing((FMLPostInitializationEvent) event);
                                break;
                        }
                }
@@ -141,7 +154,8 @@ public class ChemiCraftBase extends ChemiCraft
                                        List<ModContainer> mod = Loader.instance().getModList();
                                        ModContainer finalMod = mod.get(mod.size()-1);
                                        ModState finalModState = Loader.instance().getModState(finalMod);
-                                       if (finalModState == ModState.AVAILABLE) {
+                                       if (finalModState == ModState.POSTINITIALIZED) {
+                                               ChemiCraftCore.logger.write("ChemiCraftBase>APIProcessing", EnumLoggingType.INFO);
                                                apiProcessing((FMLPostInitializationEvent) event);
                                                break;
                                        }
@@ -153,7 +167,7 @@ public class ChemiCraftBase extends ChemiCraft
        }
 
        /**
-        * PreInit:
+        * PreInit:<br>
         * Configをロードします。
         * @param event アノテーション呼び出しにより呼び出す必要なし
         */
@@ -172,17 +186,18 @@ public class ChemiCraftBase extends ChemiCraft
                        this.atomOresID[i] = ccfgBlock.additionID();
                }
 
+               this.atomIngotsID = ccfgItem.additionID();
                this.atomGrenadeID = ccfgItem.additionID();
                this.dustID = ccfgItem.additionID();
                this.radiationGunID = ccfgItem.additionID();
                this.radiationBalletID = ccfgItem.additionID();
                this.blackSmokeID = ccfgItem.additionID();
+               this.oreSerarcherID = ccfgItem.additionID();
 
                cfg.save();
        }
 
-       protected void settingProcessing(FMLPostInitializationEvent event)
-       {
+       protected void settingProcessing(FMLPostInitializationEvent event) {
                this.registerCompounds.start();
                this.registerCompoundsHandler.start();
                this.registerItem.start();
@@ -190,16 +205,42 @@ public class ChemiCraftBase extends ChemiCraft
                this.registerChemicalRecipe.start();
                this.registerRecipe.start();
                this.registerEntitys.start();
+
+               BlockDispenser.dispenseBehaviorRegistry.putObject(this.itemAtomGrenade, new DispenserBehaviorAtomsGrenade());
+
        }
 
        private void apiProcessing(final FMLPostInitializationEvent event) {
                // API用の処理
-               for (int i = 0; i < apiBase.getAtomOresName().sizeKeysList(); i++)
-               {
-                       for (int j = 0; j < apiBase.getAtomOresName().sizeElementsList(apiBase.getAtomOresName().getKeyList(i)); j++)
-                       {
-                               this.nameAuxiliary.addName(new ItemStack(blockAtomOres[i / 16], 0, i - i / 16 * 16), apiBase.getAtomOresLanguage().get(apiBase.getAtomOresName().getKeyList(i), j), apiBase.getAtomOresName().get(apiBase.getAtomOresName().getKeyList(i), j));
-                               OreDictionary.registerOre("ore" + apiBase.getAtomOresName().getKeyList(i), new ItemStack(blockAtomOres[i / 16], 1, i - i / 16 * 16));
+               for (int i = 0; i < this.apiBase.getAtomOres().size(); i++) {
+                       OreDictionary.registerOre("ore" + this.apiBase.getAtomOresAtomName().get(i), new ItemStack(this.blockAtomOres[i / 16], 1, i % 16));
+                       OreDictionary.registerOre("ingot" + this.apiBase.getAtomOresAtomName().get(i), new ItemStack(this.itemAtomIngots, 1, i ));
+                       GameRegistry.registerWorldGenerator(this.apiBase.getAtomOres().get(i));
+               }
+
+               Iterator<String> langoresItr = this.apiBase.getAtomOresName().iterator();
+               while (langoresItr.hasNext()){
+                       String lang = langoresItr.next();
+                       ArrayList<String> oresName = this.apiBase.getAtomOresName().get(lang);
+                       ArrayList<String> ingotsName = this.apiBase.getAtomIngotsName().get(lang);
+                       for (int i = 0; i < oresName.size(); i++) {
+                               ChemiCraftCore.logger.write("AtomOresAddName:" + "IngotName-" + ingotsName.get(i) + "OreName-" + oresName.get(i) + "ID-" + (i / 16)+ "/Damage-" + (i - i / 16 * 16) + "/Lang-" + lang,
+                                               EnumLoggingType.INFO);
+
+                               LanguageRegistry.instance().addNameForObject(
+                                               new ItemStack(this.atomOresID[i / 16], 1, i % 16),
+                                               lang,
+                                               oresName.get(i)
+                                               );
+
+                               /*
+                               LanguageRegistry.instance().addNameForObject(
+                                               new ItemStack(this.atomIngotsID, 1, i),
+                                               lang,
+                                               ingotsName.get(i)
+                                               );
+                                               */
+
                        }
                }