mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 20:31:51 +09:00
resolving issue #12
Former-commit-id: eee32f1d3b74a431626888ab32166e0cad14f522 Former-commit-id: e58fecf50f193d695f7a7852117183486a12cc62
This commit is contained in:
@@ -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()
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ object PlayerBuilderSigrid {
|
||||
//p.actorValue["__selectedtile"] = 147 // test code; replace with <tile_item>.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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user