aboutsummaryrefslogtreecommitdiff
path: root/src/compat/yacl/java/YaclIntegration.kt
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2024-10-18 21:01:13 +0200
committerLinnea Gräf <nea@nea.moe>2024-10-18 21:01:13 +0200
commit6100b8c9a0fe42be52a759b429f532c12cc72a32 (patch)
tree347482e31b95491266a06a12bf478f3983bbd282 /src/compat/yacl/java/YaclIntegration.kt
parentc42bfa6151e5c63ca5bbd74e9a4ce0e7119a8539 (diff)
downloadFirmament-6100b8c9a0fe42be52a759b429f532c12cc72a32.tar.gz
Firmament-6100b8c9a0fe42be52a759b429f532c12cc72a32.tar.bz2
Firmament-6100b8c9a0fe42be52a759b429f532c12cc72a32.zip
Hack Fix YACL unbinding keys
Diffstat (limited to 'src/compat/yacl/java/YaclIntegration.kt')
-rw-r--r--src/compat/yacl/java/YaclIntegration.kt21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/compat/yacl/java/YaclIntegration.kt b/src/compat/yacl/java/YaclIntegration.kt
index fc5ff59..239d3a0 100644
--- a/src/compat/yacl/java/YaclIntegration.kt
+++ b/src/compat/yacl/java/YaclIntegration.kt
@@ -13,9 +13,12 @@ import dev.isxander.yacl3.api.controller.DoubleSliderControllerBuilder
import dev.isxander.yacl3.api.controller.IntegerSliderControllerBuilder
import dev.isxander.yacl3.api.controller.StringControllerBuilder
import dev.isxander.yacl3.api.controller.TickBoxControllerBuilder
+import dev.isxander.yacl3.gui.YACLScreen
+import dev.isxander.yacl3.gui.tab.ListHolderWidget
import kotlin.time.Duration
import kotlin.time.Duration.Companion.seconds
import kotlin.time.DurationUnit
+import net.minecraft.client.gui.Element
import net.minecraft.client.gui.screen.Screen
import net.minecraft.text.Text
import moe.nea.firmament.gui.config.BooleanHandler
@@ -121,7 +124,23 @@ class YaclIntegration : FirmamentConfigScreenProvider {
get() = "yacl"
override fun open(parent: Screen?): Screen {
- return buildConfig().generateScreen(parent)
+ return object : YACLScreen(buildConfig(), parent) {
+ override fun setFocused(focused: Element?) {
+ if (this.focused is KeybindingWidget &&
+ focused is ListHolderWidget<*>
+ ) {
+ return
+ }
+ super.setFocused(focused)
+ }
+
+ override fun shouldCloseOnEsc(): Boolean {
+ if (focused is KeybindingWidget) {
+ return false
+ }
+ return super.shouldCloseOnEsc()
+ }
+ }
}
}