diff --git a/src/net/torvald/terrarum/TooltipManager.kt b/src/net/torvald/terrarum/TooltipManager.kt index a70cb4618..80739ff43 100644 --- a/src/net/torvald/terrarum/TooltipManager.kt +++ b/src/net/torvald/terrarum/TooltipManager.kt @@ -24,7 +24,12 @@ abstract class TooltipListener { open val tooltipHash = System.nanoTime() + /** + * Acquire a control over the "tooltip bus". If the message is null, `releaseTooltip()` will be invoked instead. + */ fun acquireTooltip(message: String?) { + if (message == null) return releaseTooltip() + INGAME.setTooltipMessage(message) TooltipManager.tooltipShowing[tooltipHash] = true } @@ -39,6 +44,7 @@ abstract class TooltipListener { } fun clearTooltip() { + printStackTrace(this) TooltipManager.tooltipShowing.clear() INGAME.setTooltipMessage(null) } diff --git a/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt b/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt index 165255944..7cc7ad13f 100644 --- a/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt +++ b/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt @@ -1703,6 +1703,7 @@ open class TerrarumIngame(batch: FlippingSpriteBatch) : IngameInstance(batch) { val fixtureItem = fixture.itemise() printdbg(this, "Fixture pickup at F${WORLD_UPDATE_TIMER}: ${fixture.javaClass.canonicalName} -> $fixtureItem") // 0. hide tooltips + TooltipManager.tooltipShowing.clear() setTooltipMessage(null) if (!fixture.flagDespawn) { // 1. put the fixture to the inventory diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/AxeCore.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/AxeCore.kt index 0db5a625f..655b6d602 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/AxeCore.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/AxeCore.kt @@ -304,7 +304,7 @@ class AxeCopper(originalID: ItemID) : GameItem(originalID) { if (AxeCore.startPrimaryUse(actor, delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = AxeCore.endPrimaryUse(actor, this) // override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) = AxeCore.showOresTooltip(actor, this, Terrarum.mouseTileX, Terrarum.mouseTileY) - override fun effectOnUnequip(actor: ActorWithBody) { INGAME.setTooltipMessage(null) } + override fun effectOnUnequip(actor: ActorWithBody) { clearTooltip() } } /** @@ -334,7 +334,7 @@ class AxeIron(originalID: ItemID) : GameItem(originalID) { if (AxeCore.startPrimaryUse(actor, delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = AxeCore.endPrimaryUse(actor, this) // override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) = AxeCore.showOresTooltip(actor, this, Terrarum.mouseTileX, Terrarum.mouseTileY) - override fun effectOnUnequip(actor: ActorWithBody) { INGAME.setTooltipMessage(null) } + override fun effectOnUnequip(actor: ActorWithBody) { clearTooltip() } } /** @@ -364,7 +364,7 @@ class AxeSteel(originalID: ItemID) : GameItem(originalID) { if (AxeCore.startPrimaryUse(actor, delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = AxeCore.endPrimaryUse(actor, this) // override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) = AxeCore.showOresTooltip(actor, this, Terrarum.mouseTileX, Terrarum.mouseTileY) - override fun effectOnUnequip(actor: ActorWithBody) { INGAME.setTooltipMessage(null) } + override fun effectOnUnequip(actor: ActorWithBody) { clearTooltip() } } /** @@ -394,7 +394,7 @@ class AxeWood(originalID: ItemID) : GameItem(originalID) { if (AxeCore.startPrimaryUse(actor, delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = AxeCore.endPrimaryUse(actor, this) // override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) = AxeCore.showOresTooltip(actor, this, Terrarum.mouseTileX, Terrarum.mouseTileY) - override fun effectOnUnequip(actor: ActorWithBody) { INGAME.setTooltipMessage(null) } + override fun effectOnUnequip(actor: ActorWithBody) { clearTooltip() } } /** @@ -424,6 +424,6 @@ class AxeStone(originalID: ItemID) : GameItem(originalID) { if (AxeCore.startPrimaryUse(actor, delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = AxeCore.endPrimaryUse(actor, this) // override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) = AxeCore.showOresTooltip(actor, this, Terrarum.mouseTileX, Terrarum.mouseTileY) - override fun effectOnUnequip(actor: ActorWithBody) { INGAME.setTooltipMessage(null) } + override fun effectOnUnequip(actor: ActorWithBody) { clearTooltip() } } \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt index 39f3f310c..dda8a236b 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt @@ -307,7 +307,7 @@ class PickaxeCopper(originalID: ItemID) : GameItem(originalID) { if (PickaxeCore.startPrimaryUse(actor, delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = PickaxeCore.endPrimaryUse(actor, this) override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) = PickaxeCore.showOresTooltip(actor, this, Terrarum.mouseTileX, Terrarum.mouseTileY) - override fun effectOnUnequip(actor: ActorWithBody) { INGAME.setTooltipMessage(null) } + override fun effectOnUnequip(actor: ActorWithBody) { clearTooltip() } } @@ -338,7 +338,7 @@ class PickaxeIron(originalID: ItemID) : GameItem(originalID) { if (PickaxeCore.startPrimaryUse(actor , delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = PickaxeCore.endPrimaryUse(actor, this) override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) = PickaxeCore.showOresTooltip(actor, this, Terrarum.mouseTileX, Terrarum.mouseTileY) - override fun effectOnUnequip(actor: ActorWithBody) { INGAME.setTooltipMessage(null) } + override fun effectOnUnequip(actor: ActorWithBody) { clearTooltip() } } @@ -369,7 +369,7 @@ class PickaxeSteel(originalID: ItemID) : GameItem(originalID) { if (PickaxeCore.startPrimaryUse(actor, delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = PickaxeCore.endPrimaryUse(actor, this) override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) = PickaxeCore.showOresTooltip(actor, this, Terrarum.mouseTileX, Terrarum.mouseTileY) - override fun effectOnUnequip(actor: ActorWithBody) { INGAME.setTooltipMessage(null) } + override fun effectOnUnequip(actor: ActorWithBody) { clearTooltip() } } @@ -400,7 +400,7 @@ class PickaxeWood(originalID: ItemID) : GameItem(originalID) { if (PickaxeCore.startPrimaryUse(actor, delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = PickaxeCore.endPrimaryUse(actor, this) override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) = PickaxeCore.showOresTooltip(actor, this, Terrarum.mouseTileX, Terrarum.mouseTileY) - override fun effectOnUnequip(actor: ActorWithBody) { INGAME.setTooltipMessage(null) } + override fun effectOnUnequip(actor: ActorWithBody) { clearTooltip() } } @@ -431,6 +431,6 @@ class PickaxeStone(originalID: ItemID) : GameItem(originalID) { if (PickaxeCore.startPrimaryUse(actor, delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = PickaxeCore.endPrimaryUse(actor, this) override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) = PickaxeCore.showOresTooltip(actor, this, Terrarum.mouseTileX, Terrarum.mouseTileY) - override fun effectOnUnequip(actor: ActorWithBody) { INGAME.setTooltipMessage(null) } + override fun effectOnUnequip(actor: ActorWithBody) { clearTooltip() } } \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/WireGraphDebugger.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/WireGraphDebugger.kt index f69c91d8f..513d04224 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/WireGraphDebugger.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/WireGraphDebugger.kt @@ -71,7 +71,6 @@ class WireGraphDebugger(originalID: ItemID) : GameItem(originalID) { override fun effectOnUnequip(actor: ActorWithBody) { (Terrarum.ingame!! as TerrarumIngame).selectedWireRenderClass = "" - (Terrarum.ingame!! as TerrarumIngame).setTooltipMessage(null) blockMarker.hideMarker() removeFromTooltipRecord() } diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIAlloyingFurnace.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIAlloyingFurnace.kt index f2590db6f..be40d481c 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIAlloyingFurnace.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIAlloyingFurnace.kt @@ -431,22 +431,13 @@ class UIAlloyingFurnace(val smelter: FixtureAlloyingFurnace) : UICanvas( override fun doOpening(delta: Float) { super.doOpening(delta) INGAME.disablePlayerControl() - INGAME.setTooltipMessage(null) } override fun doClosing(delta: Float) { super.doClosing(delta) INGAME.resumePlayerControl() - INGAME.setTooltipMessage(null) } - override fun endOpening(delta: Float) { - super.endOpening(delta) - } - - override fun endClosing(delta: Float) { - super.endClosing(delta) - } override fun dispose() { } diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UICraftingWorkbench.kt b/src/net/torvald/terrarum/modulebasegame/ui/UICraftingWorkbench.kt index a4bdb61b4..9f6c59e82 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UICraftingWorkbench.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UICraftingWorkbench.kt @@ -504,16 +504,12 @@ class UICraftingWorkbench(val inventoryUI: UIInventoryFull?, val parentContainer override fun doOpening(delta: Float) { super.doOpening(delta) - INGAME.setTooltipMessage(null) + clearTooltip() } override fun doClosing(delta: Float) { super.doClosing(delta) - INGAME.setTooltipMessage(null) - } - - override fun endOpening(delta: Float) { - super.endOpening(delta) + clearTooltip() } override fun endClosing(delta: Float) { diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIEngravingTextSign.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIEngravingTextSign.kt index 59e9b1dac..feb83d5cf 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIEngravingTextSign.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIEngravingTextSign.kt @@ -271,13 +271,11 @@ class UIEngravingTextSign : UICanvas( override fun doOpening(delta: Float) { super.doOpening(delta) - INGAME.setTooltipMessage(null) INGAME.pause() } override fun doClosing(delta: Float) { super.doClosing(delta) - INGAME.setTooltipMessage(null) INGAME.resume() } diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryCells.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryCells.kt index 9c32d8b5b..893f9aaba 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryCells.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryCells.kt @@ -155,6 +155,10 @@ internal class UIInventoryCells( } } + override fun endOpening(delta: Float) { + handler.opacity = 1f + } + override fun renderImpl(frameDelta: Float, batch: SpriteBatch, camera: OrthographicCamera) { //itemList.posX = itemList.initialX + inventoryScrOffX.roundToInt() itemList.render(frameDelta, batch, camera) diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryEscMenu.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryEscMenu.kt index 6deb7043c..e07ca5f3f 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryEscMenu.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryEscMenu.kt @@ -357,15 +357,6 @@ class UIInventoryEscMenu(val full: UIInventoryFull) : UICanvas() { } } - override fun doClosing(delta: Float) { - super.doClosing(delta) - } - - override fun endOpening(delta: Float) { - super.endOpening(delta) - INGAME.setTooltipMessage(null) - } - override fun endClosing(delta: Float) { super.endClosing(delta) screen = 0 diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt index 0235f8c79..47e1cac94 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt @@ -312,14 +312,14 @@ class UIInventoryFull( } fun openGamemenu(it: UIHandler) { - INGAME.setTooltipMessage(null) + clearTooltip() transitionPanel.forcePosition(2) catBar.setSelectedPanel(2) it.setAsOpen() } fun openCrafting(it: UIHandler) { - INGAME.setTooltipMessage(null) + clearTooltip() transitionPanel.forcePosition(0) catBar.setSelectedPanel(0) transitionalCraftingUI.resetUI() @@ -352,8 +352,6 @@ class UIInventoryFull( // UI items catBar.render(frameDelta, batch, camera) transitionPanel.render(frameDelta, batch, camera) - -// if (transitionPanel.currentPosition != 1f) INGAME.setTooltipMessage(null) } fun rebuildList() { @@ -383,7 +381,6 @@ class UIInventoryFull( super.doOpening(delta) transitionPanel.allUIs.forEach { it.opacity = FastMath.pow(opacity, 0.5f) } INGAME.pause() - INGAME.setTooltipMessage(null) App.audioMixer.requestLowpassIn(0.25) App.audioMixer.requestFadeOut(App.audioMixer.fadeBus, 0.25, decibelsToFullscale(-3.0)) @@ -395,7 +392,6 @@ class UIInventoryFull( super.doClosing(delta) transitionPanel.allUIs.forEach { it.opacity = FastMath.pow(opacity, 0.5f) } INGAME.resume() - INGAME.setTooltipMessage(null) if (shouldIFadeIn == null) { shouldIFadeIn = (App.audioMixer.fadeBus.getFilter().cutoff < SAMPLING_RATE / 2) @@ -417,7 +413,6 @@ class UIInventoryFull( override fun endClosing(delta: Float) { super.endClosing(delta) transitionPanel.allUIs.forEach { it.opacity = 0f } - INGAME.setTooltipMessage(null) // required! // MinimapComposer.revalidateAll() shouldIFadeIn = null diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryMinimap.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryMinimap.kt index 923255bdd..97fcc3fb2 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryMinimap.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryMinimap.kt @@ -247,7 +247,6 @@ class UIInventoryMinimap(val full: UIInventoryFull) : UICanvas() { } override fun show() { - INGAME.setTooltipMessage(null) } override fun doOpening(delta: Float) {} diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIJukebox.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIJukebox.kt index 7fd9236e7..28c21fe91 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIJukebox.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIJukebox.kt @@ -99,20 +99,14 @@ class UIJukebox : UICanvas( private val yEnd = -UIInventoryFull.YPOS_CORRECTION + (App.scr.height + UIInventoryFull.internalHeight).div(2).toFloat() - override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean { - return super.touchDown(screenX, screenY, pointer, button) - } - override fun doOpening(delta: Float) { super.doOpening(delta) INGAME.disablePlayerControl() - INGAME.setTooltipMessage(null) } override fun doClosing(delta: Float) { super.doClosing(delta) INGAME.resumePlayerControl() - INGAME.setTooltipMessage(null) } override fun dispose() { diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UISmelterBasic.kt b/src/net/torvald/terrarum/modulebasegame/ui/UISmelterBasic.kt index 35e6806af..81597cb4f 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UISmelterBasic.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UISmelterBasic.kt @@ -417,22 +417,11 @@ class UISmelterBasic(val smelter: FixtureSmelterBasic) : UICanvas( override fun doOpening(delta: Float) { super.doOpening(delta) INGAME.disablePlayerControl() - INGAME.setTooltipMessage(null) } override fun doClosing(delta: Float) { super.doClosing(delta) INGAME.resumePlayerControl() - INGAME.setTooltipMessage(null) - } - - override fun endOpening(delta: Float) { - super.endOpening(delta) - } - - override fun endClosing(delta: Float) { - super.endClosing(delta) - clearTooltip() } override fun dispose() { diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIStorageChest.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIStorageChest.kt index 73639edb5..6b9be9292 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIStorageChest.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIStorageChest.kt @@ -296,13 +296,11 @@ internal class UIStorageChest : UICanvas( override fun doOpening(delta: Float) { super.doOpening(delta) INGAME.pause() - INGAME.setTooltipMessage(null) } override fun doClosing(delta: Float) { super.doClosing(delta) INGAME.resume() - INGAME.setTooltipMessage(null) } override fun dispose() { diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UITooltip.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITooltip.kt index 6e48d50aa..1c0d30a9e 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UITooltip.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITooltip.kt @@ -104,6 +104,14 @@ class UITooltip : UICanvas() { } } + override fun doOpening(delta: Float) { + handler.opacity = handler.openCloseCounter / openCloseTime + } + + override fun doClosing(delta: Float) { + handler.opacity = (openCloseTime - handler.openCloseCounter) / openCloseTime + } + override fun endOpening(delta: Float) { handler.opacity = 1f // Tooltip must not acquire control of itself diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortal.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortal.kt index 312bfe3a5..0ab3c8a67 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortal.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortal.kt @@ -155,7 +155,6 @@ class UIWorldPortal : UICanvas( override fun show() { transitionPanel.forcePosition(0) super.show() - INGAME.setTooltipMessage(null) // add current world to the player's worldportaldict addWorldToPlayersDict(INGAME.world.worldIndex) @@ -170,14 +169,12 @@ class UIWorldPortal : UICanvas( super.doOpening(delta) transitionPanel.uis.forEach { it.opacity = FastMath.pow(opacity, 0.5f) } INGAME.pause() - INGAME.setTooltipMessage(null) } override fun doClosing(delta: Float) { super.doClosing(delta) transitionPanel.uis.forEach { it.opacity = FastMath.pow(opacity, 0.5f) } INGAME.resume() - INGAME.setTooltipMessage(null) } override fun endOpening(delta: Float) { diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortalCargo.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortalCargo.kt index f77f332cc..d2d5d663a 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortalCargo.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortalCargo.kt @@ -224,12 +224,12 @@ class UIWorldPortalCargo(val full: UIWorldPortal) : UICanvas(), HasInventory { override fun doOpening(delta: Float) { INGAME.pause() - INGAME.setTooltipMessage(null) + clearTooltip() } override fun doClosing(delta: Float) { INGAME.resume() - INGAME.setTooltipMessage(null) + clearTooltip() } override fun endOpening(delta: Float) { diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortalListing.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortalListing.kt index ece772b0f..622968a76 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortalListing.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortalListing.kt @@ -353,7 +353,10 @@ class UIWorldPortalListing(val full: UIWorldPortal) : UICanvas() { if (::worldCells.isInitialized) worldCells.forEach { it.update(delta) } if (currentWorldSelected) { - INGAME.setTooltipMessage(if (buttonTeleport.mouseUp || buttonDelete.mouseUp) Lang["CONTEXT_THIS_IS_A_WORLD_CURRENTLY_PLAYING"] else null) + if (buttonTeleport.mouseUp || buttonDelete.mouseUp) + acquireTooltip(Lang["CONTEXT_THIS_IS_A_WORLD_CURRENTLY_PLAYING"]) + else + releaseTooltip() } if (showSpinner) { @@ -511,13 +514,13 @@ class UIWorldPortalListing(val full: UIWorldPortal) : UICanvas() { override fun doOpening(delta: Float) { super.doOpening(delta) INGAME.pause() - INGAME.setTooltipMessage(null) + clearTooltip() } override fun doClosing(delta: Float) { super.doClosing(delta) INGAME.resume() - INGAME.setTooltipMessage(null) + clearTooltip() } } diff --git a/src/net/torvald/terrarum/ui/ConsoleWindow.kt b/src/net/torvald/terrarum/ui/ConsoleWindow.kt index 6f511f4e6..c0e9d9621 100644 --- a/src/net/torvald/terrarum/ui/ConsoleWindow.kt +++ b/src/net/torvald/terrarum/ui/ConsoleWindow.kt @@ -81,7 +81,10 @@ class ConsoleWindow : UICanvas() { lb.add("${it.referenceID} (${it.actorValue[AVKey.NAME] ?: "\u03AF-${it.javaClass.simpleName}"})") } - it.setTooltipMessage(if (lb.size > 0) lb.joinToString("\n") else null) + if (lb.size > 0) + acquireTooltip(lb.joinToString("\n")) + else + releaseTooltip() // click to enter the actor's reference ID if (lb.size > 0 && !clickLatched && Gdx.input.isButtonPressed(App.getConfigInt("config_mouseprimary"))) { @@ -90,7 +93,7 @@ class ConsoleWindow : UICanvas() { } } else { - it.setTooltipMessage(null) + releaseTooltip() } } @@ -266,6 +269,7 @@ class ConsoleWindow : UICanvas() { drawOffY = MovementInterpolator.fastPullOut(openingTimeCounter.toFloat() / openCloseTime.toFloat(), -height.toFloat(), 0f )*/ + clearTooltip() } override fun doClosing(delta: Float) { @@ -275,6 +279,7 @@ class ConsoleWindow : UICanvas() { )*/ textinput.isEnabled = false textinput.mouseoverUpdateLatch = false + clearTooltip() } override fun endOpening(delta: Float) { @@ -282,6 +287,7 @@ class ConsoleWindow : UICanvas() { openingTimeCounter = 0f textinput.isEnabled = true textinput.mouseoverUpdateLatch = true + clearTooltip() } override fun endClosing(delta: Float) { @@ -291,7 +297,7 @@ class ConsoleWindow : UICanvas() { // printdbg(this, "Close -- resume game") } iMadeTheGameToPause = false - Terrarum.ingame?.setTooltipMessage(null) + clearTooltip() drawOffY = -height.toFloat() openingTimeCounter = 0f } diff --git a/src/net/torvald/terrarum/ui/UICanvas.kt b/src/net/torvald/terrarum/ui/UICanvas.kt index 2a0efb14c..fd8bd50e8 100644 --- a/src/net/torvald/terrarum/ui/UICanvas.kt +++ b/src/net/torvald/terrarum/ui/UICanvas.kt @@ -137,7 +137,6 @@ abstract class UICanvas( /** A function that is run ONCE when the UI is requested to be opened; will work identical to [endOpening] if [openCloseTime] is zero */ open fun show() { openingClickLatched = true - clearTooltip() uiItems.forEach { it.show() } handler.subUIs.forEach { it.show() } } @@ -170,7 +169,7 @@ abstract class UICanvas( */ open fun doOpening(delta: Float) { handler.opacity = handler.openCloseCounter / openCloseTime - + clearTooltip() } /** @@ -178,6 +177,7 @@ abstract class UICanvas( */ open fun doClosing(delta: Float) { handler.opacity = (openCloseTime - handler.openCloseCounter) / openCloseTime + clearTooltip() } /** diff --git a/src/net/torvald/terrarum/ui/UIItemHorizontalFadeSlide.kt b/src/net/torvald/terrarum/ui/UIItemHorizontalFadeSlide.kt index 89c5d993e..1f71d1ff6 100644 --- a/src/net/torvald/terrarum/ui/UIItemHorizontalFadeSlide.kt +++ b/src/net/torvald/terrarum/ui/UIItemHorizontalFadeSlide.kt @@ -91,7 +91,7 @@ class UIItemHorizontalFadeSlide( it.posY = it.initialY } - INGAME.setTooltipMessage(null) + releaseTooltip() } override fun show() { diff --git a/src/net/torvald/terrarum/ui/UIItemInventoryElemSimple.kt b/src/net/torvald/terrarum/ui/UIItemInventoryElemSimple.kt index d4cecd289..3c94e18e7 100644 --- a/src/net/torvald/terrarum/ui/UIItemInventoryElemSimple.kt +++ b/src/net/torvald/terrarum/ui/UIItemInventoryElemSimple.kt @@ -131,8 +131,6 @@ class UIItemInventoryElemSimple( // set tooltip accordingly if (!tooltipAcquired() && mouseUp) { -// printdbg(this, "calling INGAME.setTooltipMessage by $hash") - val grey = App.fontGame.toColorCode(11, 11, 11) val itemIDstr = "\n$grey(${item?.originalID}${if (item?.isCurrentlyDynamic == true) "/${item?.dynamicID}" else ""})" val nameStr0 = if (item?.nameSecondary?.isNotBlank() == true) "${item?.name}\n$grey${item?.nameSecondary}" else "${item?.name}" diff --git a/src/net/torvald/terrarum/ui/UIItemInventoryElemWide.kt b/src/net/torvald/terrarum/ui/UIItemInventoryElemWide.kt index 8fa241e38..5c5e37874 100644 --- a/src/net/torvald/terrarum/ui/UIItemInventoryElemWide.kt +++ b/src/net/torvald/terrarum/ui/UIItemInventoryElemWide.kt @@ -159,8 +159,6 @@ class UIItemInventoryElemWide( // set tooltip accordingly if (!tooltipAcquired() && item != null && mouseUp) { -// printdbg(this, "calling INGAME.setTooltipMessage by $hash") - val grey = App.fontGame.toColorCode(11, 11, 11) val itemIDstr = "\n$grey(${item?.originalID}${if (item?.isCurrentlyDynamic == true) "/${item?.dynamicID}" else ""})" val nameStr0 = if (item?.nameSecondary?.isNotBlank() == true) "${item?.name}\n$grey${item?.nameSecondary}" else "${item?.name}"