package gr.sullenart.games.fruitcatcher.screens;
import gr.sullenart.games.fruitcatcher.view.FallingObjectState;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.Json;
import com.badlogic.gdx.utils.Json.Serializable;
import com.badlogic.gdx.utils.JsonValue;
public class GameScreenState implements Serializable {
public long lastFruitTime;
public long lastBadObjectTime;
public long lastBonusItemTime;
public long startGameTime;
public int basketX;
public boolean isPaused;
public boolean isStarted;
public boolean isFinished;
public int score;
public int secondsRemaining;
public Array<FallingObjectState> fallingObjectStates;
public GameScreenState() {
fallingObjectStates = new Array<FallingObjectState>();
}
@Override
public void write(Json json) {
json.writeValue("startGameTime", startGameTime);
json.writeValue("lastBadObjectTime", lastBadObjectTime);
json.writeValue("lastBonusItemTime", lastBonusItemTime);
json.writeValue("lastFruitTime", lastFruitTime);
json.writeValue("isPaused", isPaused);
json.writeValue("isStarted", isStarted);
json.writeValue("basketX", basketX);
json.writeValue("score", score);
json.writeValue("secondsRemaining", secondsRemaining);
json.writeValue("isFinished", isFinished);
json.writeArrayStart("fallingObjects");
for(FallingObjectState fallingObjectState: fallingObjectStates) {
json.writeValue(fallingObjectState, FallingObjectState.class);
}
json.writeArrayEnd();
}
@SuppressWarnings("unchecked")
@Override
public void read(Json json, JsonValue jsonData) {
startGameTime = json.readValue("startGameTime", Long.class, jsonData);
lastBadObjectTime = json.readValue("lastBadObjectTime", Long.class, jsonData);
lastBonusItemTime = json.readValue("lastBonusItemTime", Long.class, jsonData);
lastFruitTime = json.readValue("lastFruitTime", Long.class, jsonData);
score = json.readValue("score", Integer.class, jsonData);
basketX = json.readValue("basketX", Integer.class, jsonData);
isPaused = json.readValue("isPaused", Boolean.class, jsonData);
isStarted = json.readValue("isStarted", Boolean.class, jsonData);
isFinished = json.readValue("isFinished", Boolean.class, jsonData);
secondsRemaining = json.readValue("secondsRemaining", Integer.class, jsonData);
fallingObjectStates = json.readValue( "fallingObjects", Array.class,
FallingObjectState.class, jsonData );
}
}