Refactor source layout
Introduce compat source sets and move all kotlin sources to the main directory [no changelog]
This commit is contained in:
39
src/main/kotlin/gui/config/HudMetaHandler.kt
Normal file
39
src/main/kotlin/gui/config/HudMetaHandler.kt
Normal file
@@ -0,0 +1,39 @@
|
||||
|
||||
|
||||
package moe.nea.firmament.gui.config
|
||||
|
||||
import io.github.notenoughupdates.moulconfig.gui.component.TextComponent
|
||||
import kotlinx.serialization.json.Json
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
import kotlinx.serialization.json.decodeFromJsonElement
|
||||
import kotlinx.serialization.json.encodeToJsonElement
|
||||
import net.minecraft.text.MutableText
|
||||
import net.minecraft.text.Text
|
||||
import moe.nea.firmament.gui.FirmButtonComponent
|
||||
import moe.nea.firmament.jarvis.JarvisIntegration
|
||||
import moe.nea.firmament.util.MC
|
||||
|
||||
class HudMetaHandler(val config: ManagedConfig, val label: MutableText, val width: Int, val height: Int) :
|
||||
ManagedConfig.OptionHandler<HudMeta> {
|
||||
override fun toJson(element: HudMeta): JsonElement? {
|
||||
return Json.encodeToJsonElement(element.position)
|
||||
}
|
||||
|
||||
override fun fromJson(element: JsonElement): HudMeta {
|
||||
return HudMeta(Json.decodeFromJsonElement(element), label, width, height)
|
||||
}
|
||||
|
||||
override fun emitGuiElements(opt: ManagedOption<HudMeta>, guiAppender: GuiAppender) {
|
||||
guiAppender.appendLabeledRow(
|
||||
opt.labelText,
|
||||
FirmButtonComponent(
|
||||
TextComponent(
|
||||
Text.stringifiedTranslatable("firmament.hud.edit", label).string),
|
||||
) {
|
||||
MC.screen = JarvisIntegration.jarvis.getHudEditor(
|
||||
guiAppender.screenAccessor.invoke(),
|
||||
listOf(opt.value)
|
||||
)
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user