tooltipmanager

This commit is contained in:
minjaesong
2024-10-11 15:02:11 +09:00
parent 048777a845
commit 60e54c2bc0
29 changed files with 118 additions and 238 deletions

View File

@@ -6,6 +6,7 @@ import net.torvald.terrarum.App.printdbg
import net.torvald.terrarum.App.printdbgerr
import net.torvald.terrarum.INGAME
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.TooltipListener
import net.torvald.terrarum.audio.AudioBank
import net.torvald.terrarum.audio.audiobank.MusicContainer
import net.torvald.terrarum.audio.TerrarumAudioMixerTrack
@@ -27,7 +28,7 @@ typealias ActorID = Int
*
* Created by minjaesong on 2015-12-31.
*/
abstract class Actor : Comparable<Actor>, Runnable {
abstract class Actor(): TooltipListener(), Comparable<Actor>, Runnable {
/**
* Valid RefID is equal to or greater than 16777216.
@@ -42,7 +43,6 @@ abstract class Actor : Comparable<Actor>, Runnable {
*/
var renderOrder = RenderOrder.MIDDLE
protected constructor()
// needs zero-arg constructor for serialiser to work
constructor(renderOrder: RenderOrder, id: ActorID?) : this() {

View File

@@ -23,7 +23,6 @@ import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
import net.torvald.terrarum.modulebasegame.gameactors.IngamePlayer
import net.torvald.terrarum.modulebasegame.gameactors.Pocketed
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
import net.torvald.terrarum.realestate.LandUtil
import net.torvald.terrarum.worlddrawer.CreateTileAtlas
import net.torvald.terrarum.worlddrawer.WorldCamera
@@ -98,8 +97,6 @@ open class ActorWithBody : Actor {
val mouseUp: Boolean
get() = hitbox.containsPoint((world?.width ?: 0) * TILE_SIZED, Terrarum.mouseX, Terrarum.mouseY)
@Transient protected val tooltipHash = System.nanoTime()
var hitboxTranslateX: Int = 0// relative to spritePosX
protected set
var hitboxTranslateY: Int = 0// relative to spritePosY
@@ -702,14 +699,13 @@ open class ActorWithBody : Actor {
else submergedHeight / hitbox.height
if (mouseUp && tooltipText != null && tooltipShowing[tooltipHash] != true) {
INGAME.setTooltipMessage(tooltipText)
tooltipShowing[tooltipHash] = true
if (mouseUp && tooltipText != null && !tooltipAcquired()) {
acquireTooltip(tooltipText)
}
}
if (tooltipText == null || !mouseUp || flagDespawn) {
tooltipShowing[tooltipHash] = false
releaseTooltip()
}
// isStationary = (hitbox - oldHitbox).magnitudeSquared < PHYS_EPSILON_VELO
@@ -1980,7 +1976,7 @@ open class ActorWithBody : Actor {
internal open fun flagDespawn() {
flagDespawn = true
tooltipShowing.remove(tooltipHash)
removeFromTooltipRecord()
}
open fun getSpriteHead(): TextureRegion? {
@@ -2316,7 +2312,7 @@ open class ActorWithBody : Actor {
App.disposables.add(sprite)
App.disposables.add(spriteGlow)
App.disposables.add(spriteEmissive)
tooltipShowing.remove(tooltipHash)
removeFromTooltipRecord()
}
}