diff options
| author | Linnea Gräf <nea@nea.moe> | 2025-07-28 19:52:18 +0200 |
|---|---|---|
| committer | Linnea Gräf <nea@nea.moe> | 2025-07-28 19:52:18 +0200 |
| commit | 80d97bb0de46b1b0cefd8a5bd1ba22105ee08a50 (patch) | |
| tree | f4f361e7397d0f743429bff824664b09ab4a0748 /src/main/kotlin/gui | |
| parent | 32e1b1176b4230e3e76145c1fec7f13f705cb6a7 (diff) | |
| download | Firmament-80d97bb0de46b1b0cefd8a5bd1ba22105ee08a50.tar.gz Firmament-80d97bb0de46b1b0cefd8a5bd1ba22105ee08a50.tar.bz2 Firmament-80d97bb0de46b1b0cefd8a5bd1ba22105ee08a50.zip | |
feat: update to new moulconfig version
Diffstat (limited to 'src/main/kotlin/gui')
| -rw-r--r-- | src/main/kotlin/gui/BarComponent.kt | 5 | ||||
| -rw-r--r-- | src/main/kotlin/gui/CheckboxComponent.kt | 4 | ||||
| -rw-r--r-- | src/main/kotlin/gui/FirmHoverComponent.kt | 4 | ||||
| -rw-r--r-- | src/main/kotlin/gui/config/DurationHandler.kt | 5 | ||||
| -rw-r--r-- | src/main/kotlin/gui/config/IntegerHandler.kt | 5 | ||||
| -rw-r--r-- | src/main/kotlin/gui/config/KeyBindingStateManager.kt | 5 | ||||
| -rw-r--r-- | src/main/kotlin/gui/config/ManagedConfig.kt | 21 | ||||
| -rw-r--r-- | src/main/kotlin/gui/hud/MoulConfigHud.kt | 90 |
8 files changed, 75 insertions, 64 deletions
diff --git a/src/main/kotlin/gui/BarComponent.kt b/src/main/kotlin/gui/BarComponent.kt index 563e159..751ea39 100644 --- a/src/main/kotlin/gui/BarComponent.kt +++ b/src/main/kotlin/gui/BarComponent.kt @@ -6,7 +6,8 @@ import io.github.notenoughupdates.moulconfig.common.RenderContext import io.github.notenoughupdates.moulconfig.gui.GuiComponent import io.github.notenoughupdates.moulconfig.gui.GuiImmediateContext import io.github.notenoughupdates.moulconfig.observer.GetSetter -import io.github.notenoughupdates.moulconfig.platform.ModernRenderContext +import io.github.notenoughupdates.moulconfig.platform.MoulConfigPlatform +import io.github.notenoughupdates.moulconfig.platform.MoulConfigRenderContext import me.shedaniel.math.Color import net.minecraft.client.gl.RenderPipelines import net.minecraft.client.gui.DrawContext @@ -82,7 +83,7 @@ class BarComponent( } override fun render(context: GuiImmediateContext) { - val renderContext = (context.renderContext as ModernRenderContext).drawContext + val renderContext = (context.renderContext as MoulConfigRenderContext).drawContext var i = 0 val x = 0 val y = 0 diff --git a/src/main/kotlin/gui/CheckboxComponent.kt b/src/main/kotlin/gui/CheckboxComponent.kt index 9baf720..7a9f2ef 100644 --- a/src/main/kotlin/gui/CheckboxComponent.kt +++ b/src/main/kotlin/gui/CheckboxComponent.kt @@ -4,7 +4,7 @@ import io.github.notenoughupdates.moulconfig.gui.GuiComponent import io.github.notenoughupdates.moulconfig.gui.GuiImmediateContext import io.github.notenoughupdates.moulconfig.gui.MouseEvent import io.github.notenoughupdates.moulconfig.observer.GetSetter -import io.github.notenoughupdates.moulconfig.platform.ModernRenderContext +import io.github.notenoughupdates.moulconfig.platform.MoulConfigRenderContext import net.minecraft.client.gl.RenderPipelines import net.minecraft.client.render.RenderLayer import moe.nea.firmament.Firmament @@ -26,7 +26,7 @@ class CheckboxComponent<T>( } override fun render(context: GuiImmediateContext) { - val ctx = (context.renderContext as ModernRenderContext).drawContext + val ctx = (context.renderContext as MoulConfigRenderContext).drawContext ctx.drawGuiTexture( RenderPipelines.GUI_TEXTURED, if (isEnabled()) Firmament.identifier("widget/checkbox_checked") diff --git a/src/main/kotlin/gui/FirmHoverComponent.kt b/src/main/kotlin/gui/FirmHoverComponent.kt index e38582a..eed795a 100644 --- a/src/main/kotlin/gui/FirmHoverComponent.kt +++ b/src/main/kotlin/gui/FirmHoverComponent.kt @@ -1,5 +1,6 @@ package moe.nea.firmament.gui +import io.github.notenoughupdates.moulconfig.common.text.StructuredText import io.github.notenoughupdates.moulconfig.gui.GuiComponent import io.github.notenoughupdates.moulconfig.gui.GuiImmediateContext import io.github.notenoughupdates.moulconfig.gui.KeyboardEvent @@ -31,7 +32,8 @@ class FirmHoverComponent( override fun render(context: GuiImmediateContext) { if (context.isHovered && (permaHover || lastMouseMove.passedTime() > hoverDelay)) { - context.renderContext.scheduleDrawTooltip(context.mouseX, context.mouseY, hoverLines.get()) + context.renderContext.scheduleDrawTooltip(context.mouseX, context.mouseY, hoverLines.get() + .map { it -> StructuredText.of(it) }) permaHover = true } else { permaHover = false diff --git a/src/main/kotlin/gui/config/DurationHandler.kt b/src/main/kotlin/gui/config/DurationHandler.kt index 8d485b1..32bec25 100644 --- a/src/main/kotlin/gui/config/DurationHandler.kt +++ b/src/main/kotlin/gui/config/DurationHandler.kt @@ -3,6 +3,7 @@ package moe.nea.firmament.gui.config import io.github.notenoughupdates.moulconfig.common.IMinecraft +import io.github.notenoughupdates.moulconfig.common.text.StructuredText import io.github.notenoughupdates.moulconfig.gui.component.RowComponent import io.github.notenoughupdates.moulconfig.gui.component.SliderComponent import io.github.notenoughupdates.moulconfig.gui.component.TextComponent @@ -31,8 +32,8 @@ class DurationHandler(val config: ManagedConfig, val min: Duration, val max: Dur guiAppender.appendLabeledRow( opt.labelText, RowComponent( - TextComponent(IMinecraft.instance.defaultFontRenderer, - { FirmFormatters.formatTimespan(opt.value) }, + TextComponent(IMinecraft.INSTANCE.defaultFontRenderer, + { StructuredText.of(FirmFormatters.formatTimespan(opt.value)) }, 40, TextComponent.TextAlignment.CENTER, true, diff --git a/src/main/kotlin/gui/config/IntegerHandler.kt b/src/main/kotlin/gui/config/IntegerHandler.kt index 31ce90f..fd10447 100644 --- a/src/main/kotlin/gui/config/IntegerHandler.kt +++ b/src/main/kotlin/gui/config/IntegerHandler.kt @@ -3,6 +3,7 @@ package moe.nea.firmament.gui.config import io.github.notenoughupdates.moulconfig.common.IMinecraft +import io.github.notenoughupdates.moulconfig.common.text.StructuredText import io.github.notenoughupdates.moulconfig.gui.component.RowComponent import io.github.notenoughupdates.moulconfig.gui.component.SliderComponent import io.github.notenoughupdates.moulconfig.gui.component.TextComponent @@ -26,8 +27,8 @@ class IntegerHandler(val config: ManagedConfig, val min: Int, val max: Int) : Ma guiAppender.appendLabeledRow( opt.labelText, RowComponent( - TextComponent(IMinecraft.instance.defaultFontRenderer, - { FirmFormatters.formatCommas(opt.value, 0) }, + TextComponent(IMinecraft.INSTANCE.defaultFontRenderer, + { StructuredText.of(FirmFormatters.formatCommas(opt.value, 0)) }, 40, TextComponent.TextAlignment.CENTER, true, diff --git a/src/main/kotlin/gui/config/KeyBindingStateManager.kt b/src/main/kotlin/gui/config/KeyBindingStateManager.kt index 1528ac4..49a4465 100644 --- a/src/main/kotlin/gui/config/KeyBindingStateManager.kt +++ b/src/main/kotlin/gui/config/KeyBindingStateManager.kt @@ -6,6 +6,7 @@ import io.github.notenoughupdates.moulconfig.deps.libninepatch.NinePatch import io.github.notenoughupdates.moulconfig.gui.GuiImmediateContext import io.github.notenoughupdates.moulconfig.gui.KeyboardEvent import io.github.notenoughupdates.moulconfig.gui.component.TextComponent +import io.github.notenoughupdates.moulconfig.platform.MoulConfigPlatform import org.lwjgl.glfw.GLFW import net.minecraft.text.Text import net.minecraft.util.Formatting @@ -116,8 +117,8 @@ class KeyBindingStateManager( fun createButton(): FirmButtonComponent { return object : FirmButtonComponent( TextComponent( - IMinecraft.instance.defaultFontRenderer, - { this@KeyBindingStateManager.label.string }, + IMinecraft.INSTANCE.defaultFontRenderer, + { MoulConfigPlatform.wrap(this@KeyBindingStateManager.label) }, 130, TextComponent.TextAlignment.LEFT, false, diff --git a/src/main/kotlin/gui/config/ManagedConfig.kt b/src/main/kotlin/gui/config/ManagedConfig.kt index 71d8c66..2f4144c 100644 --- a/src/main/kotlin/gui/config/ManagedConfig.kt +++ b/src/main/kotlin/gui/config/ManagedConfig.kt @@ -3,7 +3,6 @@ package moe.nea.firmament.gui.config import com.mojang.serialization.Codec import io.github.notenoughupdates.moulconfig.ChromaColour import io.github.notenoughupdates.moulconfig.gui.CloseEventListener -import io.github.notenoughupdates.moulconfig.gui.GuiComponentWrapper import io.github.notenoughupdates.moulconfig.gui.GuiContext import io.github.notenoughupdates.moulconfig.gui.component.CenterComponent import io.github.notenoughupdates.moulconfig.gui.component.ColumnComponent @@ -11,6 +10,7 @@ import io.github.notenoughupdates.moulconfig.gui.component.PanelComponent import io.github.notenoughupdates.moulconfig.gui.component.RowComponent import io.github.notenoughupdates.moulconfig.gui.component.ScrollPanelComponent import io.github.notenoughupdates.moulconfig.gui.component.TextComponent +import io.github.notenoughupdates.moulconfig.platform.MoulConfigScreenComponent import moe.nea.jarvis.api.Point import org.joml.Vector2i import org.lwjgl.glfw.GLFW @@ -120,7 +120,7 @@ abstract class ManagedConfig( return option(propertyName, default, BooleanHandler(this)) } - protected fun colour(propertyName: String, default: ()-> ChromaColour) : ManagedOption<ChromaColour> { + protected fun colour(propertyName: String, default: () -> ChromaColour): ManagedOption<ChromaColour> { return option(propertyName, default, ColourHandler(this)) } @@ -229,7 +229,8 @@ abstract class ManagedConfig( var screen: Screen? = null val guiapp = GuiAppender(400) { requireNotNull(screen) { "Screen Accessor called too early" } } latestGuiAppender = guiapp - guiapp.appendFullRow(RowComponent( + guiapp.appendFullRow( + RowComponent( FirmButtonComponent(TextComponent("←")) { if (parent != null) { save() @@ -241,12 +242,16 @@ abstract class ManagedConfig( )) sortedOptions.forEach { it.appendToGui(guiapp) } guiapp.reloadables.forEach { it() } - val component = CenterComponent(PanelComponent(ScrollPanelComponent(400, 300, ColumnComponent(guiapp.panel)), - 10, - PanelComponent.DefaultBackgroundRenderer.VANILLA)) - screen = object : GuiComponentWrapper(GuiContext(component)) { + val component = CenterComponent( + PanelComponent( + ScrollPanelComponent(400, 300, ColumnComponent(guiapp.panel)), + 10, + PanelComponent.DefaultBackgroundRenderer.VANILLA + ) + ) + screen = object : MoulConfigScreenComponent(Text.empty(), GuiContext(component), parent) { override fun close() { - if (context.onBeforeClose() == CloseEventListener.CloseAction.NO_OBJECTIONS_TO_CLOSE) { + if (guiContext.onBeforeClose() == CloseEventListener.CloseAction.NO_OBJECTIONS_TO_CLOSE) { client!!.setScreen(parent) } } diff --git a/src/main/kotlin/gui/hud/MoulConfigHud.kt b/src/main/kotlin/gui/hud/MoulConfigHud.kt index 14b7232..8259ebe 100644 --- a/src/main/kotlin/gui/hud/MoulConfigHud.kt +++ b/src/main/kotlin/gui/hud/MoulConfigHud.kt @@ -1,11 +1,11 @@ - package moe.nea.firmament.gui.hud -import io.github.notenoughupdates.moulconfig.gui.GuiComponentWrapper import io.github.notenoughupdates.moulconfig.gui.GuiContext import io.github.notenoughupdates.moulconfig.gui.component.TextComponent +import io.github.notenoughupdates.moulconfig.platform.MoulConfigScreenComponent import net.minecraft.resource.ResourceManager import net.minecraft.resource.SynchronousResourceReloader +import net.minecraft.text.Text import moe.nea.firmament.events.FinalizeResourceManagerEvent import moe.nea.firmament.events.HudRenderEvent import moe.nea.firmament.gui.config.HudMeta @@ -14,55 +14,55 @@ import moe.nea.firmament.util.MC import moe.nea.firmament.util.MoulConfigUtils abstract class MoulConfigHud( - val name: String, - val hudMeta: HudMeta, + val name: String, + val hudMeta: HudMeta, ) { - companion object { - private val componentWrapper by lazy { - object : GuiComponentWrapper(GuiContext(TextComponent("§cERROR"))) { - init { - this.client = MC.instance - } - } - } - } + companion object { + private val componentWrapper by lazy { + object : MoulConfigScreenComponent(Text.empty(), GuiContext(TextComponent("§cERROR")), null) { + init { + this.client = MC.instance + } + } + } + } - private var fragment: GuiContext? = null + private var fragment: GuiContext? = null - fun forceInit() { - } + fun forceInit() { + } - open fun shouldRender(): Boolean { - return true - } + open fun shouldRender(): Boolean { + return true + } - init { - require(name.matches("^[a-z_/]+$".toRegex())) - HudRenderEvent.subscribe("MoulConfigHud:render") { - if (!shouldRender()) return@subscribe - val renderContext = componentWrapper.createContext(it.context) - if (fragment == null) - loadFragment() - it.context.matrices.pushMatrix() - hudMeta.applyTransformations(it.context.matrices) - val pos = hudMeta.getEffectivePosition(JarvisIntegration.jarvis) + init { + require(name.matches("^[a-z_/]+$".toRegex())) + HudRenderEvent.subscribe("MoulConfigHud:render") { + if (!shouldRender()) return@subscribe + val renderContext = componentWrapper.createContext(it.context) + if (fragment == null) + loadFragment() + it.context.matrices.pushMatrix() + hudMeta.applyTransformations(it.context.matrices) + val pos = hudMeta.getEffectivePosition(JarvisIntegration.jarvis) val renderContextTranslated = - renderContext.translated(pos.x(), pos.y(), hudMeta.effectiveWidth, hudMeta.effectiveHeight) - .scaled(hudMeta.scale) - fragment!!.root.render(renderContextTranslated) - it.context.matrices.popMatrix() - } - FinalizeResourceManagerEvent.subscribe("MoulConfigHud:finalizeResourceManager") { - MC.resourceManager.registerReloader(object : SynchronousResourceReloader { - override fun reload(manager: ResourceManager?) { - fragment = null - } - }) - } - } + renderContext.translated(pos.x(), pos.y(), hudMeta.effectiveWidth, hudMeta.effectiveHeight) + .scaled(hudMeta.scale) + fragment!!.root.render(renderContextTranslated) + it.context.matrices.popMatrix() + } + FinalizeResourceManagerEvent.subscribe("MoulConfigHud:finalizeResourceManager") { + MC.resourceManager.registerReloader(object : SynchronousResourceReloader { + override fun reload(manager: ResourceManager?) { + fragment = null + } + }) + } + } - fun loadFragment() { - fragment = MoulConfigUtils.loadGui(name, this) - } + fun loadFragment() { + fragment = MoulConfigUtils.loadGui(name, this) + } } |
