mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-12 03:24:06 +09:00
fixed a bug when loading a packaged player, loading a spriteglow would read normal sprite's data instead
This commit is contained in:
@@ -24,6 +24,9 @@ import net.torvald.terrarum.savegame.EntryFile
|
||||
import net.torvald.terrarum.serialise.Common
|
||||
import net.torvald.terrarum.serialise.SaveLoadError
|
||||
import net.torvald.terrarum.modulebasegame.serialise.LoadSavegame
|
||||
import net.torvald.terrarum.savegame.VDFileID.BODYPART_TO_ENTRY_MAP
|
||||
import net.torvald.terrarum.savegame.VDFileID.SAVEGAMEINFO
|
||||
import net.torvald.terrarum.savegame.VDFileID.SPRITEDEF
|
||||
import net.torvald.terrarum.spriteassembler.ADProperties
|
||||
import net.torvald.terrarum.spriteassembler.ADProperties.Companion.EXTRA_HEADROOM_X
|
||||
import net.torvald.terrarum.spriteassembler.ADProperties.Companion.EXTRA_HEADROOM_Y
|
||||
@@ -497,7 +500,7 @@ class UIItemPlayerCells(
|
||||
private var playerUUID: UUID? = null
|
||||
|
||||
init {
|
||||
skimmer.getFile(-1L)?.bytes?.let {
|
||||
skimmer.getFile(SAVEGAMEINFO)?.bytes?.let {
|
||||
val json = JsonReader().parse(ByteArray64Reader(it, Common.CHARSET))
|
||||
|
||||
playerUUID = UUID.fromString(json["uuid"]?.asString())
|
||||
@@ -554,15 +557,15 @@ class UIItemPlayerCells(
|
||||
override fun render(batch: SpriteBatch, camera: Camera) {
|
||||
// try to generate a texture
|
||||
if (skimmer.initialised && !hasTexture) {
|
||||
skimmer.getFile(-1L)?.bytes?.let {
|
||||
skimmer.getFile(SAVEGAMEINFO)?.bytes?.let {
|
||||
try {
|
||||
printdbg(this, "Generating portrait for $playerName")
|
||||
val frameName = "ANIM_IDLE_1"
|
||||
val animFile = skimmer.getFile(-2L)!!
|
||||
val animFile = skimmer.getFile(SPRITEDEF)!!
|
||||
val props = ADProperties(ByteArray64Reader(animFile.bytes, Common.CHARSET))
|
||||
|
||||
val imagesSelfContained = skimmer.hasEntry(-1025L)
|
||||
val bodypartMapping = Properties().also { if (imagesSelfContained) it.load(ByteArray64Reader(skimmer.getFile(-1025L)!!.bytes, Common.CHARSET)) }
|
||||
val imagesSelfContained = skimmer.hasEntry(BODYPART_TO_ENTRY_MAP)
|
||||
val bodypartMapping = Properties().also { if (imagesSelfContained) it.load(ByteArray64Reader(skimmer.getFile(BODYPART_TO_ENTRY_MAP)!!.bytes, Common.CHARSET)) }
|
||||
|
||||
val fileGetter = if (imagesSelfContained)
|
||||
AssembleSheetPixmap.getVirtualDiskFileGetter(bodypartMapping, skimmer)
|
||||
|
||||
@@ -20,6 +20,7 @@ import net.torvald.terrarum.savegame.ByteArray64Reader
|
||||
import net.torvald.terrarum.savegame.VirtualDisk
|
||||
import net.torvald.terrarum.serialise.Common
|
||||
import net.torvald.terrarum.modulebasegame.serialise.ReadActor
|
||||
import net.torvald.terrarum.savegame.VDFileID.SAVEGAMEINFO
|
||||
import net.torvald.terrarum.ui.*
|
||||
import net.torvald.terrarum.utils.RandomWordsName
|
||||
|
||||
@@ -91,7 +92,7 @@ class UINewWorld(val remoCon: UIRemoCon) : UICanvas() {
|
||||
// printdbg(this, "generate! Size=${sizeSelector.selection}, Name=${nameInput.getTextOrPlaceholder()}, Seed=${seedInput.getTextOrPlaceholder()}")
|
||||
|
||||
val ingame = TerrarumIngame(App.batch)
|
||||
val player = ReadActor.invoke(UILoadGovernor.playerDisk!!, ByteArray64Reader(UILoadGovernor.playerDisk!!.getFile(-1L)!!.bytes, Common.CHARSET)) as IngamePlayer
|
||||
val player = ReadActor.invoke(UILoadGovernor.playerDisk!!, ByteArray64Reader(UILoadGovernor.playerDisk!!.getFile(SAVEGAMEINFO)!!.bytes, Common.CHARSET)) as IngamePlayer
|
||||
val seed = try {
|
||||
seedInput.getTextOrPlaceholder().toLong()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user