X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Fmobs%2FFallingBlock.kt;h=d4494a30b5ae531f141a3b4fc7b13ef729590e76;hb=91283c3181af9700e20b5600f4e9017e0c31d33a;hp=f2735044aee27572ed2045f7f0978712aabeb4a9;hpb=6bb7e1d207c640ff3b8e41ce2fb1c6203985bdb1;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/mobs/FallingBlock.kt b/core/src/ru/deadsoftware/cavedroid/game/mobs/FallingBlock.kt index f273504..d4494a3 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/mobs/FallingBlock.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/mobs/FallingBlock.kt @@ -3,6 +3,7 @@ package ru.deadsoftware.cavedroid.game.mobs import com.badlogic.gdx.graphics.g2d.SpriteBatch import ru.deadsoftware.cavedroid.game.GameItemsHolder import ru.deadsoftware.cavedroid.game.model.block.Block +import ru.deadsoftware.cavedroid.game.model.dto.SaveDataDto import ru.deadsoftware.cavedroid.game.world.GameWorld import ru.deadsoftware.cavedroid.misc.utils.bl import ru.deadsoftware.cavedroid.misc.utils.px @@ -13,7 +14,6 @@ class FallingBlock( y: Float, ) : Mob(x, y, 1.px, 1.px, Direction.RIGHT, Type.FALLING_BLOCK, Int.MAX_VALUE) { - @Transient private var _block: Block? = null init { @@ -50,4 +50,47 @@ class FallingBlock( ) { _block?.draw(spriteBatch, x, y) } + + override fun getSaveData(): SaveDataDto.FallingBlockSaveData { + return SaveDataDto.FallingBlockSaveData( + version = SAVE_DATA_VERSION, + x = x, + y = y, + width = width, + height = height, + velocityX = velocity.x, + velocityY = velocity.y, + type = mType, + animDelta = mAnimDelta, + anim = mAnim, + direction = mDirection, + dead = mDead, + canJump = mCanJump, + flyMode = mFlyMode, + maxHealth = mMaxHealth, + health = mHealth, + blockKey = blockKey, + ) + } + + companion object { + private const val SAVE_DATA_VERSION = 1 + + fun fromSaveData(saveData: SaveDataDto.FallingBlockSaveData): FallingBlock { + saveData.verifyVersion(SAVE_DATA_VERSION) + + return FallingBlock(saveData.blockKey, saveData.x, saveData.y).apply { + velocity.x = saveData.velocityX + velocity.y = saveData.velocityY + mAnimDelta = saveData.animDelta + mAnim = saveData.anim + mDirection = saveData.direction + mDead = saveData.dead + mCanJump = saveData.canJump + mFlyMode = saveData.flyMode + mMaxHealth = saveData.maxHealth + mHealth = saveData.health + } + } + } } \ No newline at end of file