diff options
-rw-r--r-- | src/main/java/gregtech/api/enums/OrePrefixes.java | 15 | ||||
-rw-r--r-- | src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java | 1 |
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; |