OSDN Git Service

名前つけできるようにした
authormozipi <mozipi_2@yahoo.co.jp>
Fri, 29 Mar 2013 05:34:38 +0000 (14:34 +0900)
committermozipi <mozipi_2@yahoo.co.jp>
Fri, 29 Mar 2013 05:34:38 +0000 (14:34 +0900)
common/pcc/chemicraft/core/ChemiCraftCore.java
common/pcc/chemicraft/core/item/ItemCompounds.java
common/pcc/chemicraft/util/ListHash.java

index 1b9f288..eaddef1 100644 (file)
@@ -1,5 +1,9 @@
 package pcc.chemicraft.core;
 
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
 import net.minecraft.block.Block;
 import net.minecraft.creativetab.CreativeTabs;
 import net.minecraft.item.Item;
@@ -16,17 +20,21 @@ import pcc.chemicraft.core.debug.CommandGenDebugRoom;
 import pcc.chemicraft.core.debug.CommandSetTile;
 import pcc.chemicraft.core.system.CommonProxy;
 import pcc.chemicraft.core.system.PacketHandler;
+import cpw.mods.fml.common.Loader;
+import cpw.mods.fml.common.LoaderState.ModState;
 import cpw.mods.fml.common.Mod;
 import cpw.mods.fml.common.Mod.Init;
 import cpw.mods.fml.common.Mod.Instance;
 import cpw.mods.fml.common.Mod.PreInit;
 import cpw.mods.fml.common.Mod.ServerStarting;
+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.FMLPreInitializationEvent;
 import cpw.mods.fml.common.event.FMLServerStartingEvent;
 import cpw.mods.fml.common.network.NetworkMod;
 import cpw.mods.fml.common.network.NetworkRegistry;
+import cpw.mods.fml.common.registry.LanguageRegistry;
 
 /**
  * ChemiCraft本体
@@ -220,11 +228,26 @@ public class ChemiCraftCore extends ChemiCraft{
                while (true) {
                        if (proxy != null && instance != null) {
                                this.settingProcessing((FMLInitializationEvent) event);
-                               this.apiProcessing((FMLInitializationEvent) event);
                                this.debug((FMLInitializationEvent) event);
                                break;
                        }
                }
+
+               Thread loadCheckThread = new Thread() {
+                       @Override
+                       public void run() {
+                               while (true) {
+                                       List<ModContainer> mod = Loader.instance().getModList();
+                                       ModContainer finalMod = mod.get(mod.size()-1);
+                                       ModState finalModState = Loader.instance().getModState(finalMod);
+                                       if (finalModState == ModState.AVAILABLE) {
+                                               apiProcessing((FMLInitializationEvent) event);
+                                       }
+                               }
+                       }
+               };
+               loadCheckThread.start();
+
        }
 
 
@@ -241,7 +264,7 @@ public class ChemiCraftCore extends ChemiCraft{
 
                //電池を追加します
                this.api.addChemicalCell(itemChemicalCells, "ChemicalCell", 1000);
-               this.api.addChemicalCellLanguage("ChemicalCell", "ja_JP", "化学電池");
+               this.api.addChemicalCellLanguage("ja_JP", "化学電池");
 
                this.api.addPyrolysisDecompositionFuel(new ItemStack(Item.coal), 2000*8);
        }
@@ -249,15 +272,17 @@ public class ChemiCraftCore extends ChemiCraft{
 
 
        private void apiProcessing(final FMLInitializationEvent event) {
-
-               for (int i = 0; i < api.getChemicalCellsName().sizeKeysList(); i++)
-               {
-                       for (int j = 0; j < api.getChemicalCellsName().sizeElementsList(api.getChemicalCellsName().getKeyList(i)); j++)
-                       {
-                               this.nameAuxiliary.addName(new ItemStack(itemChemicalCells, 0, i), api.getChemicalCellsLanguage().get(api.getChemicalCellsName().getKeyList(i), j), api.getChemicalCellsName().get(api.getChemicalCellsName().getKeyList(i), j));
+               Iterator<String> langItr = this.api.getCompoundsName().keySet().iterator();
+               while (langItr.hasNext()) {
+                       String lang = langItr.next();
+                       ArrayList<String> names = this.api.getCompoundsName().get(lang);
+                       for (int i = 0; i < names.size(); i++) {
+                               LanguageRegistry.instance().addNameForObject(
+                                               new ItemStack(this.itemCompounds, 1, i),
+                                               lang,
+                                               names.get(i));
                        }
                }
-
        }
 
 
index 98e7c73..69f6210 100644 (file)
@@ -87,7 +87,7 @@ public class ItemCompounds extends Item {
        @Override
        public String getItemNameIS(ItemStack par1ItemStack){
                try {
-                       return super.getItemName() + "." + ChemiCraftAPI.instance().getCompoundsName().getKeyList(par1ItemStack.getItemDamage());
+                       return super.getItemName() + "." + ChemiCraftAPI.instance().getCompoundsName().get("en_US", par1ItemStack.getItemDamage());
                } catch (ArrayIndexOutOfBoundsException e) {
                        par1ItemStack.stackSize = 0;
                }
index 7ee1298..0213a60 100644 (file)
@@ -13,7 +13,7 @@ public class ListHash<K, E>
 {
        /**
         * @author Ponkotate version:1.0.0 dev
-        * 
+        *
         *         Create ArrayList in HashMap.
         */
 
@@ -79,6 +79,10 @@ public class ListHash<K, E>
                return this.elementsHash.get(par1Key).get(par2Index);
        }
 
+       public ArrayList<E> get(K par1Key) {
+               return this.elementsHash.get(par1Key);
+       }
+
        public int indexOf(K par1Key, E par2Element)
        {
                return this.elementsHash.get(par1Key).indexOf(par2Element);