only works when it's not zoomed and not being panned

This commit is contained in:
minjaesong
2021-12-21 21:49:13 +09:00
parent 6ce4879857
commit 7a22f49850

View File

@@ -8,6 +8,7 @@ import com.badlogic.gdx.graphics.glutils.FrameBuffer
import com.badlogic.gdx.utils.GdxRuntimeException import com.badlogic.gdx.utils.GdxRuntimeException
import net.torvald.terrarum.* import net.torvald.terrarum.*
import net.torvald.terrarum.App.printdbg import net.torvald.terrarum.App.printdbg
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
import net.torvald.terrarum.blockstats.MinimapComposer import net.torvald.terrarum.blockstats.MinimapComposer
import net.torvald.terrarum.blockstats.MinimapComposer.MINIMAP_TILE_HEIGHT import net.torvald.terrarum.blockstats.MinimapComposer.MINIMAP_TILE_HEIGHT
import net.torvald.terrarum.blockstats.MinimapComposer.MINIMAP_TILE_WIDTH import net.torvald.terrarum.blockstats.MinimapComposer.MINIMAP_TILE_WIDTH
@@ -161,19 +162,25 @@ class UIInventoryMinimap(val full: UIInventoryFull) : UICanvas() {
it.getSpriteHead()?.let { t -> it.getSpriteHead()?.let { t ->
val ox = 0.5f * MINIMAP_TILE_WIDTH val ox = 0.5f * MINIMAP_TILE_WIDTH
val oy = 0.5f * MINIMAP_TILE_HEIGHT val oy = 0.5f * MINIMAP_TILE_HEIGHT
val tx = (minimapTranslateX - ox) * minimapZoom + 0.5f * MINIMAP_WIDTH
val ty = (minimapTranslateY - oy) * minimapZoom + 0.5f * MINIMAP_HEIGHT
val worldPos = it.intTilewiseHitbox val worldPos = it.intTilewiseHitbox
val cw = it.scale.toFloat() * t.regionWidth val cw = it.scale.toFloat() * t.regionWidth
val ch = it.scale.toFloat() * t.regionHeight val ch = it.scale.toFloat() * t.regionHeight
val cx = worldPos.canonicalX.toFloat() - (cw / 2) val cx = worldPos.centeredX.toFloat() + cw / 2
val cy = worldPos.canonicalY.toFloat() - (ch / 2) val cy = worldPos.startY.toFloat() + (((it.baseHitboxH - 6) * it.scale) / TILE_SIZE).toFloat()// - (ch / 2)
val dx = cx - minimapPanX
val dy = cy - minimapPanY
val dx = minimapTranslateX + (-ox + cx - minimapPanX ) * minimapZoom + 0.5f * MINIMAP_WIDTH val x = tx + dx
val dy = minimapTranslateY + (-oy + cy - minimapPanY ) * minimapZoom + 0.5f * MINIMAP_HEIGHT val y = ty + dy
printdbg(this, "map pan: ($minimapPanX,$minimapPanY);draw pos: ($x,$y)")
printdbg(this, "minimap pan: ($minimapPanX,$minimapPanY); centre head: ($dx,$dy)") if (it.sprite?.flipHorizontal == false)
batch.draw(t, x, y, cw, ch)
batch.draw(t, dx, dy, cw, ch) else
batch.draw(t, x + cw, y, -cw, ch)
} }
} }
} }