Config for ignoring Compression mod's compress recipes

Over 3200 recipes with *just* vanilla + BM is... bad. Nobody should be adding that many...
This commit is contained in:
Nicholas Ignoffo 2016-04-24 08:30:59 -07:00
parent b9557bf5ae
commit ba17fe126e
4 changed files with 46 additions and 0 deletions

View file

@ -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();
}

View file

@ -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;
}
}

View file

@ -18,6 +18,8 @@ import java.util.*;
public class StorageBlockCraftingRecipeAssimilator
{
public static final List<Class> ignore = new ArrayList<Class>();
public List<IRecipe> 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;

View file

@ -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)