diff --git a/src/main/java/WayofTime/bloodmagic/ConfigHandler.java b/src/main/java/WayofTime/bloodmagic/ConfigHandler.java index b3825032..0c425027 100644 --- a/src/main/java/WayofTime/bloodmagic/ConfigHandler.java +++ b/src/main/java/WayofTime/bloodmagic/ConfigHandler.java @@ -139,6 +139,7 @@ public class ConfigHandler // Compat public static int wailaAltarDisplayMode; public static boolean thaumcraftGogglesUpgrade; + public static boolean ignoreCompressionSpamAddedByCompression; public static void init(File file) { @@ -285,6 +286,7 @@ public class ConfigHandler config.addCustomCategoryComment(category, "Compatibility settings"); wailaAltarDisplayMode = config.getInt("wailaAltarDisplayMode", category + ".waila", 1, 0, 2, "The mode for the Waila display on Blood Altars.\n0 - Always display information\n1 - Only display when Divination/Seer sigil is in hand.\n2 - Only display when Divination/Seer sigil is in inventory"); thaumcraftGogglesUpgrade = config.getBoolean("thaumcraftGogglesUpgrade", category + ".thaumcraft", true, "Allows the Living Helmet to be upgraded with Goggles of Revealing in an Anvil."); + ignoreCompressionSpamAddedByCompression = config.getBoolean("ignoreCompressionSpamAddedByCompression", category + ".compression", true, "Compression decided to add a storage recipe for every item and block in the game. This will make the Sigil of Compression ignore those recipes so your game will actually load in a decent amount of time."); config.save(); } diff --git a/src/main/java/WayofTime/bloodmagic/compat/compression/CompatibilityCompression.java b/src/main/java/WayofTime/bloodmagic/compat/compression/CompatibilityCompression.java new file mode 100644 index 00000000..fbd143a8 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/compat/compression/CompatibilityCompression.java @@ -0,0 +1,34 @@ +package WayofTime.bloodmagic.compat.compression; + +import WayofTime.bloodmagic.BloodMagic; +import WayofTime.bloodmagic.ConfigHandler; +import WayofTime.bloodmagic.compat.ICompatibility; +import WayofTime.bloodmagic.compress.StorageBlockCraftingRecipeAssimilator; + +public class CompatibilityCompression implements ICompatibility{ + + @Override + public void loadCompatibility(InitializationPhase phase) { + if (phase == InitializationPhase.INIT) { + try { + Class compressionRecipe = Class.forName("temportalist.compression.main.common.recipe.RecipeClassicCompress"); + Class decompressionRecipe = Class.forName("temportalist.compression.main.common.recipe.RecipeClassicDecompress"); + StorageBlockCraftingRecipeAssimilator.ignore.add(compressionRecipe); + StorageBlockCraftingRecipeAssimilator.ignore.add(decompressionRecipe); + } catch (ClassNotFoundException e) { + BloodMagic.instance.getLogger().error("Found mod Compression but did not find the IRecipe classes. Did they get moved?"); + BloodMagic.instance.getLogger().error(e.getLocalizedMessage()); + } + } + } + + @Override + public String getModId() { + return "compression"; + } + + @Override + public boolean enableCompat() { + return ConfigHandler.ignoreCompressionSpamAddedByCompression; + } +} diff --git a/src/main/java/WayofTime/bloodmagic/compress/StorageBlockCraftingRecipeAssimilator.java b/src/main/java/WayofTime/bloodmagic/compress/StorageBlockCraftingRecipeAssimilator.java index 221ff5c2..5dc209df 100644 --- a/src/main/java/WayofTime/bloodmagic/compress/StorageBlockCraftingRecipeAssimilator.java +++ b/src/main/java/WayofTime/bloodmagic/compress/StorageBlockCraftingRecipeAssimilator.java @@ -18,6 +18,8 @@ import java.util.*; public class StorageBlockCraftingRecipeAssimilator { + public static final List ignore = new ArrayList(); + public List getPackingRecipes() { // grab all recipes potentially suitable for packing or unpacking @@ -27,6 +29,9 @@ public class StorageBlockCraftingRecipeAssimilator for (IRecipe recipe : getCraftingRecipes()) { + if (ignore.contains(recipe.getClass())) + continue; + ItemStack output = recipe.getRecipeOutput(); if (output == null || output.getItem() == null) continue; @@ -58,6 +63,9 @@ public class StorageBlockCraftingRecipeAssimilator for (IRecipe recipeUnpack : unpackingRecipes) { + if (ignore.contains(recipeUnpack.getClass())) + continue; + ItemStack unpacked = recipeUnpack.getRecipeOutput(); InventoryCrafting inventory = null; diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModCompatibility.java b/src/main/java/WayofTime/bloodmagic/registry/ModCompatibility.java index 0ccf3a59..ddc41f1c 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModCompatibility.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModCompatibility.java @@ -1,6 +1,7 @@ package WayofTime.bloodmagic.registry; import WayofTime.bloodmagic.compat.ICompatibility; +import WayofTime.bloodmagic.compat.compression.CompatibilityCompression; import net.minecraftforge.fml.common.Loader; import java.util.ArrayList; @@ -15,6 +16,7 @@ public class ModCompatibility // compatibilities.add(new CompatibilityWaila()); // compatibilities.add(new CompatibilityThaumcraft()); // compatibilities.add(new CompatibilityGuideAPI()); + compatibilities.add(new CompatibilityCompression()); } public static void loadCompat(ICompatibility.InitializationPhase phase)