diff --git a/core/src/ru/deadsoftware/cavedroid/game/mobs/FallingBlock.kt b/core/src/ru/deadsoftware/cavedroid/game/mobs/FallingBlock.kt
index f2735044aee27572ed2045f7f0978712aabeb4a9..d4494a30b5ae531f141a3b4fc7b13ef729590e76 100644 (file)
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
y: Float,
) : Mob(x, y, 1.px, 1.px, Direction.RIGHT, Type.FALLING_BLOCK, Int.MAX_VALUE) {
- @Transient
private var _block: Block? = null
init {
) {
_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