aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/gregtech/api/enums/OrePrefixes.java15
-rw-r--r--src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java1
2 files changed, 15 insertions, 1 deletions
diff --git a/src/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java
index 418fe71681..27cf37a2de 100644
--- a/src/main/java/gregtech/api/enums/OrePrefixes.java
+++ b/src/main/java/gregtech/api/enums/OrePrefixes.java
@@ -15,6 +15,7 @@ import net.minecraft.item.ItemStack;
import com.google.common.collect.ImmutableList;
+import gregtech.api.GregTechAPI;
import gregtech.api.enums.TCAspects.TC_AspectStack;
import gregtech.api.interfaces.ICondition;
import gregtech.api.interfaces.IOreRecipeRegistrator;
@@ -1179,6 +1180,8 @@ public enum OrePrefixes {
} else if (name().startsWith("battery")) {
new TC_AspectStack(TCAspects.ELECTRUM, 1).addToAspectList(mAspects);
}
+
+ GregTechAPI.sGTCompleteLoad.add(this::onLoadComplete);
}
public static boolean isInstanceOf(String aName, OrePrefixes aPrefix) {
@@ -1297,12 +1300,20 @@ public enum OrePrefixes {
return mOreProcessing.add(aRegistrator);
}
+ // Hack to prevent duplicate registry of oredicted materials
+ HashSet<Materials> used = new HashSet<>();
+
public void processOre(Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) {
if (aMaterial == null) {
return;
}
+ if (aMaterial != Materials._NULL && !used.add(aMaterial)) {
+ GTLog.out.println("Duplicate material registry attempted by " + aModName + " for " + aOreDictName);
+ return;
+ }
+
if (aMaterial.contains(SubTag.NO_RECIPES)) {
return;
}
@@ -1325,6 +1336,10 @@ public enum OrePrefixes {
}
}
+ public void onLoadComplete() {
+ used = null;
+ }
+
public Object get(Object aMaterial) {
if (aMaterial instanceof Materials) return new ItemData(this, (Materials) aMaterial);
return name() + aMaterial;
diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java
index 05e6aaeeb3..beedad1d7a 100644
--- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java
+++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java
@@ -19,7 +19,6 @@ import static gregtech.api.util.GTRecipeBuilder.SECONDS;
import static gregtech.api.util.GTRecipeBuilder.TICKS;
import static gregtech.api.util.GTRecipeBuilder.WILDCARD;
import static gregtech.api.util.GTRecipeConstants.ADDITIVE_AMOUNT;
-import static gregtech.api.util.GTRecipeConstants.COMPRESSION_TIER;
import static gregtech.api.util.GTRecipeConstants.FUEL_TYPE;
import static gregtech.api.util.GTRecipeConstants.FUEL_VALUE;
import static gregtech.api.util.GTUtility.calculateRecipeEU;