diff --git a/src/main/java/appeng/core/AEConfig.java b/src/main/java/appeng/core/AEConfig.java index 35fd63554..f79246c34 100644 --- a/src/main/java/appeng/core/AEConfig.java +++ b/src/main/java/appeng/core/AEConfig.java @@ -213,7 +213,9 @@ public final class AEConfig extends Configuration implements IConfigurableObject { if( feature.isVisible() ) { - if( this.get( "Features." + feature.category(), feature.key(), feature.isEnabled() ).getBoolean( feature.isEnabled() ) ) + final Property option = this.get( "Features." + feature.category(), feature.key(), feature.isEnabled(), feature.comment() ); + + if( option.getBoolean( feature.isEnabled() ) ) { this.featureFlags.add( feature ); } diff --git a/src/main/java/appeng/core/features/AEFeature.java b/src/main/java/appeng/core/features/AEFeature.java index 245a84efc..f2795d359 100644 --- a/src/main/java/appeng/core/features/AEFeature.java +++ b/src/main/java/appeng/core/features/AEFeature.java @@ -155,6 +155,7 @@ public enum AEFeature MOLECULAR_ASSEMBLER( "MolecularAssembler", Constants.CATEGORY_CRAFTING_FEATURES ), PATTERNS( "Patterns", Constants.CATEGORY_CRAFTING_FEATURES ), CRAFTING_CPU( "CraftingCPU", Constants.CATEGORY_CRAFTING_FEATURES ), + CRAFTING_MANAGER_FALLBACK( "CraftingManagerFallback", Constants.CATEGORY_CRAFTING_FEATURES, "Use CraftingManager to find an alternative recipe, after a pattern rejected an ingredient. Should be enabled to avoid issues, but can have a minor performance impact." ), BASIC_CARDS( "BasicCards", Constants.CATEGORY_UPGRADES ), ADVANCED_CARDS( "AdvancedCards", Constants.CATEGORY_UPGRADES ), @@ -178,17 +179,29 @@ public enum AEFeature private final String key; private final String category; private final boolean enabled; + private final String comment; AEFeature( final String key, final String cat ) { this( key, cat, true ); } + AEFeature( final String key, final String cat, final String comment ) + { + this( key, cat, true, comment ); + } + AEFeature( final String key, final String cat, final boolean enabled ) + { + this( key, cat, enabled, null ); + } + + AEFeature( final String key, final String cat, final boolean enabled, final String comment ) { this.key = key; this.category = cat; this.enabled = enabled; + this.comment = comment; } /** @@ -216,6 +229,11 @@ public enum AEFeature return this.enabled; } + public String comment() + { + return this.comment; + } + private enum Constants { ; diff --git a/src/main/java/appeng/helpers/PatternHelper.java b/src/main/java/appeng/helpers/PatternHelper.java index 92910428a..f4cc9a1ec 100644 --- a/src/main/java/appeng/helpers/PatternHelper.java +++ b/src/main/java/appeng/helpers/PatternHelper.java @@ -41,7 +41,9 @@ import appeng.api.networking.crafting.ICraftingPatternDetails; import appeng.api.storage.channels.IItemStorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.container.ContainerNull; +import appeng.core.AEConfig; import appeng.core.AELog; +import appeng.core.features.AEFeature; import appeng.util.ItemSorters; import appeng.util.Platform; import appeng.util.item.AEItemStack; @@ -267,7 +269,7 @@ public class PatternHelper implements ICraftingPatternDetails, Comparable