OSDN Git Service

修正・変更
[chemicraft/chemicraft.git] / common / pcc / chemicraft / base / ChemiCraftBase.java
index b4275c2..7359b95 100644 (file)
@@ -5,19 +5,21 @@ 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;
 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.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.LoaderState.ModState;
@@ -30,10 +32,11 @@ import cpw.mods.fml.common.SidedProxy;
 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 = "beta1")
-@NetworkMod(clientSideRequired = true, serverSideRequired = true, versionBounds = "1.4.7", channels = "chemicraftbase", packetHandler = PacketHandler.class)
+@NetworkMod(clientSideRequired = true, serverSideRequired = true, versionBounds = "1.5", channels = "chemicraftbase", packetHandler = PacketHandler.class)
 public class ChemiCraftBase extends ChemiCraft {
 
        /**
@@ -51,23 +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 oreSerarcherID;
+       public int raditionGunDataChipID;
 
        /**
         * the BlockID.
@@ -82,12 +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.
@@ -101,9 +107,10 @@ public class ChemiCraftBase extends ChemiCraft {
        public ChemiCraftRegister registerEntitys;
 
        /**
-        * the Textures
+        * the Textures.
         */
-       public static final String ORE = ChemiCraft.TEXTURE + "AtomsOre_";
+       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);
@@ -136,7 +143,6 @@ public class ChemiCraftBase extends ChemiCraft {
                while (true) {
                        if (proxy != null && instance != null) {
                                this.settingProcessing((FMLPostInitializationEvent) event);
-                               this.apiProcessing((FMLPostInitializationEvent) event);
                                break;
                        }
                }
@@ -180,6 +186,7 @@ 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();
@@ -198,24 +205,45 @@ 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 < 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> names = this.apiBase.getAtomOresName().get(lang);
-                       for (int i = 0; i < names.size(); i++) {
-                               ChemiCraftCore.logger.write("AtomOresAddName:" + "Name-" + names.get(i) + "/Damage-" + (i - i / 16 * 16) + "/Lang-" + lang,
+                       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.blockAtomOres[i / 16], 1, i - i / 16 * 16),
+                                               new ItemStack(this.atomOresID[i / 16], 1, i % 16),
                                                lang,
-                                               names.get(i));
+                                               oresName.get(i)
+                                               );
+
+                               /*
+                               LanguageRegistry.instance().addNameForObject(
+                                               new ItemStack(this.atomIngotsID, 1, i),
+                                               lang,
+                                               ingotsName.get(i)
+                                               );
+                                               */
+
                        }
                }
+
        }
 
 }