Make pressing enter in essence storage text field also set player level right away
This commit is contained in:
parent
138627f8de
commit
0724d35b50
@ -650,6 +650,10 @@ open class TextInputPanel<out S : Screen>(
|
||||
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<out S : Screen>(
|
||||
} else {
|
||||
killFocus()
|
||||
triggerChangeCallback()
|
||||
onEnter()
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user