mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-12 19:44:05 +09:00
trying to write a new ingamecontroller so that its update can be manually controlled
This commit is contained in:
@@ -14,10 +14,10 @@ import kotlin.math.roundToInt
|
||||
* ## UI Items
|
||||
*
|
||||
* UI can contain one or more UI elements (called UIItem). Each UIItem can have one or more events programmed to it.
|
||||
* Events have their own listener are governed by their GDX event handlers (e.g. mouseMoved).
|
||||
* Events have their own listener are governed by their GDX event handlers (e.g. touchDragged).
|
||||
* These GDX handlers are what makes the our own handler to work.
|
||||
*
|
||||
* UIItems have following event handlers: updateLister, keyDownListener, mouseMovedListener, touchDraggedListener, touchDownListener, touchUpListener, scrolledListener, and clickOnceListener.
|
||||
* UIItems have following event handlers: updateLister, keyDownListener, touchDraggedListener, touchDownListener, touchUpListener, scrolledListener, and clickOnceListener.
|
||||
* (perhaps clickOnceListener is the one most useful)
|
||||
*
|
||||
* To make them work without any hassle on your part,
|
||||
@@ -150,15 +150,6 @@ abstract class UICanvas(
|
||||
|
||||
fun mouseInScreen(x: Int, y: Int) = x in 0 until AppLoader.screenSize.screenW && y in 0 until AppLoader.screenSize.screenH
|
||||
|
||||
open fun mouseMoved(screenX: Int, screenY: Int): Boolean {
|
||||
if (this.isVisible) {
|
||||
uiItems.forEach { it.mouseMoved(screenX, screenY) }
|
||||
handler.subUIs.forEach { it.mouseMoved(screenX, screenY) }
|
||||
return true
|
||||
}
|
||||
else return false
|
||||
}
|
||||
|
||||
/**
|
||||
* Called by the screen's InputProcessor
|
||||
*
|
||||
|
||||
@@ -346,16 +346,6 @@ void main() {
|
||||
TerrarumIngame.setCameraPosition(batch, camera, newX, newY)
|
||||
}
|
||||
|
||||
fun mouseMoved(uiItems: List<UIItem>, screenX: Int, screenY: Int): Boolean {
|
||||
if (isVisible) {
|
||||
uiItems.forEach { it.mouseMoved(screenX, screenY) }
|
||||
subUIs.forEach { it.mouseMoved(screenX, screenY) }
|
||||
return true
|
||||
}
|
||||
else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
fun touchDragged(uiItems: List<UIItem>, screenX: Int, screenY: Int, pointer: Int): Boolean {
|
||||
if (isVisible) {
|
||||
uiItems.forEach { it.touchDragged(screenX, screenY, pointer) }
|
||||
|
||||
@@ -16,8 +16,7 @@ import net.torvald.terrarum.Terrarum
|
||||
* - updateListener
|
||||
* - keyDownListener
|
||||
* - keyUpListener
|
||||
* - mouseMovedListene
|
||||
* - touchDraggedListe
|
||||
* - touchDraggedLister
|
||||
* - touchDownListener
|
||||
* - touchUpListener
|
||||
* - scrolledListener
|
||||
@@ -104,7 +103,6 @@ abstract class UIItem(var parentUI: UICanvas, val initialX: Int, val initialY: I
|
||||
open var keyDownListener: ((Int) -> Unit)? = null
|
||||
/** Parametre: keycode */
|
||||
open var keyUpListener: ((Int) -> Unit)? = null
|
||||
open var mouseMovedListener: ((Int, Int) -> Unit)? = null
|
||||
open var touchDraggedListener: ((Int, Int, Int) -> Unit)? = null
|
||||
/** Parameters: screenX, screenY, pointer, button */
|
||||
open var touchDownListener: ((Int, Int, Int, Int) -> Unit)? = null
|
||||
@@ -177,14 +175,6 @@ abstract class UIItem(var parentUI: UICanvas, val initialX: Int, val initialY: I
|
||||
}
|
||||
|
||||
// mouse controlled
|
||||
open fun mouseMoved(screenX: Int, screenY: Int): Boolean {
|
||||
if (parentUI.isVisible && mouseMovedListener != null) {
|
||||
mouseMovedListener!!.invoke(relativeMouseX, relativeMouseY)
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
open fun touchDragged(screenX: Int, screenY: Int, pointer: Int): Boolean {
|
||||
if (parentUI.isVisible && touchDraggedListener != null) {
|
||||
touchDraggedListener!!.invoke(relativeMouseX, relativeMouseY, pointer)
|
||||
|
||||
@@ -43,34 +43,6 @@ class UIItemImageGallery(
|
||||
}
|
||||
}
|
||||
|
||||
override fun keyDown(keycode: Int): Boolean {
|
||||
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
|
||||
}
|
||||
|
||||
override fun keyUp(keycode: Int): Boolean {
|
||||
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
|
||||
}
|
||||
|
||||
override fun mouseMoved(screenX: Int, screenY: Int): Boolean {
|
||||
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
|
||||
}
|
||||
|
||||
override fun touchDragged(screenX: Int, screenY: Int, pointer: Int): Boolean {
|
||||
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
|
||||
}
|
||||
|
||||
override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
|
||||
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
|
||||
}
|
||||
|
||||
override fun touchUp(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
|
||||
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
|
||||
}
|
||||
|
||||
override fun scrolled(amountX: Float, amountY: Float): Boolean {
|
||||
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
|
||||
}
|
||||
|
||||
override fun dispose() {
|
||||
imageList.forEach { it.dispose() }
|
||||
}
|
||||
|
||||
@@ -103,9 +103,6 @@ class UIItemIntSlider(
|
||||
override var keyUpListener: ((Int) -> Unit)?
|
||||
get() = super.keyUpListener
|
||||
set(_) {}
|
||||
override var mouseMovedListener: ((Int, Int) -> Unit)?
|
||||
get() = super.mouseMovedListener
|
||||
set(_) {}
|
||||
override var touchDraggedListener: ((Int, Int, Int) -> Unit)?
|
||||
get() = super.touchDraggedListener
|
||||
set(_) {}
|
||||
|
||||
@@ -257,10 +257,6 @@ class UIItemTextButtonList(
|
||||
return super.keyUp(keycode) || buttons.map { it.keyUp(keycode).toInt() }.sum() != 0
|
||||
}
|
||||
|
||||
override fun mouseMoved(screenX: Int, screenY: Int): Boolean {
|
||||
return super.mouseMoved(screenX, screenY) || buttons.map { it.mouseMoved(screenX, screenY).toInt() }.sum() != 0
|
||||
}
|
||||
|
||||
override fun touchDragged(screenX: Int, screenY: Int, pointer: Int): Boolean {
|
||||
return super.touchDragged(screenX, screenY, pointer) || buttons.map { it.touchDragged(screenX, screenY, pointer).toInt() }.sum() != 0
|
||||
}
|
||||
|
||||
@@ -96,11 +96,6 @@ open class UIItemTransitionContainer(
|
||||
return true
|
||||
}
|
||||
|
||||
override fun mouseMoved(screenX: Int, screenY: Int): Boolean {
|
||||
uis.forEachIndexed { index, ui -> if (timeToUpdate(index)) ui.mouseMoved(screenX, screenY) }
|
||||
return true
|
||||
}
|
||||
|
||||
override fun touchDragged(screenX: Int, screenY: Int, pointer: Int): Boolean {
|
||||
uis.forEachIndexed { index, ui -> if (timeToUpdate(index)) ui.touchDragged(screenX, screenY, pointer) }
|
||||
return true
|
||||
|
||||
@@ -202,9 +202,6 @@ class UINSMenu(
|
||||
override fun endClosing(delta: Float) {
|
||||
}
|
||||
|
||||
override fun mouseMoved(screenX: Int, screenY: Int): Boolean {
|
||||
return super.mouseMoved(screenX, screenY)
|
||||
}
|
||||
|
||||
private var dragOriginX = 0 // relative mousepos
|
||||
private var dragOriginY = 0 // relative mousepos
|
||||
|
||||
Reference in New Issue
Block a user