Added in elytra support

This commit is contained in:
lukasabbe
2026-02-10 19:58:45 +01:00
parent 4b8220399f
commit de243d28cb
15 changed files with 252 additions and 12 deletions
@@ -0,0 +1,64 @@
package com.lukasabbe.simplehud.config;
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
import com.terraformersmc.modmenu.api.ModMenuApi;
import dev.isxander.yacl3.api.*;
import dev.isxander.yacl3.api.controller.TickBoxControllerBuilder;
import dev.isxander.yacl3.gui.controllers.TickBoxController;
import dev.isxander.yacl3.gui.controllers.cycling.EnumController;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.Component;
public class ModMenu implements ModMenuApi {
@Override
public ConfigScreenFactory<?> getModConfigScreenFactory() {
return this::createConfig;
}
private Screen createConfig(Screen parent) {
Config instance = Config.HANDLER.instance();
return YetAnotherConfigLib
.createBuilder()
.title(Component.translatable("simple_hud.config.title"))
.category(ConfigCategory
.createBuilder()
.name(Component.translatable("simple_hud.config.category.general.name"))
.tooltip(Component.translatable("simple_hud.config.category.general.tooltip"))
.group(toggleOptions())
.build()
)
.category(ConfigCategory
.createBuilder()
.name(Component.translatable("simple_hud.config.category.elytra_options.name"))
.option(Option
.<SpeedEnum>createBuilder()
.name(Component.translatable("simple_hud.config.category.elytra_options.option.speed_enum.name"))
.description(OptionDescription.of(Component.translatable("simple_hud.config.category.elytra_options.option.speed_enum.description")))
.binding(SpeedEnum.kmh, () -> instance.speedEnumElytra, newVal -> instance.speedEnumElytra = newVal)
.customController(opt -> new EnumController<>(opt, SpeedEnum.class))
.build())
.build())
.save(() -> Config.HANDLER.save())
.build().generateScreen(parent);
}
private OptionGroup toggleOptions(){
var builder = OptionGroup
.createBuilder()
.name( Component.translatable("simple_hud.config.category.general.group.activated_huds.name"))
.description(OptionDescription.of(Component.translatable("simple_hud.config.category.general.group.activated_huds.description")));
Config instance = Config.HANDLER.instance();
for(var transport : instance.HudActivatedList.entrySet()){
builder.option(Option
.<Boolean>createBuilder()
.name(Component.translatable("simple_hud.config.category.general.group.activated_huds.option." + transport.getKey().split(":")[1] + ".name"))
.description(OptionDescription.of(Component.translatable("simple_hud.config.category.general.group.activated_huds.option." + transport.getKey().split(":")[1] + ".description")))
.binding(true, transport::getValue, newVal -> instance.HudActivatedList.put(transport.getKey(), newVal))
.controller(TickBoxControllerBuilder::create)
.build()
);
}
return builder.build();
}
}