mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-14 12:34:05 +09:00
45 lines
2.4 KiB
Kotlin
45 lines
2.4 KiB
Kotlin
package net.torvald.terrarum.ui
|
|
|
|
import com.badlogic.gdx.graphics.OrthographicCamera
|
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
|
import com.badlogic.gdx.utils.Disposable
|
|
import net.torvald.terrarum.TooltipListener
|
|
import net.torvald.terrarum.gamecontroller.TerrarumKeyboardEvent
|
|
|
|
/**
|
|
* Created by minjaesong on 2024-01-10.
|
|
*/
|
|
abstract class UITemplate(val parent: UICanvas) : UIItemisable() {
|
|
|
|
abstract fun getUIitems(): List<UIItem>
|
|
|
|
override fun show() { getUIitems().forEach { it.show() } }
|
|
override fun hide() { getUIitems().forEach { it.hide() } }
|
|
override fun inputStrobed(e: TerrarumKeyboardEvent) { getUIitems().forEach { it.inputStrobed(e) } }
|
|
override fun touchDragged(screenX: Int, screenY: Int, pointer: Int): Boolean { getUIitems().forEach { it.touchDragged(screenX, screenY, pointer) }; return true }
|
|
override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean { getUIitems().forEach { it.touchDown(screenX, screenY, pointer, button) }; return true }
|
|
override fun touchUp(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean { getUIitems().forEach { it.touchUp(screenX, screenY, pointer, button) }; return true }
|
|
override fun scrolled(amountX: Float, amountY: Float): Boolean { getUIitems().forEach { it.scrolled(amountX, amountY) }; return true }
|
|
override fun keyDown(keycode: Int): Boolean { getUIitems().forEach { it.keyDown(keycode) }; return true }
|
|
override fun keyUp(keycode: Int): Boolean { getUIitems().forEach { it.keyUp(keycode) }; return true }
|
|
override fun keyTyped(char: Char): Boolean { getUIitems().forEach { it.keyTyped(char) }; return true }
|
|
|
|
}
|
|
|
|
/**
|
|
* Created by minjaesong on 2024-01-29.
|
|
*/
|
|
abstract class UIItemisable : TooltipListener(), Disposable {
|
|
abstract fun update(delta: Float)
|
|
abstract fun render(frameDelta: Float, batch: SpriteBatch, camera: OrthographicCamera)
|
|
open fun show() {}
|
|
open fun hide() {}
|
|
open fun inputStrobed(e: TerrarumKeyboardEvent) {}
|
|
open fun touchDragged(screenX: Int, screenY: Int, pointer: Int): Boolean = false
|
|
open fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean = false
|
|
open fun touchUp(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean = false
|
|
open fun scrolled(amountX: Float, amountY: Float): Boolean = false
|
|
open fun keyDown(keycode: Int): Boolean = false
|
|
open fun keyUp(keycode: Int): Boolean = false
|
|
open fun keyTyped(char: Char): Boolean = false
|
|
} |