From 0f4508986db89a19ae3bb60dfe3e012a4bd754af Mon Sep 17 00:00:00 2001 From: minjaesong Date: Wed, 20 Jul 2022 17:29:10 +0900 Subject: [PATCH] fixed a bug where ActorWithBody.mouseUp is incorrectly implemented --- src/net/torvald/terrarum/IngameInstance.kt | 4 ++++ src/net/torvald/terrarum/gameactors/ActorWithBody.kt | 5 +++++ src/net/torvald/terrarum/gameactors/Hitbox.kt | 3 ++- .../terrarum/modulebasegame/gameactors/FixtureTapestry.kt | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/net/torvald/terrarum/IngameInstance.kt b/src/net/torvald/terrarum/IngameInstance.kt index 0e16bd54a..9eb116f1a 100644 --- a/src/net/torvald/terrarum/IngameInstance.kt +++ b/src/net/torvald/terrarum/IngameInstance.kt @@ -397,6 +397,10 @@ open class IngameInstance(val batch: FlippingSpriteBatch, val isMultiplayer: Boo } } + open fun getTooltipMessage(): String { + return uiTooltip.message + } + /** * Copies most recent `save` to `save.1`, leaving `save` for overwriting, previous `save.1` will be copied to `save.2` */ diff --git a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt index 63fcbc539..bfd030523 100644 --- a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt +++ b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt @@ -580,8 +580,13 @@ open class ActorWithBody : Actor { feetPosPoint.set(hitbox.centeredX, hitbox.endY) feetPosTile.set(hIntTilewiseHitbox.centeredX.floorInt(), hIntTilewiseHitbox.endY.floorInt()) + + if (mouseUp && this.tooltipText != null) INGAME.setTooltipMessage(this.tooltipText) } + // make sure tooltip to disable even when the actor's update is paused at unfortunate time + if (!mouseUp && INGAME.getTooltipMessage() == this.tooltipText) INGAME.setTooltipMessage(null) + isStationary = (hitbox - oldHitbox).magnitudeSquared < PHYS_EPSILON_VELO } diff --git a/src/net/torvald/terrarum/gameactors/Hitbox.kt b/src/net/torvald/terrarum/gameactors/Hitbox.kt index 826485176..fcae0de6a 100644 --- a/src/net/torvald/terrarum/gameactors/Hitbox.kt +++ b/src/net/torvald/terrarum/gameactors/Hitbox.kt @@ -158,7 +158,8 @@ class Hitbox { return this } - fun containsPoint(x: Double, y: Double) = (hitboxStart.x - x) in 0.0..width && (hitboxStart.y - y) in 0.0..height + // TODO consider ROUNDWORLD + fun containsPoint(x: Double, y: Double) = (x - hitboxStart.x) in 0.0..width && (y - hitboxStart.y) in 0.0..height fun containsPoint(p: Point2d) = containsPoint(p.x, p.y) diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureTapestry.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureTapestry.kt index 257126979..a516a14b8 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureTapestry.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureTapestry.kt @@ -105,5 +105,5 @@ internal class FixtureTapestry : FixtureBase { } - override var tooltipText: String? = "$artName\n$artAuthor" + override var tooltipText: String? = "TEST\nSTRING"//if (artName.length + artAuthor.length > 0) "$artName\n$artAuthor" else null }