X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Fmobs%2FPig.kt;h=b080e4078730713b897e8a45f1e1ba3655b81239;hb=91283c3181af9700e20b5600f4e9017e0c31d33a;hp=b3d647d328aae2fd0a65f89f66b92ff3c5b0e832;hpb=90daad1796cd59f11f12589686d9afe882ddb9b1;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/mobs/Pig.kt b/core/src/ru/deadsoftware/cavedroid/game/mobs/Pig.kt index b3d647d..b080e40 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/mobs/Pig.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/mobs/Pig.kt @@ -3,6 +3,7 @@ package ru.deadsoftware.cavedroid.game.mobs 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