diff --git a/src/net/torvald/terrarum/gameactors/ActorWithSprite.kt b/src/net/torvald/terrarum/gameactors/ActorWithSprite.kt index 2f08a9e75..ad8bc8508 100644 --- a/src/net/torvald/terrarum/gameactors/ActorWithSprite.kt +++ b/src/net/torvald/terrarum/gameactors/ActorWithSprite.kt @@ -1028,59 +1028,35 @@ open class ActorWithSprite(renderOrder: ActorOrder, val immobileBody: Boolean = if (isVisible && spriteGlow != null) { blendLightenOnly() - if (!sprite!!.flippedHorizontal()) { - val offsetX = hitboxTranslateX * scale + val offsetX = if (!spriteGlow!!.flippedHorizontal()) + hitboxTranslateX * scale + else + spriteGlow!!.cellWidth * scale - (hitbox.width + hitboxTranslateX * scale) - if (MapCamera.xCentre > leftsidePadding && centrePosPoint.x <= rightsidePadding) { - // camera center neg, actor center pos - spriteGlow!!.render(g, - (hitbox.posX - offsetX).toFloat() + world.width * TILE_SIZE, - (hitbox.posY + hitboxTranslateY * scale).toFloat(), - (scale).toFloat() - ) - } - else if (MapCamera.xCentre < rightsidePadding && centrePosPoint.x >= leftsidePadding) { - // camera center pos, actor center neg - spriteGlow!!.render(g, - (hitbox.posX - offsetX).toFloat() - world.width * TILE_SIZE, - (hitbox.posY + hitboxTranslateY * scale).toFloat(), - (scale).toFloat() - ) - } - else { - sprite!!.render(g, - (hitbox.posX - offsetX).toFloat(), - (hitbox.posY + hitboxTranslateY * scale).toFloat(), - (scale).toFloat() - ) - } + val offsetY = spriteGlow!!.cellHeight * scale - hitbox.height - hitboxTranslateY * scale - 2 + + if (MapCamera.xCentre > leftsidePadding && centrePosPoint.x <= rightsidePadding) { + // camera center neg, actor center pos + spriteGlow!!.render(g, + (hitbox.posX - offsetX).toFloat() + world.width * TILE_SIZE, + (hitbox.posY - offsetY).toFloat(), + (scale).toFloat() + ) + } + else if (MapCamera.xCentre < rightsidePadding && centrePosPoint.x >= leftsidePadding) { + // camera center pos, actor center neg + spriteGlow!!.render(g, + (hitbox.posX - offsetX).toFloat() - world.width * TILE_SIZE, + (hitbox.posY - offsetY).toFloat(), + (scale).toFloat() + ) } else { - val offsetX = spriteGlow!!.cellWidth - (hitbox.width + hitboxTranslateX * scale) - - if (MapCamera.xCentre > leftsidePadding && centrePosPoint.x <= rightsidePadding) { - // camera center neg, actor center pos - spriteGlow!!.render(g, - (hitbox.posX - offsetX).toFloat() + world.width * TILE_SIZE, - (hitbox.posY + hitboxTranslateY * scale).toFloat(), - (scale).toFloat() - ) - } - else if (MapCamera.xCentre < rightsidePadding && centrePosPoint.x >= leftsidePadding) { - // camera center pos, actor center neg - spriteGlow!!.render(g, - (hitbox.posX - offsetX).toFloat() - world.width * TILE_SIZE, - (hitbox.posY + hitboxTranslateY * scale).toFloat(), - (scale).toFloat() - ) - } - else { - spriteGlow!!.render(g, - (hitbox.posX - offsetX).toFloat(), - (hitbox.posY + hitboxTranslateY * scale).toFloat(), - (scale).toFloat() - ) - } + spriteGlow!!.render(g, + (hitbox.posX - offsetX).toFloat(), + (hitbox.posY - offsetY).toFloat(), + (scale).toFloat() + ) } } } @@ -1097,60 +1073,37 @@ open class ActorWithSprite(renderOrder: ActorOrder, val immobileBody: Boolean = BLEND_SCREEN -> blendScreen() } - if (!sprite!!.flippedHorizontal()) { - val offsetX = hitboxTranslateX * scale + val offsetX = if (!sprite!!.flippedHorizontal()) + hitboxTranslateX * scale + else + sprite!!.cellWidth * scale - (hitbox.width + hitboxTranslateX * scale) - if (MapCamera.xCentre > leftsidePadding && centrePosPoint.x <= rightsidePadding) { - // camera center neg, actor center pos - sprite!!.render(g, - (hitbox.posX - offsetX).toFloat() + world.width * TILE_SIZE, - (hitbox.posY + hitboxTranslateY * scale).toFloat(), - (scale).toFloat() - ) - } - else if (MapCamera.xCentre < rightsidePadding && centrePosPoint.x >= leftsidePadding) { - // camera center pos, actor center neg - sprite!!.render(g, - (hitbox.posX - offsetX).toFloat() - world.width * TILE_SIZE, - (hitbox.posY + hitboxTranslateY * scale).toFloat(), - (scale).toFloat() - ) - } - else { - sprite!!.render(g, - (hitbox.posX - offsetX).toFloat(), - (hitbox.posY + hitboxTranslateY * scale).toFloat(), - (scale).toFloat() - ) - } + val offsetY = sprite!!.cellHeight * scale - hitbox.height - hitboxTranslateY * scale - 2 + + if (MapCamera.xCentre > leftsidePadding && centrePosPoint.x <= rightsidePadding) { + // camera center neg, actor center pos + sprite!!.render(g, + (hitbox.posX - offsetX).toFloat() + world.width * TILE_SIZE, + (hitbox.posY - offsetY).toFloat(), + (scale).toFloat() + ) + } + else if (MapCamera.xCentre < rightsidePadding && centrePosPoint.x >= leftsidePadding) { + // camera center pos, actor center neg + sprite!!.render(g, + (hitbox.posX - offsetX).toFloat() - world.width * TILE_SIZE, + (hitbox.posY - offsetY).toFloat(), + (scale).toFloat() + ) } else { - val offsetX = sprite!!.cellWidth - (hitbox.width + hitboxTranslateX * scale) - - if (MapCamera.xCentre > leftsidePadding && centrePosPoint.x <= rightsidePadding) { - // camera center neg, actor center pos - sprite!!.render(g, - (hitbox.posX - offsetX).toFloat() + world.width * TILE_SIZE, - (hitbox.posY + hitboxTranslateY * scale).toFloat(), - (scale).toFloat() - ) - } - else if (MapCamera.xCentre < rightsidePadding && centrePosPoint.x >= leftsidePadding) { - // camera center pos, actor center neg - sprite!!.render(g, - (hitbox.posX - offsetX).toFloat() - world.width * TILE_SIZE, - (hitbox.posY + hitboxTranslateY * scale).toFloat(), - (scale).toFloat() - ) - } - else { - sprite!!.render(g, - (hitbox.posX - offsetX).toFloat(), - (hitbox.posY + hitboxTranslateY * scale).toFloat(), - (scale).toFloat() - ) - } + sprite!!.render(g, + (hitbox.posX - offsetX).toFloat(), + (hitbox.posY - offsetY).toFloat(), + (scale).toFloat() + ) } + } } diff --git a/src/net/torvald/terrarum/gameactors/PlayerBuilderSigrid.kt b/src/net/torvald/terrarum/gameactors/PlayerBuilderSigrid.kt index 7e40eee1a..08bc69dec 100644 --- a/src/net/torvald/terrarum/gameactors/PlayerBuilderSigrid.kt +++ b/src/net/torvald/terrarum/gameactors/PlayerBuilderSigrid.kt @@ -64,7 +64,7 @@ object PlayerBuilderSigrid { //p.actorValue["__selectedtile"] = 147 // test code; replace with .primaryUse(gc, delta) p.actorValue["__aimhelper"] = true // TODO when you'll gonna implement it? - p.setHitboxDimension(15, p.actorValue.getAsInt(AVKey.BASEHEIGHT)!!, 11, -2) // FIXME offsetY of -2: Have no idea about the error; it's just supposed to be zero + p.setHitboxDimension(15, p.actorValue.getAsInt(AVKey.BASEHEIGHT)!!, 11, 0) // FIXME offsetY of -2: Have no idea about the error; it's just supposed to be zero p.inventory = ActorInventory(0x7FFFFFFF, true)