diff --git a/common/src/main/java/org/embeddedt/modernfix/core/config/Option.java b/common/src/main/java/org/embeddedt/modernfix/core/config/Option.java index ed245764..6eac9434 100644 --- a/common/src/main/java/org/embeddedt/modernfix/core/config/Option.java +++ b/common/src/main/java/org/embeddedt/modernfix/core/config/Option.java @@ -46,6 +46,13 @@ public class Option { return this.parent; } + public int getDepth() { + if(this.parent == null) + return 0; + else + return this.parent.getDepth() + 1; + } + public boolean isEnabled() { return this.enabled; } @@ -74,6 +81,13 @@ public class Option { return this.name; } + public String getSelfName() { + if(this.parent == null) + return this.name; + else + return this.name.substring(this.parent.getName().length() + 1); + } + public void clearModsDefiningValue() { this.modDefined = null; } diff --git a/common/src/main/java/org/embeddedt/modernfix/screen/OptionList.java b/common/src/main/java/org/embeddedt/modernfix/screen/OptionList.java index cc18edec..4405aac8 100644 --- a/common/src/main/java/org/embeddedt/modernfix/screen/OptionList.java +++ b/common/src/main/java/org/embeddedt/modernfix/screen/OptionList.java @@ -19,10 +19,11 @@ import org.embeddedt.modernfix.platform.ModernFixPlatformHooks; import java.io.IOException; import java.util.*; -import java.util.stream.Collectors; public class OptionList extends ContainerObjectSelectionList { - private final int maxNameWidth; + private int maxNameWidth = 0; + + private static final int DEPTH_OFFSET = 20; private static final Component OPTION_ON = new TranslatableComponent("modernfix.option.on").withStyle(style -> style.withColor(ChatFormatting.GREEN)); private static final Component OPTION_OFF = new TranslatableComponent("modernfix.option.off").withStyle(style -> style.withColor(ChatFormatting.RED)); @@ -31,9 +32,9 @@ public class OptionList extends ContainerObjectSelectionList { private ModernFixConfigScreen mainScreen; - private static MutableComponent getOptionComponent(String optionName) { - String friendlyKey = "modernfix.option.name." + optionName; - TextComponent baseComponent = new TextComponent(optionName); + private static MutableComponent getOptionComponent(Option option) { + String friendlyKey = "modernfix.option.name." + option.getName(); + TextComponent baseComponent = new TextComponent(option.getSelfName()); if(I18n.exists(friendlyKey)) return new TranslatableComponent(friendlyKey).withStyle(style -> style.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, baseComponent))); else @@ -48,12 +49,25 @@ public class OptionList extends ContainerObjectSelectionList { } } + private final Set