diff --git a/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java b/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java
index e4ca679cb43c5a68430d521889459c1958e6c439..3ee37d37e626914cef7b41e55c151c42ec743c3b 100644 (file)
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Timer;
+import org.jetbrains.annotations.Nullable;
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;
import java.util.Collections;
import java.util.List;
/**
* Mob class.
*/
-public abstract class Mob extends Rectangle implements Serializable {
+public abstract class Mob extends Rectangle implements 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;
+ private boolean mTakingDamage = false;
+
+ @Nullable
+ private ResetTakeDamageTask mResetTakeDamageTask = null;
/**
* @param x in pixels
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);
+ }
}