diff --git a/core/src/ru/deadsoftware/cavedroid/game/mobs/Pig.kt b/core/src/ru/deadsoftware/cavedroid/game/mobs/Pig.kt
index b3d647d328aae2fd0a65f89f66b92ff3c5b0e832..b080e4078730713b897e8a45f1e1ba3655b81239 100644 (file)
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.math.Vector2
import ru.deadsoftware.cavedroid.game.GameItemsHolder
+import ru.deadsoftware.cavedroid.game.model.dto.SaveDataDto
import ru.deadsoftware.cavedroid.game.model.item.InventoryItem
import ru.deadsoftware.cavedroid.misc.utils.drawSprite
import ru.deadsoftware.cavedroid.misc.utils.mobs.MobSprites.Pig.getBackgroundLeg
@@ -54,13 +55,52 @@ class Pig(x: Float, y: Float) : PeacefulMob(x, y, WIDTH, HEIGHT, randomDir(), MA
spriteBatch.drawSprite(getForegroundLeg(), leftLegX, legY, anim, tint = tintColor)
spriteBatch.drawSprite(getForegroundLeg(), rightLegX, legY, anim, tint = tintColor)
}
+
+ override fun getSaveData(): SaveDataDto.PigSaveData {
+ return SaveDataDto.PigSaveData(
+ 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
+ )
+ }
-
- private companion object {
+ companion object {
+ private const val SAVE_DATA_VERSION = 1
+
private const val WIDTH = 25f
private const val HEIGHT = 18f
private const val SPEED = 48f
private const val JUMP_VELOCITY = -133.332f
private const val MAX_HEALTH = 10
+
+ fun fromSaveData(saveData: SaveDataDto.PigSaveData): Pig {
+ saveData.verifyVersion(SAVE_DATA_VERSION)
+
+ return Pig(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