package sink.json; import sink.core.Asset; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.utils.Json; import com.badlogic.gdx.utils.JsonValue; public class LabelJson extends Label implements Json.Serializer<LabelJson> { private String fontName = ""; public LabelJson(){ super("", Asset.skin); } public LabelJson(String text, String fontName){ super(text, new LabelStyle(Asset.font(fontName), Color.WHITE)); this.fontName = fontName; } @Override public LabelJson read(Json json, JsonValue jv, Class arg2) { LabelJson label = new LabelJson(jv.getString("text"),jv.getString("fontName")); label.setName(jv.getString("name")); label.setX(jv.getFloat("x")); label.setY(jv.getFloat("y")); label.setWidth(jv.getFloat("width")); label.setHeight(jv.getFloat("height")); label.setColor(Color.valueOf(jv.getString("color"))); return label; } @Override public void write(Json json, LabelJson label, Class arg2) { json.writeObjectStart(); json.writeValue("class", label.getClass().getName()); json.writeValue("name", label.getName()); json.writeValue("x", label.getX()); json.writeValue("y", label.getY()); json.writeValue("width", label.getWidth()); json.writeValue("height", label.getHeight()); json.writeValue("text", label.getText().toString()); json.writeValue("fontName", label.getFontName()); json.writeValue("color", label.getColor().toString()); json.writeObjectEnd(); } public String getFontName(){ return fontName; } }