diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/TextInputPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/TextInputPanel.kt index bebb96588..ad74f87d4 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/TextInputPanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/TextInputPanel.kt @@ -650,6 +650,10 @@ open class TextInputPanel( return true } + open fun onEnter() { + + } + override fun keyPressedInternal(key: Int, scancode: Int, mods: Int): Boolean { if (key == InputConstants.KEY_ESCAPE || !isActive) { killFocus() @@ -706,6 +710,7 @@ open class TextInputPanel( } else { killFocus() triggerChangeCallback() + onEnter() return true } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/tech/EssenceStorageScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/tech/EssenceStorageScreen.kt index a980fdd31..f1bd75821 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/tech/EssenceStorageScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/tech/EssenceStorageScreen.kt @@ -7,6 +7,7 @@ import net.minecraft.resources.ResourceLocation import net.minecraft.world.entity.player.Inventory import ru.dbotthepony.mc.otm.OverdriveThatMatters import ru.dbotthepony.mc.otm.client.isShiftDown +import ru.dbotthepony.mc.otm.client.playGuiClickSound import ru.dbotthepony.mc.otm.client.render.sprites.MatteryAtlas import ru.dbotthepony.mc.otm.client.render.RenderGravity import ru.dbotthepony.mc.otm.client.screen.MatteryScreen @@ -205,6 +206,22 @@ class EssenceStorageScreen(menu: EssenceStorageMenu, inventory: Inventory, title text = customDispense.toString() } + override fun onEnter() { + val player = minecraft?.player ?: return + + if (player.experienceLevel == customDispense) { + if (player.experienceProgress > 0f) { + menu.storeLevels.input(1) + } + } else if (player.experienceLevel > customDispense) { + menu.storeLevels.input(player.experienceLevel - customDispense) + } else { + menu.dispenseLevels.input(customDispense - player.experienceLevel) + } + + playGuiClickSound() + } + override fun onTextChanged(old: String, new: String) { customDispense = (new.toIntOrNull() ?: 30).coerceAtLeast(1) }