OSDN Git Service

コミットしろやっていわれたので
[chemicraft/ChemiCraftNext.git] / common / pcc / chemicraft / base / ChemiCraftBase.java
index ba09c77..e6b9a4c 100644 (file)
@@ -1,5 +1,7 @@
 package pcc.chemicraft.base;
 
+import java.util.List;
+
 import net.minecraft.block.Block;
 import net.minecraft.creativetab.CreativeTabs;
 import net.minecraft.item.Item;
@@ -11,17 +13,23 @@ import pcc.chemicraft.ChemiCraft;
 import pcc.chemicraft.ChemiCraftConfiguration;
 import pcc.chemicraft.ChemiCraftRegister;
 import pcc.chemicraft.base.creativetab.CreativeTabAtomOres;
+import pcc.chemicraft.base.gen.WorldGenAtomsOre;
 import pcc.chemicraft.base.system.CommonProxy;
 import pcc.chemicraft.base.system.PacketHandler;
 import pcc.chemicraft.core.ChemiCraftAPI;
+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.Instance;
 import cpw.mods.fml.common.Mod.PostInit;
 import cpw.mods.fml.common.Mod.PreInit;
 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;
 
 @Mod(modid = "ChemiCraftBase", name = "ChemiCraftBase", version = "beta")
 @NetworkMod(clientSideRequired = true, serverSideRequired = true, versionBounds = "1.4.6", channels = "chemicraftbase", packetHandler = PacketHandler.class)
@@ -63,7 +71,7 @@ public class ChemiCraftBase extends ChemiCraft
        /**
         * the BlockID.
         */
-       public int[] atomOresID = new int[3];
+       public int[] atomOresID = new int[4];
 
        /**
         * Variables of Block type.
@@ -122,11 +130,28 @@ public class ChemiCraftBase extends ChemiCraft
        {
                while (true) {
                        if (proxy != null && instance != null) {
-                               this.settingProcessing(event);
-                               this.apiProcessing(event);
+                               this.settingProcessing((FMLPostInitializationEvent) event);
+                               this.apiProcessing((FMLPostInitializationEvent) 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((FMLPostInitializationEvent) event);
+                                               break;
+                                       }
+                               }
+                       }
+               };
+               loadCheckThread.start();
+
        }
 
        /**
@@ -139,11 +164,11 @@ public class ChemiCraftBase extends ChemiCraft
                Configuration cfg = new Configuration(event.getSuggestedConfigurationFile());
                cfg.load();
 
-               Property baseBlockID = cfg.get("BlockID", "Base of Block ID", 2900);
+               Property baseBlockID = cfg.get("BlockID", "Base of Block ID", 2500);
                Property baseItemID = cfg.get("ItemID", "Base of Item ID", 25500);
 
                ChemiCraftConfiguration ccfgBlock = new ChemiCraftConfiguration(baseBlockID.getInt());
-               ChemiCraftConfiguration ccfgItem = new ChemiCraftConfiguration(baseBlockID.getInt());
+               ChemiCraftConfiguration ccfgItem = new ChemiCraftConfiguration(baseItemID.getInt());
 
                for (int i = 0; i < atomOresID.length; i++) {
                        this.atomOresID[i] = ccfgBlock.additionID();
@@ -158,7 +183,6 @@ public class ChemiCraftBase extends ChemiCraft
                cfg.save();
        }
 
-       @Override
        protected void settingProcessing(FMLPostInitializationEvent event)
        {
                this.registerCompounds.start();
@@ -178,6 +202,7 @@ public class ChemiCraftBase extends ChemiCraft
                        {
                                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));
+                               GameRegistry.registerWorldGenerator(apiBase.getAtomOres().get(i));
                        }
                }