package pcc.chemicraft.base;
+import java.util.ArrayList;
+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 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.gen.WorldGenAtomsOre;
+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;
import cpw.mods.fml.common.Mod;
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 = "beta")
-@NetworkMod(clientSideRequired = true, serverSideRequired = true, versionBounds = "1.4.6", channels = "chemicraftbase", packetHandler = PacketHandler.class)
-public class ChemiCraftBase extends ChemiCraft
-{
+@Mod(modid = "ChemiCraft|Base", 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.
*/
- @Instance("ChemiCraftBase")
+ @Instance("ChemiCraft|Base")
public static ChemiCraftBase instance;
/**
/**
* 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 raditionGunDataChipID;
/**
* the BlockID.
/**
* 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.
public ChemiCraftRegister registerRecipe;
public ChemiCraftRegister registerEntitys;
- public ChemiCraftBase()
- {
+ /**
+ * the Textures.
+ */
+ 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);
this.registerCompoundsHandler = new ChemiCraftRegisterCompoundsHandler(this);
this.registerItem = new ChemiCraftRegisterItem(this);
}
@Override
- public void run()
- {
+ public void run() {
while (true) {
if (proxy != null && instance != null) {
this.settingProcessing((FMLPostInitializationEvent) event);
- this.apiProcessing((FMLPostInitializationEvent) event);
break;
}
}
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;
}
}
/**
- * PreInit:
+ * PreInit:<br>
* Configをロードします。
* @param event アノテーション呼び出しにより呼び出す必要なし
*/
this.atomOresID[i] = ccfgBlock.additionID();
}
+ this.atomIngotsID = ccfgItem.additionID();
this.atomGrenadeID = ccfgItem.additionID();
this.dustID = ccfgItem.additionID();
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();
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 < 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));
- GameRegistry.registerWorldGenerator(apiBase.getAtomOres().get(i));
+ 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> 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.atomOresID[i / 16], 1, i % 16),
+ lang,
+ oresName.get(i)
+ );
+
+ /*
+ LanguageRegistry.instance().addNameForObject(
+ new ItemStack(this.atomIngotsID, 1, i),
+ lang,
+ ingotsName.get(i)
+ );
+ */
+
}
}