From f6ebb1486151f5f621f6bd85fe4664b8deafa5b3 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Fri, 11 Jan 2019 03:06:02 +0900 Subject: [PATCH] tooltip positioning should work again --- src/net/torvald/terrarum/Terrarum.kt | 3 +-- .../torvald/terrarum/modulebasegame/Ingame.kt | 2 +- .../gameactors/PlayerBuilderSigrid.kt | 20 ++++++++++--------- .../gameactors/PlayerBuilderTestSubject1.kt | 2 +- .../terrarum/modulebasegame/ui/UITooltip.kt | 12 ++++++++--- 5 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/net/torvald/terrarum/Terrarum.kt b/src/net/torvald/terrarum/Terrarum.kt index 324f791cc..4fda7d570 100644 --- a/src/net/torvald/terrarum/Terrarum.kt +++ b/src/net/torvald/terrarum/Terrarum.kt @@ -86,7 +86,7 @@ object Terrarum : Screen { */ val TARGET_INTERNAL_FPS: Double = 60.0 - internal val UPDATE_CATCHUP_MAX_TRIES = 4 + internal val UPDATE_CATCHUP_MAX_TRIES = 2 // this feature does more harm than good... @@ -324,7 +324,6 @@ object Terrarum : Screen { shapeRender = ShapeRenderer() - //fontGame = GameFontBase("assets/graphics/fonts/terrarum-sans-bitmap", flipY = true) fontSmallNumbers = TinyAlphNum diff --git a/src/net/torvald/terrarum/modulebasegame/Ingame.kt b/src/net/torvald/terrarum/modulebasegame/Ingame.kt index 4bbd558d9..ebf9c6dcc 100644 --- a/src/net/torvald/terrarum/modulebasegame/Ingame.kt +++ b/src/net/torvald/terrarum/modulebasegame/Ingame.kt @@ -480,7 +480,7 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) { updateTries++ if (updateTries >= Terrarum.UPDATE_CATCHUP_MAX_TRIES) { - printdbg(this, "Update couldn't catch up -- delta-T buildup was $oldDeltaCtr seconds") + //printdbg(this, "Update couldn't catch up -- delta-T buildup was $oldDeltaCtr seconds") break } } diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderSigrid.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderSigrid.kt index 76496470d..e1308eff3 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderSigrid.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderSigrid.kt @@ -67,6 +67,13 @@ object PlayerBuilderSigrid { // Test fill up inventory + fillTestInventory(p.inventory) + + + return p + } + + fun fillTestInventory(inventory: ActorInventory) { val blocks = arrayOf( Block.AIR, Block.DIRT, Block.GLASS_CRUDE, Block.GRASS, Block.GRAVEL, Block.ICE_MAGICAL, Block.LANTERN, @@ -88,14 +95,9 @@ object PlayerBuilderSigrid { Block.SANDSTONE_RED, Block.STONE, Block.STONE_BRICKS, Block.STONE_QUARRIED, Block.STONE_TILE_WHITE ) - blocks.forEach { p.addItem(it, 999) } - walls.forEach { p.addItem(it + 4096, 999) } - p.inventory.add(ItemCodex.ITEM_STATIC.first) - p.inventory.add(9000) - - - - - return p + blocks.forEach { inventory.add(it, 9995) } + walls.forEach { inventory.add(it + 4096, 9995) } + inventory.add(ItemCodex.ITEM_STATIC.first) + inventory.add(9000) } } diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderTestSubject1.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderTestSubject1.kt index 034a5da66..a8b163dcf 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderTestSubject1.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderTestSubject1.kt @@ -29,7 +29,7 @@ object PlayerBuilderTestSubject1 { p.setPosition(3.0 * FeaturesDrawer.TILE_SIZE, 3.0 * FeaturesDrawer.TILE_SIZE) - + PlayerBuilderSigrid.fillTestInventory(p.inventory) return p diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UITooltip.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITooltip.kt index a4bcc8c51..259b13b48 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UITooltip.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITooltip.kt @@ -4,8 +4,8 @@ import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.SpriteBatch -import net.torvald.terrarum.Terrarum import net.torvald.terrarum.Second +import net.torvald.terrarum.Terrarum import net.torvald.terrarum.ui.UICanvas import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack @@ -17,15 +17,20 @@ class UITooltip : UICanvas() { override var openCloseTime: Second = 0f var message: String = "" + set(value) { + field = value + msgWidth = font.getWidth(value) + } private val textures = TextureRegionPack("assets/graphics/gui/tooltip_black.tga", 8, 36) private val font = Terrarum.fontGame + private var msgWidth = 0 val textMarginX = 4 override var width: Int - get() = font.getWidth(message) + (textMarginX + textures.tileW) * 2 + get() = msgWidth + (textMarginX + textures.tileW) * 2 set(value) { throw Error("You are not supposed to set the width of the tooltip manually.") } override var height: Int get() = textures.tileH @@ -42,7 +47,7 @@ class UITooltip : UICanvas() { val tooltipY = mouseY - textures.tileH - val txtW = font.getWidth(message) + 2f * textMarginX + val txtW = msgWidth + 2f * textMarginX batch.color = Color.WHITE batch.draw(textures.get(0, 0), mouseX, tooltipY) @@ -52,6 +57,7 @@ class UITooltip : UICanvas() { } override fun updateUI(delta: Float) { + setPosition(Terrarum.mouseScreenX, Terrarum.mouseScreenY) } override fun doOpening(delta: Float) {