package sink.json;
import sink.core.Asset;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.scenes.scene2d.ui.Touchpad;
import com.badlogic.gdx.utils.Json;
import com.badlogic.gdx.utils.JsonValue;
public class TouchpadJson extends Touchpad implements Json.Serializer<TouchpadJson> {
private float dr = 5;
public TouchpadJson(){
super(5, Asset.skin);
}
public TouchpadJson(float deadZoneRadius){
super(deadZoneRadius, Asset.skin);
dr = deadZoneRadius;
}
@Override
public TouchpadJson read(Json json, JsonValue jv, Class arg2) {
TouchpadJson tp = new TouchpadJson();
tp.setName(jv.getString("name"));
tp.setX(jv.getFloat("x"));
tp.setY(jv.getFloat("y"));
tp.setWidth(jv.getFloat("width"));
tp.setHeight(jv.getFloat("height"));
tp.setColor(Color.valueOf(jv.getString("color")));
tp.setDeadzone(jv.getFloat("deadzoneRadius"));
return tp;
}
@Override
public void write(Json json, TouchpadJson tp, Class arg2) {
json.writeObjectStart();
json.writeValue("class", tp.getClass().getName());
json.writeValue("name", tp.getName());
json.writeValue("x", tp.getX());
json.writeValue("y", tp.getY());
json.writeValue("width", tp.getWidth());
json.writeValue("height", tp.getHeight());
json.writeValue("deadzoneRadius", dr);
json.writeValue("color", tp.getColor().toString());
json.writeObjectEnd();
}
@Override
public void setDeadzone(float value){
super.setDeadzone(value);
dr = value;
}
public float getDeadzone(){
return dr;
}
}