UI: quickslot register; IngameController: quickslot selection using wheel

This closes github issue #14
This commit is contained in:
minjaesong
2019-01-13 03:02:57 +09:00
parent d9c7d3c681
commit 0be6678c34
3 changed files with 19 additions and 10 deletions

View File

@@ -10,7 +10,7 @@ import net.torvald.terrarum.itemproperties.GameItem
import net.torvald.terrarum.modulebasegame.Ingame import net.torvald.terrarum.modulebasegame.Ingame
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase
import net.torvald.terrarum.ui.* import net.torvald.terrarum.ui.UIItemTextButton
/*** /***
* Note that the UI will not render if either item or itemImage is null. * Note that the UI will not render if either item or itemImage is null.
@@ -136,7 +136,7 @@ class UIItemInventoryElem(
} }
override fun keyDown(keycode: Int): Boolean { override fun keyDown(keycode: Int): Boolean {
if (item != null && Terrarum.ingame != null && keycode in Input.Keys.NUM_1..Input.Keys.NUM_0) { if (item != null && Terrarum.ingame != null && keycode in Input.Keys.NUM_0..Input.Keys.NUM_9) {
val player = (Terrarum.ingame!! as Ingame).actorNowPlaying val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
if (player == null) return false if (player == null) return false
@@ -163,7 +163,7 @@ class UIItemInventoryElem(
} }
} }
return true return super.keyDown(keycode)
} }
override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean { override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
@@ -189,7 +189,7 @@ class UIItemInventoryElem(
inventoryUI.rebuildList() inventoryUI.rebuildList()
return true return super.touchDown(screenX, screenY, pointer, button)
} }

View File

@@ -9,7 +9,7 @@ import net.torvald.terrarum.itemproperties.GameItem
import net.torvald.terrarum.modulebasegame.Ingame import net.torvald.terrarum.modulebasegame.Ingame
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase
import net.torvald.terrarum.ui.* import net.torvald.terrarum.ui.UIItemTextButton
/** /**
* Created by minjaesong on 2017-10-20. * Created by minjaesong on 2017-10-20.
@@ -121,8 +121,7 @@ class UIItemInventoryElemSimple(
} }
override fun keyDown(keycode: Int): Boolean { override fun keyDown(keycode: Int): Boolean {
if (item != null && Terrarum.ingame != null && keycode in Input.Keys.NUM_1..Input.Keys.NUM_0) { if (item != null && Terrarum.ingame != null && keycode in Input.Keys.NUM_0..Input.Keys.NUM_9) {
println("keydown elemgrid")
val player = (Terrarum.ingame!! as Ingame).actorNowPlaying val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
if (player == null) return false if (player == null) return false
@@ -149,7 +148,7 @@ class UIItemInventoryElemSimple(
} }
} }
return true return super.keyDown(keycode)
} }
override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean { override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
@@ -172,7 +171,7 @@ class UIItemInventoryElemSimple(
inventoryUI.rebuildList() inventoryUI.rebuildList()
return true return super.touchDown(screenX, screenY, pointer, button)
} }

View File

@@ -72,7 +72,7 @@ class IngameController(val ingame: Ingame) : InputAdapter() {
if (ingame.canPlayerControl) { if (ingame.canPlayerControl) {
ingame.actorNowPlaying?.keyDown(keycode) ingame.actorNowPlaying?.keyDown(keycode)
// quickslot (quickbar) // quickslot by number keys
val quickslotKeys = AppLoader.getConfigIntArray("keyquickslots") val quickslotKeys = AppLoader.getConfigIntArray("keyquickslots")
if (keycode in quickslotKeys) { if (keycode in quickslotKeys) {
ingame.actorNowPlaying?.actorValue?.set(AVKey.__PLAYER_QUICKSLOTSEL, quickslotKeys.indexOf(keycode)) ingame.actorNowPlaying?.actorValue?.set(AVKey.__PLAYER_QUICKSLOTSEL, quickslotKeys.indexOf(keycode))
@@ -145,6 +145,16 @@ class IngameController(val ingame: Ingame) : InputAdapter() {
} }
override fun scrolled(amount: Int): Boolean { override fun scrolled(amount: Int): Boolean {
if (ingame.canPlayerControl) {
// quickslot by wheel
if (ingame.actorNowPlaying != null) {
ingame.actorNowPlaying!!.actorValue.set(
AVKey.__PLAYER_QUICKSLOTSEL,
(ingame.actorNowPlaying!!.actorValue.getAsInt(AVKey.__PLAYER_QUICKSLOTSEL)!! - amount) % ingame.actorNowPlaying!!.inventory.quickSlot.size
)
}
}
ingame.uiContainer.forEach { it.scrolled(amount) } ingame.uiContainer.forEach { it.scrolled(amount) }
return true return true
} }