saved players position is now restored but offsetted to the right for some reason

This commit is contained in:
minjaesong
2021-10-13 22:23:28 +09:00
parent 03a854ca58
commit 3c2564ca64
12 changed files with 70 additions and 98 deletions

View File

@@ -345,12 +345,6 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) {
}
private fun postInitForNewGame() {
// go to spawn position
printdbg(this, "World Spawn position: (${world.spawnX}, ${world.spawnY})")
// worldSavefileName = "$savegameNickname-${world.worldIndex}"
// playerSavefileName = (actorGamer.actorValue.getAsString(AVKey.NAME) ?: "Player") + "-${actorGamer.uuid}"
worldSavefileName = LoadSavegame.getWorldSavefileName(savegameNickname, world)
playerSavefileName = LoadSavegame.getPlayerSavefileName(actorGamer)
@@ -366,6 +360,8 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) {
Common.CHARSET
)
// go to spawn position
printdbg(this, "World Spawn position: (${world.spawnX}, ${world.spawnY})")
actorGamer.setPosition(
world.spawnX * TILE_SIZED,
world.spawnY * TILE_SIZED

View File

@@ -1,16 +1,5 @@
package net.torvald.terrarum.modulebasegame.console
import net.torvald.terrarum.App
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.Terrarum.ingame
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.gameactors.IngamePlayer
import net.torvald.terrarum.serialise.WriteActor
import net.torvald.terrarum.serialise.WriteWorld
import java.io.IOException
/**
* Created by minjaesong on 2017-07-18.
*/
@@ -34,7 +23,7 @@ import java.io.IOException
}
}*/
object ExportWorld : ConsoleCommand {
/*object ExportWorld : ConsoleCommand {
override fun execute(args: Array<String>) {
if (args.size == 2) {
try {
@@ -57,9 +46,9 @@ object ExportWorld : ConsoleCommand {
override fun printUsage() {
Echo("Usage: Exportworld filename-without-extension")
}
}
}*/
object ExportActor : ConsoleCommand {
/*object ExportActor : ConsoleCommand {
override fun execute(args: Array<String>) {
if (args.size == 2) {
try {
@@ -89,4 +78,4 @@ object ExportActor : ConsoleCommand {
Echo("Usage: exportactor (id) filename-without-extension")
Echo("blank ID for player")
}
}
}*/

View File

@@ -78,18 +78,18 @@ class IngamePlayer : ActorHumanoid {
* reassembleSprite(this.sprite, this.spriteGlow)
* ```
*/
fun reassembleSprite(sprite: SpriteAnimation?, anim: ADProperties?, spriteGlow: SpriteAnimation? = null, animGlow: ADProperties? = null) {
if (anim != null && sprite != null)
_rebuild(anim, sprite)
if (animGlow != null && spriteGlow != null)
_rebuild(animGlow, spriteGlow)
fun reassembleSprite(sprite: SpriteAnimation?, spriteGlow: SpriteAnimation? = null) {
if (animDesc != null && sprite != null)
_rebuild(animDesc!!, sprite)
if (animDescGlow != null && spriteGlow != null)
_rebuild(animDescGlow!!, spriteGlow)
}
fun reassembleSprite(disk: SimpleFileSystem, sprite: SpriteAnimation?, anim: ADProperties?, spriteGlow: SpriteAnimation? = null, animGlow: ADProperties? = null) {
if (anim != null && sprite != null)
_rebuild(disk, anim, sprite)
if (animGlow != null && spriteGlow != null)
_rebuild(disk, animGlow, spriteGlow)
fun reassembleSprite(disk: SimpleFileSystem, sprite: SpriteAnimation?, spriteGlow: SpriteAnimation? = null) {
if (animDesc != null && sprite != null)
_rebuild(disk, animDesc!!, sprite)
if (animDescGlow != null && spriteGlow != null)
_rebuild(disk, animDescGlow!!, spriteGlow)
}
private fun _rebuild(ad: ADProperties, sprite: SpriteAnimation) {

View File

@@ -2,9 +2,7 @@ package net.torvald.terrarum.modulebasegame.gameactors
import net.torvald.spriteanimation.SpriteAnimation
import net.torvald.terrarum.ModMgr
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.worlddrawer.CreateTileAtlas
/**
* Created by minjaesong on 2017-02-10.
@@ -31,7 +29,7 @@ object PlayerBuilderTestSubject1 {
p.sprite = SpriteAnimation(p)
p.spriteGlow = SpriteAnimation(p)
p.reassembleSprite(p.sprite, p.animDesc, p.spriteGlow, p.animDescGlow)
p.reassembleSprite(p.sprite, p.spriteGlow)
p.setHitboxDimension(15, p.actorValue.getAsInt(AVKey.BASEHEIGHT) ?: ActorHumanoid.BASE_HEIGHT, 21, 0)
// ingame must teleport the player to the spawn point

View File

@@ -4,7 +4,6 @@ import net.torvald.spriteanimation.SpriteAnimation
import net.torvald.terrarum.ModMgr
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.worlddrawer.CreateTileAtlas
/**
* Created by minjaesong on 2021-07-07.
@@ -31,7 +30,7 @@ object PlayerBuilderWerebeastTest {
p.sprite = SpriteAnimation(p)
p.spriteGlow = SpriteAnimation(p)
p.reassembleSprite(p.sprite, p.animDesc, p.spriteGlow, p.animDescGlow)
p.reassembleSprite(p.sprite, p.spriteGlow)
p.setHitboxDimension(22, p.actorValue.getAsInt(AVKey.BASEHEIGHT)!!, 30, 0)
p.setPosition(3.0 * TILE_SIZE, 3.0 * TILE_SIZE)

View File

@@ -459,13 +459,13 @@ class UIItemPlayerCells(
skimmer.getFile(-1L)?.bytes?.let {
val animFile = skimmer.getFile(-2L)!!
val p = ReadPlayer(skimmer, ByteArray64Reader(it, Common.CHARSET))
val sprite = SpriteAnimation(p)
val animDesc = ADProperties(ByteArray64Reader(animFile.bytes, Common.CHARSET))
p.reassembleSprite(skimmer, sprite, animDesc)
sprite.textureRegion.get(0,0).let {
p.sprite = SpriteAnimation(p)
p.animDesc = ADProperties(ByteArray64Reader(animFile.bytes, Common.CHARSET))
p.reassembleSprite(skimmer, p.sprite)
p.sprite!!.textureRegion.get(0,0).let {
thumb = it
}
this.sprite = sprite
this.sprite = p.sprite
}
hasTexture = true