OSDN Git Service

Merge branch 'master' of https://scm.sourceforge.jp/gitroot/chemicraft/chemicraft
[chemicraft/chemicraft.git] / common / pcc / chemicraft / base / ChemiCraftBase.java
index aa483af..bce1fc9 100644 (file)
@@ -1,5 +1,7 @@
 package pcc.chemicraft.base;
 
+import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 import net.minecraft.block.Block;
@@ -8,31 +10,30 @@ import net.minecraft.item.Item;
 import net.minecraft.item.ItemStack;
 import net.minecraftforge.common.Configuration;
 import net.minecraftforge.common.Property;
-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.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.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,7 +50,6 @@ public class ChemiCraftBase extends ChemiCraft
        /**
         * API Instance.
         */
-       public ChemiCraftAPI api = ChemiCraftAPI.instance();
        public ChemiCraftBaseAPI apiBase = ChemiCraftBaseAPI.instance();
 
        /**
@@ -65,6 +65,7 @@ public class ChemiCraftBase extends ChemiCraft
        public int dustID;
        public int radiationGunID;
        public int radiationBalletID;
+       public int oreSerarcherID;
 
        /**
         * the BlockID.
@@ -84,6 +85,7 @@ public class ChemiCraftBase extends ChemiCraft
        public Item itemDust;
        public Item itemRadiationGun;
        public Item itemRadiationBallet;
+       public Item itemOreSearcher;
 
        /**
         * the Register Instances.
@@ -96,8 +98,12 @@ public class ChemiCraftBase extends ChemiCraft
        public ChemiCraftRegister registerRecipe;
        public ChemiCraftRegister registerEntitys;
 
-       public ChemiCraftBase()
-       {
+       /**
+        * the Textures
+        */
+       public static final String ORE = ChemiCraft.TEXTURE + "AtomsOre_";
+
+       public ChemiCraftBase() {
                this.registerCompounds = new ChemiCraftRegisterCompounds(this);
                this.registerCompoundsHandler = new ChemiCraftRegisterCompoundsHandler(this);
                this.registerItem = new ChemiCraftRegisterItem(this);
@@ -124,12 +130,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 +145,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 +158,7 @@ public class ChemiCraftBase extends ChemiCraft
        }
 
        /**
-        * PreInit:
+        * PreInit:<br>
         * Configをロードします。
         * @param event アノテーション呼び出しにより呼び出す必要なし
         */
@@ -177,12 +182,12 @@ public class ChemiCraftBase extends ChemiCraft
                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();
@@ -194,15 +199,20 @@ public class ChemiCraftBase extends ChemiCraft
 
        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));
+               Iterator<String> langoresItr = this.apiBase.getAtomOresName().iterator();
+               while (langoresItr.hasNext()){
+                       String lang = langoresItr.next();
+                       ArrayList<String> names = this.apiBase.getAtomOresName().get(lang);
+                       for (int i = 0; i < names.size(); i++) {
+                               ChemiCraftCore.logger.write("AtomOresAddName:" + "Name-" + names.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,
+                                               names.get(i));
                        }
                }
-
        }
 
 }