fix: show categories in tabs
This commit is contained in:
parent
a5d12468ed
commit
a7ba696bb9
|
@ -50,13 +50,20 @@ public class TinyConfigScreen extends ScreenWithSaveHook {
|
|||
private boolean reload = false;
|
||||
|
||||
public TinyConfigScreen(ConfigCategory config, Screen parent) {
|
||||
this(config, parent, shouldConsiderTabs(config));
|
||||
}
|
||||
|
||||
public TinyConfigScreen(ConfigCategory config, Screen parent, boolean considerTabs) {
|
||||
super(getTitle(config.getTranslationPrefix()));
|
||||
this.parent = parent;
|
||||
this.config = config;
|
||||
this.widgets = new LinkedList<>();
|
||||
this.placeholder = new Placeholder<>(null);
|
||||
this.considerTabs = considerTabs;
|
||||
}
|
||||
|
||||
this.considerTabs = config.getEntries().isEmpty()
|
||||
private static boolean shouldConsiderTabs(ConfigCategory config) {
|
||||
return config.getEntries().isEmpty()
|
||||
&& config.getPresets().keySet().stream().allMatch(s -> s.equals(CategoryBuilder.CONFIG_PRESET_DEFAULT))
|
||||
&& config.getReferencedConfigs().isEmpty()
|
||||
&& config.getCategories().size() > 1
|
||||
|
@ -127,12 +134,13 @@ public class TinyConfigScreen extends ScreenWithSaveHook {
|
|||
}
|
||||
wasTabs = useTabs;
|
||||
|
||||
tabs = !useTabs ? List.of() : config.getCategories()
|
||||
.values()
|
||||
.stream()
|
||||
.map(c -> new TinyConfigTab(this, c, textRenderer, false))
|
||||
.toList();
|
||||
if (tabs.isEmpty()) tabs = List.of(new TinyConfigTab(this, config, textRenderer, true));
|
||||
tabs = useTabs
|
||||
? config.getCategories()
|
||||
.values()
|
||||
.stream()
|
||||
.map(c -> new TinyConfigTab(this, c, textRenderer, false))
|
||||
.toList()
|
||||
: List.of(new TinyConfigTab(this, config, textRenderer, true));
|
||||
}
|
||||
|
||||
private boolean tabsWouldOverflow(Collection<ConfigCategory> categories) {
|
||||
|
|
|
@ -39,16 +39,14 @@ public class TinyConfigTab implements Tab {
|
|||
this.list.addText(Text.translatable(tooltipPath));
|
||||
}
|
||||
|
||||
if (isRoot) {
|
||||
for (Map.Entry<String, ConfigCategory> entry : config.getCategories().entrySet()) {
|
||||
this.list.addReference(TinyConfigScreen.getTitle(entry.getValue().getTranslationPrefix()),
|
||||
() -> new TinyConfigScreen(entry.getValue(), screen));
|
||||
}
|
||||
} else {
|
||||
if (!config.getPresets().isEmpty()) {
|
||||
this.list.addReference(Text.translatable("libjf-config-v1.presets"),
|
||||
() -> new PresetsScreen(screen, config, screen::afterSelectPreset));
|
||||
}
|
||||
if (!isRoot && !config.getPresets().isEmpty()) {
|
||||
this.list.addReference(Text.translatable("libjf-config-v1.presets"),
|
||||
() -> new PresetsScreen(screen, config, screen::afterSelectPreset));
|
||||
|
||||
}
|
||||
for (Map.Entry<String, ConfigCategory> entry : config.getCategories().entrySet()) {
|
||||
this.list.addReference(TinyConfigScreen.getTitle(entry.getValue().getTranslationPrefix()),
|
||||
() -> new TinyConfigScreen(entry.getValue(), screen, false));
|
||||
}
|
||||
for (WidgetState<?> info : widgets) {
|
||||
MutableText name = Text.translatable(config.getTranslationPrefix() + info.entry.getName());
|
||||
|
|
Loading…
Reference in New Issue