aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/galacticgreg
diff options
context:
space:
mode:
authorAlexdoru <57050655+Alexdoru@users.noreply.github.com>2024-09-03 22:36:50 +0200
committerGitHub <noreply@github.com>2024-09-03 20:36:50 +0000
commit4f33caf2586097daa253d76ce996f9fca4e10cc3 (patch)
treeea3a8ee2baf4c5aebdd1700b940f2373e475f626 /src/main/java/galacticgreg
parenta881bdb42c695433174342125696213e582e78fc (diff)
downloadGT5-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')
-rw-r--r--src/main/java/galacticgreg/WorldgenOreLayerSpace.java2
-rw-r--r--src/main/java/galacticgreg/WorldgenOreSmallSpace.java2
-rw-r--r--src/main/java/galacticgreg/api/ModContainer.java41
-rw-r--r--src/main/java/galacticgreg/api/enums/ModContainers.java10
-rw-r--r--src/main/java/galacticgreg/dynconfig/DynamicDimensionConfig.java2
-rw-r--r--src/main/java/galacticgreg/registry/GalacticGregRegistry.java139
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;
}
}