diff options
Diffstat (limited to 'src/Java/gtPlusPlus/GTplusplus.java')
-rw-r--r-- | src/Java/gtPlusPlus/GTplusplus.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java index a664555cf2..92c7a9a049 100644 --- a/src/Java/gtPlusPlus/GTplusplus.java +++ b/src/Java/gtPlusPlus/GTplusplus.java @@ -57,6 +57,29 @@ import net.minecraftforge.oredict.OreDictionary; @Mod(modid = CORE.MODID, name = CORE.name, version = CORE.VERSION, dependencies = "required-after:Forge; after:TConstruct; after:PlayerAPI; after:dreamcraft; after:IC2; after:ihl; after:psychedelicraft; after:gregtech; after:Forestry; after:MagicBees; after:CoFHCore; after:Growthcraft; after:Railcraft; after:CompactWindmills; after:ForbiddenMagic; after:MorePlanet; after:PneumaticCraft; after:ExtraUtilities; after:Thaumcraft; after:rftools; after:simplyjetpacks; after:BigReactors; after:EnderIO; after:tectech; after:GTRedtech; after:beyondrealitycore; after:OpenBlocks; after:IC2NuclearControl; after:TGregworks; after:StevesCarts;") public class GTplusplus implements ActionListener { + public static enum INIT_PHASE { + SUPER(null), + PRE_INIT(SUPER), + INIT(PRE_INIT), + POST_INIT(INIT); + protected boolean mIsPhaseActive = false; + private final INIT_PHASE mPrev; + + private INIT_PHASE(INIT_PHASE aPreviousPhase) { + mPrev = aPreviousPhase; + } + + public synchronized final boolean isPhaseActive() { + return mIsPhaseActive; + } + public synchronized final void setPhaseActive(boolean aIsPhaseActive) { + if (mPrev != null && mPrev.isPhaseActive()) { + mPrev.setPhaseActive(false); + } + mIsPhaseActive = aIsPhaseActive; + } + } + //Mod Instance @Mod.Instance(CORE.MODID) public static GTplusplus instance; @@ -87,12 +110,14 @@ public class GTplusplus implements ActionListener { public GTplusplus() { super(); + INIT_PHASE.SUPER.setPhaseActive(true); mChunkLoading = new ChunkLoading(); } // Pre-Init @Mod.EventHandler public void preInit(final FMLPreInitializationEvent event) { + INIT_PHASE.PRE_INIT.setPhaseActive(true); Logger.INFO("Loading " + CORE.name + " "+CORE.VERSION+" on Gregtech "+Utils.getGregtechVersionAsString()); //Load all class objects within the plugin package. Core_Manager.veryEarlyInit(); @@ -133,6 +158,7 @@ public class GTplusplus implements ActionListener { // Init @Mod.EventHandler public void init(final FMLInitializationEvent event) { + INIT_PHASE.INIT.setPhaseActive(true); mChunkLoading.init(event); proxy.init(event); proxy.registerNetworkStuff(); @@ -154,6 +180,7 @@ public class GTplusplus implements ActionListener { // Post-Init @Mod.EventHandler public void postInit(final FMLPostInitializationEvent event) { + INIT_PHASE.POST_INIT.setPhaseActive(true); mChunkLoading.postInit(event); proxy.postInit(event); BookHandler.runLater(); |