diff options
author | Alexdoru <57050655+Alexdoru@users.noreply.github.com> | 2024-09-03 22:36:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-03 20:36:50 +0000 |
commit | 4f33caf2586097daa253d76ce996f9fca4e10cc3 (patch) | |
tree | ea3a8ee2baf4c5aebdd1700b940f2373e475f626 /src/main/java/galacticgreg | |
parent | a881bdb42c695433174342125696213e582e78fc (diff) | |
download | GT5-Unofficial-4f33caf2586097daa253d76ce996f9fca4e10cc3.tar.gz GT5-Unofficial-4f33caf2586097daa253d76ce996f9fca4e10cc3.tar.bz2 GT5-Unofficial-4f33caf2586097daa253d76ce996f9fca4e10cc3.zip |
replace Loader.isModLoaded() calls with Mods enum cached call (#3031)
* replace Loader.isModLoaded() calls with Mods enum cached call
* prevent Loader.isModLoaded calls
* Revert "prevent Loader.isModLoaded calls"
This reverts commit 9df23fd8db9dfe70a16be10e1d8688ee629da054.
* no Loader.isModLoaded calls in gagreg
---------
Co-authored-by: boubou19 <miisterunknown@gmail.com>
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main/java/galacticgreg')
6 files changed, 71 insertions, 125 deletions
diff --git a/src/main/java/galacticgreg/WorldgenOreLayerSpace.java b/src/main/java/galacticgreg/WorldgenOreLayerSpace.java index c28eb7a392..3cd0a8baa4 100644 --- a/src/main/java/galacticgreg/WorldgenOreLayerSpace.java +++ b/src/main/java/galacticgreg/WorldgenOreLayerSpace.java @@ -54,7 +54,7 @@ public class WorldgenOreLayerSpace extends GTWorldgen { allowedDims = new HashMap<>(); for (ModContainer mc : GalacticGregRegistry.getModContainers()) { - if (!mc.getEnabled()) continue; + if (!mc.isModLoaded()) continue; for (ModDimensionDef mdd : mc.getDimensionList()) { String tDimIdentifier = mdd.getDimIdentifier(); diff --git a/src/main/java/galacticgreg/WorldgenOreSmallSpace.java b/src/main/java/galacticgreg/WorldgenOreSmallSpace.java index 18dd338ec3..95b40c69eb 100644 --- a/src/main/java/galacticgreg/WorldgenOreSmallSpace.java +++ b/src/main/java/galacticgreg/WorldgenOreSmallSpace.java @@ -34,7 +34,7 @@ public class WorldgenOreSmallSpace extends GTWorldgen { allowedDims = new HashMap<>(); for (ModContainer mc : GalacticGregRegistry.getModContainers()) { - if (!mc.getEnabled()) continue; + if (!mc.isModLoaded()) continue; for (ModDimensionDef mdd : mc.getDimensionList()) { String tDimIdentifier = mdd.getDimIdentifier(); diff --git a/src/main/java/galacticgreg/api/ModContainer.java b/src/main/java/galacticgreg/api/ModContainer.java index 37721cd38c..fa5a33f4c6 100644 --- a/src/main/java/galacticgreg/api/ModContainer.java +++ b/src/main/java/galacticgreg/api/ModContainer.java @@ -3,6 +3,8 @@ package galacticgreg.api; import java.util.ArrayList; import java.util.List; +import gregtech.api.enums.Mods; + /** * Defines a Mod where this Generator shall be active. Note: This will only work (obviously) for Dimensions where * either: - Gregtech has a hook in the OreGen or - For mods which are addons to GalactiCraft @@ -10,47 +12,30 @@ import java.util.List; */ public class ModContainer { - private String _mModName; - private List<ModDimensionDef> _mDimensionLookup; - private boolean _mEnabled = false; - - /** - * Internal function - * - * @return The state if the Registry could find the mod or not - */ - public boolean getEnabled() { - return _mEnabled; - } - - /** - * Internal function - * - * Never set this to true. This is an internal marker which is set by the registry if the mod could be found or not - * - * @param pEnabled - */ - public void setEnabled(boolean pEnabled) { - _mEnabled = pEnabled; - } + private final List<ModDimensionDef> _mDimensionLookup; + private final Mods mod; /** * Define a new Mod where GT OreGen shall be enabled * - * @param pModName The modID. Make sure to use the proper mod-id, or it won't load correctly + * @param mod The Mods enum value. */ - public ModContainer(String pModName) { - _mModName = pModName; + public ModContainer(Mods mod) { + this.mod = mod; _mDimensionLookup = new ArrayList<>(); } + public boolean isModLoaded() { + return this.mod.isModLoaded(); + } + /** * Internal function * * @return The mods name */ public String getModName() { - return _mModName; + return mod.ID; } /** @@ -78,7 +63,7 @@ public class ModContainer { } // Set the parent modName of this dimension. This will finalize it - pDimDef.setParentModName(_mModName); + pDimDef.setParentModName(mod.ID); _mDimensionLookup.add(pDimDef); return true; } diff --git a/src/main/java/galacticgreg/api/enums/ModContainers.java b/src/main/java/galacticgreg/api/enums/ModContainers.java index 7352e5a75c..ddac1e14d5 100644 --- a/src/main/java/galacticgreg/api/enums/ModContainers.java +++ b/src/main/java/galacticgreg/api/enums/ModContainers.java @@ -5,11 +5,11 @@ import gregtech.api.enums.Mods; public enum ModContainers { - GalactiCraftCore(new ModContainer(Mods.GalacticraftCore.ID)), - GalacticraftMars(new ModContainer(Mods.GalacticraftMars.ID)), - GalaxySpace(new ModContainer(Mods.GalaxySpace.ID)), - AmunRa(new ModContainer("GalacticraftAmunRa")), - Vanilla(new ModContainer("Vanilla")); + GalactiCraftCore(new ModContainer(Mods.GalacticraftCore)), + GalacticraftMars(new ModContainer(Mods.GalacticraftMars)), + GalaxySpace(new ModContainer(Mods.GalaxySpace)), + AmunRa(new ModContainer(Mods.GalacticraftAmunRa)), + Vanilla(new ModContainer(Mods.Minecraft)); public final ModContainer modContainer; diff --git a/src/main/java/galacticgreg/dynconfig/DynamicDimensionConfig.java b/src/main/java/galacticgreg/dynconfig/DynamicDimensionConfig.java index 87dad97f35..33e1f6a750 100644 --- a/src/main/java/galacticgreg/dynconfig/DynamicDimensionConfig.java +++ b/src/main/java/galacticgreg/dynconfig/DynamicDimensionConfig.java @@ -40,7 +40,7 @@ public class DynamicDimensionConfig { public static boolean InitDynamicConfig() { try { for (ModContainer mc : GalacticGregRegistry.getModContainers()) { - if (!mc.getEnabled()) continue; + if (!mc.isModLoaded()) continue; for (ModDimensionDef mdd : mc.getDimensionList()) { DimensionType dt = mdd.getDimensionType(); diff --git a/src/main/java/galacticgreg/registry/GalacticGregRegistry.java b/src/main/java/galacticgreg/registry/GalacticGregRegistry.java index 9dc5d0fa04..ee12baeb17 100644 --- a/src/main/java/galacticgreg/registry/GalacticGregRegistry.java +++ b/src/main/java/galacticgreg/registry/GalacticGregRegistry.java @@ -1,14 +1,11 @@ package galacticgreg.registry; -import static galacticgreg.api.enums.ModContainers.Vanilla; - import java.util.Collection; import java.util.HashMap; import java.util.Map; import net.minecraft.world.chunk.IChunkProvider; -import cpw.mods.fml.common.Loader; import galacticgreg.GalacticGreg; import galacticgreg.api.Enums.DimensionType; import galacticgreg.api.ModContainer; @@ -22,54 +19,46 @@ import galacticgreg.generators.GenEllipsoid; */ public class GalacticGregRegistry { - private static final Map<String, ModContainer> _mModContainers = new HashMap<>(); - public static final String DIM_UNKNOWN = "GGREG_DIMENSION_UNKNOWN"; - private static boolean _mInitializationDone = false; + private static final Map<String, ModContainer> modContainers = new HashMap<>(); + private static boolean initializationDone = false; /** * Register new ModContainer in the registry. Call this after you've populated it with Dimensions and Blocks Must be * called from your own PreInit or Init event - * - * @param pModContainer - * @return */ - public static boolean registerModContainer(ModContainer pModContainer) { - if (_mInitializationDone) { + public static void registerModContainer(ModContainer modContainer) { + if (initializationDone) { GalacticGreg.Logger.warn("Initialization is already done, you can't add more ModContainers!"); - return false; + return; } - if (_mModContainers.containsKey(pModContainer.getModName())) { + if (modContainers.containsKey(modContainer.getModName())) { GalacticGreg.Logger - .warn("There is already a mod registered with that name: [%s]", pModContainer.getModName()); - return false; - } else { - GalacticGreg.Logger.info( - "Registered new mod to generate ores: [%s] Dimensions provided: [%d]", - pModContainer.getModName(), - pModContainer.getDimensionList() - .size()); - _mModContainers.put(pModContainer.getModName(), pModContainer); - return true; + .warn("There is already a mod registered with that name: [%s]", modContainer.getModName()); + return; } + + GalacticGreg.Logger.info( + "Registered new mod to generate ores: [%s] Dimensions provided: [%d]", + modContainer.getModName(), + modContainer.getDimensionList() + .size()); + modContainers.put(modContainer.getModName(), modContainer); } /** * Lookup the registered dimensions and try to find the DimensionDefinition that has the ChunkProvider that we have * here - * - * @param pChunkProvider - * @return */ - public static ModDimensionDef getDimensionTypeByChunkGenerator(IChunkProvider pChunkProvider) { + public static ModDimensionDef getDimensionTypeByChunkGenerator(IChunkProvider chunkProvider) { try { - if (!_mInitializationDone) return null; + if (!initializationDone) return null; - String tFQCPN = pChunkProvider.toString() + String tFQCPN = chunkProvider.toString() .split("@")[0]; ModDimensionDef tReturnMDD = null; - for (ModContainer mc : _mModContainers.values()) { + for (ModContainer mc : modContainers.values()) { for (ModDimensionDef mdd : mc.getDimensionList()) { if (mdd.getChunkProviderName() .equals(tFQCPN)) { @@ -88,20 +77,18 @@ public class GalacticGregRegistry { /** * Get all registered modcontainers. Can only be done after the initialization process is done - * - * @return */ public static Collection<ModContainer> getModContainers() { - if (!_mInitializationDone) return null; + if (!initializationDone) return null; - return _mModContainers.values(); + return modContainers.values(); } /** * Initializes the Registry. Never do this in your code, GalacticGreg will crash if you do so */ public static boolean InitRegistry() { - if (_mInitializationDone) // never run init twice! + if (initializationDone) // never run init twice! return false; InitModContainers(); @@ -114,70 +101,44 @@ public class GalacticGregRegistry { * Parse modcontainers and search for loaded mods. Enable found mods for generation */ private static void InitModContainers() { - for (ModContainer mc : _mModContainers.values()) { + for (ModContainer mc : modContainers.values()) { // todo: rename Vanilla mod container name from "Vanilla" to "minecraft" - if (!Loader.isModLoaded(mc.getModName()) && !mc.getModName() - .equals(Vanilla.modContainer.getModName())) { + if (!mc.isModLoaded()) { GalacticGreg.Logger.warn( "Ignoring ModRegistration for OreGen: [%s], because mod is not loaded. Did you misspell the name?", mc.getModName()); - mc.setEnabled(false); - } else { - GalacticGreg.Logger.info("Mod [%s] is now enabled for OreGen by GalacticGreg", mc.getModName()); - mc.setEnabled(true); - for (ModDimensionDef md : mc.getDimensionList()) { + continue; + } + + GalacticGreg.Logger.info("Mod [%s] is now enabled for OreGen by GalacticGreg", mc.getModName()); + + for (ModDimensionDef md : mc.getDimensionList()) { + GalacticGreg.Logger.info( + "ModID: [%s] DimName: [%s] ValidBlocks: [%d] Identifier: [%s] Generators: [%d]", + mc.getModName(), + md.getDimensionName(), + md.getReplaceableBlocks() + .size(), + md.getDimIdentifier(), + md.getSpaceObjectGenerators() + .size()); + + // Register default generator if dimension is asteroid and no generator was added + if (md.getDimensionType() == DimensionType.Asteroid) { + if (md.getSpaceObjectGenerators() + .isEmpty()) { + GalacticGreg.Logger.debug("No generators found, adding built-in ellipsoid generator"); + md.registerSpaceObjectGenerator(new GenEllipsoid()); + } GalacticGreg.Logger.info( - "ModID: [%s] DimName: [%s] ValidBlocks: [%d] Identifier: [%s] Generators: [%d]", - mc.getModName(), - md.getDimensionName(), - md.getReplaceableBlocks() - .size(), - md.getDimIdentifier(), + "Asteroid-Enabled dimension. Registered Generators: [%d]", md.getSpaceObjectGenerators() .size()); - - // Register default generator if dimension is asteroid and no generator was added - if (md.getDimensionType() == DimensionType.Asteroid) { - if (md.getSpaceObjectGenerators() - .size() == 0) { - GalacticGreg.Logger.debug("No generators found, adding build-in ellipsoid generator"); - md.registerSpaceObjectGenerator(new GenEllipsoid()); - } - GalacticGreg.Logger.info( - "Asteroid-Enabled dimension. Registered Generators: [%d]", - md.getSpaceObjectGenerators() - .size()); - } - - md.finalizeReplaceableBlocks(mc.getModName()); } - } - } - _mInitializationDone = true; - } - - /** - * Returns ModContainer for given DimensionDefinition - * - * @param pDimensionDefinition - * @return - */ - public static ModContainer getModContainerForDimension(ModDimensionDef pDimensionDefinition) { - if (!_mInitializationDone) return null; - try { - for (ModContainer mc : _mModContainers.values()) { - for (ModDimensionDef md : mc.getDimensionList()) { - if (pDimensionDefinition.getDimIdentifier() - .equals(md.getDimIdentifier())) { - return mc; - } - } + md.finalizeReplaceableBlocks(mc.getModName()); } - return null; - } catch (Exception e) { - e.printStackTrace(); - return null; } + initializationDone = true; } } |