package chbachman.armour.register; import chbachman.api.registry.UpgradeRegistry; import chbachman.api.upgrade.IUpgrade; import chbachman.api.util.Array; import cpw.mods.fml.common.Loader; public class ItemRegister { public static final ItemRegister INSTANCE = new ItemRegister(); public final Array<Module> list; public Vanilla base; public ItemRegister() { list = new Array<Module>(); register(Baubles.class, "Baubles"); register(Thaumcraft.class, "Thaumcraft"); register(Enviromine.class, "enviromine"); register(MineTweaker.class, "MineTweaker3"); register(BloodMagic.class, "AWWayofTime"); register(Botania.class, "Botania"); register(IndustrialCraft2.class, "IC2"); } /** * Call to register a Module or Vanilla-Replacement, pass in the modid to be * loaded on. * * @param clazz * @param modid */ public void register(Class<? extends Module> clazz, String modid) { if (!Loader.isModLoaded(modid)) { return; } Module m = null; try { m = clazz.newInstance(); } catch (Exception e) { return; } list.add(m); } public void register(Class<? extends Module> clazz, String displayName, String[] modid) { for (String name : modid) { if (!Loader.isModLoaded(name)) { return; } } Module m = null; try { m = clazz.newInstance(); } catch (Exception e) { return; } list.add(m); } /** * Called during preInit; */ public void preInit() { this.base = new Vanilla(); base.preInit(); base.registerUpgrades(); for (Module module : list) { module.preInit(); } for (Module module : list) { module.registerUpgrades(); } } public void init() { base.init(); for (Module module : list) { module.init(); } for (IUpgrade upgrade : UpgradeRegistry.getUpgradeList()) { upgrade.registerConfigOptions(); } } public void postInit() { base.postInit(); base.registerUpgradeRecipes(); for (Module module : list) { module.postInit(); } for (Module module : list) { module.registerUpgradeRecipes(); } } }