1 package pcc.chemicraft.base;
3 import net.minecraft.block.Block;
4 import net.minecraft.creativetab.CreativeTabs;
5 import net.minecraft.item.Item;
6 import net.minecraft.item.ItemStack;
7 import net.minecraftforge.common.Configuration;
8 import net.minecraftforge.common.Property;
9 import net.minecraftforge.oredict.OreDictionary;
10 import pcc.chemicraft.ChemiCraft;
11 import pcc.chemicraft.ChemiCraftConfiguration;
12 import pcc.chemicraft.ChemiCraftRegister;
13 import pcc.chemicraft.base.creativetab.CreativeTabAtomOres;
14 import pcc.chemicraft.base.system.CommonProxy;
15 import pcc.chemicraft.base.system.PacketHandler;
16 import pcc.chemicraft.core.ChemiCraftAPI;
17 import cpw.mods.fml.common.Mod;
18 import cpw.mods.fml.common.Mod.Instance;
19 import cpw.mods.fml.common.Mod.PostInit;
20 import cpw.mods.fml.common.Mod.PreInit;
21 import cpw.mods.fml.common.SidedProxy;
22 import cpw.mods.fml.common.event.FMLPostInitializationEvent;
23 import cpw.mods.fml.common.event.FMLPreInitializationEvent;
24 import cpw.mods.fml.common.network.NetworkMod;
26 @Mod(modid = "ChemiCraftBase", name = "ChemiCraftBase", version = "beta")
27 @NetworkMod(clientSideRequired = true, serverSideRequired = true, versionBounds = "1.4.6", channels = "chemicraftbase", packetHandler = PacketHandler.class)
28 public class ChemiCraftBase extends ChemiCraft
32 * this is ChemiCraft instance.
34 @Instance("ChemiCraftBase")
35 public static ChemiCraftBase instance;
38 * proxy of ChemiCraft.
40 @SidedProxy(clientSide = "pcc.chemicraft.base.client.ClientProxy", serverSide = "pcc.chemicraft.base.system.CommonProxy")
41 public static CommonProxy proxy;
46 public ChemiCraftAPI api = ChemiCraftAPI.instance();
47 public ChemiCraftBaseAPI apiBase = ChemiCraftBaseAPI.instance();
50 * CreativeTab of ChemiCraft.
52 public static final CreativeTabs creativeTabAtomsOre = new CreativeTabAtomOres("AtomsOre");
57 public int atomGrenadeID;
58 public int blackSmokeID;
60 public int radiationGunID;
61 public int radiationBalletID;
66 public int[] atomOresID = new int[3];
69 * Variables of Block type.
71 public Block[] blockAtomOres = new Block[atomOresID.length];
74 * Variables of Item type.
76 public Item itemAtomGrenade;
77 public Item itemBlackSmoke;
79 public Item itemRadiationGun;
80 public Item itemRadiationBallet;
83 * the Register Instances.
85 public ChemiCraftRegister registerCompounds;
86 public ChemiCraftRegister registerCompoundsHandler;
87 public ChemiCraftRegister registerItem;
88 public ChemiCraftRegister registerChemicalRecipe;
89 public ChemiCraftRegister registerBlock;
90 public ChemiCraftRegister registerRecipe;
91 public ChemiCraftRegister registerEntitys;
93 public ChemiCraftBase()
95 this.registerCompounds = new ChemiCraftRegisterCompounds(this);
96 this.registerCompoundsHandler = new ChemiCraftRegisterCompoundsHandler(this);
97 this.registerItem = new ChemiCraftRegisterItem(this);
98 this.registerChemicalRecipe = new ChemiCraftRegisterChemicalRecipe(this);
99 this.registerBlock = new ChemiCraftRegisterBlock(this);
100 this.registerRecipe = new ChemiCraftRegisterBaseRecipe(this);
101 this.registerEntitys = new ChemiCraftRegisterEntitys(this);
105 public void chemiPostLoadMethod(final FMLPostInitializationEvent event) {
106 this.thread = new Thread(this);
112 } catch (InterruptedException e) {
116 proxy.registerRenderInformation();
124 if (proxy != null && instance != null) {
125 this.settingProcessing(event);
126 this.apiProcessing(event);
135 * @param event アノテーション呼び出しにより呼び出す必要なし
138 public void chemiPreLoadMethod(final FMLPreInitializationEvent event) {
139 Configuration cfg = new Configuration(event.getSuggestedConfigurationFile());
142 Property baseBlockID = cfg.get("BlockID", "Base of Block ID", 2900);
143 Property baseItemID = cfg.get("ItemID", "Base of Item ID", 25500);
145 ChemiCraftConfiguration ccfgBlock = new ChemiCraftConfiguration(baseBlockID.getInt());
146 ChemiCraftConfiguration ccfgItem = new ChemiCraftConfiguration(baseBlockID.getInt());
148 for (int i = 0; i < atomOresID.length; i++) {
149 this.atomOresID[i] = ccfgBlock.additionID();
152 this.atomGrenadeID = ccfgItem.additionID();
153 this.dustID = ccfgItem.additionID();
154 this.radiationGunID = ccfgItem.additionID();
155 this.radiationBalletID = ccfgItem.additionID();
156 this.blackSmokeID = ccfgItem.additionID();
162 protected void settingProcessing(FMLPostInitializationEvent event)
164 this.registerCompounds.start();
165 this.registerCompoundsHandler.start();
166 this.registerItem.start();
167 this.registerBlock.start();
168 this.registerChemicalRecipe.start();
169 this.registerRecipe.start();
170 this.registerEntitys.start();
173 private void apiProcessing(final FMLPostInitializationEvent event) {
175 for (int i = 0; i < apiBase.getAtomOresName().sizeKeysList(); i++)
177 for (int j = 0; j < apiBase.getAtomOresName().sizeElementsList(apiBase.getAtomOresName().getKeyList(i)); j++)
179 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));
180 OreDictionary.registerOre("ore" + apiBase.getAtomOresName().getKeyList(i), new ItemStack(blockAtomOres[i / 16], 1, i - i / 16 * 16));