diff --git a/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java b/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java
index e4ca679cb43c5a68430d521889459c1958e6c439..0f3610b61c36d0d516c744d7158abfa348a5fbd5 100644 (file)
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Timer;
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.game.model.item.Item;
import ru.deadsoftware.cavedroid.game.world.GameWorld;
+import ru.deadsoftware.cavedroid.misc.Saveable;
import javax.annotation.CheckForNull;
import java.io.Serializable;
/**
* Mob class.
*/
-public abstract class Mob extends Rectangle implements Serializable {
+public abstract class Mob extends Rectangle implements Serializable, Saveable {
private static final float DAMAGE_TINT_TIMEOUT_S = 0.5f;
private static final Color DAMAGE_TINT_COLOR = new Color(0xff8080ff);
protected int mAnimDelta = ANIMATION_SPEED;
protected float mAnim;
- private Direction mDirection;
+ protected Direction mDirection;
protected boolean mDead;
- private boolean mCanJump;
- private boolean mFlyMode;
+ protected boolean mCanJump;
+ protected boolean mFlyMode;
- private final int mMaxHealth;
- private int mHealth;
+ protected int mMaxHealth;
+ protected int mHealth;
private transient boolean mTakingDamage = false;
@CheckForNull private transient ResetTakeDamageTask mResetTakeDamageTask = null;
public abstract float getSpeed();
public abstract void jump();
+
+ @Override
+ public abstract SaveDataDto.MobSaveDataDto getSaveData();
+
+ public static Mob fromSaveData(SaveDataDto.MobSaveDataDto saveData) {
+ return MobSaveDataMapperKt.fromSaveData(saveData);
+ }
}