package scene2d;
import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.badlogic.gdx.utils.Json;
import com.badlogic.gdx.utils.JsonValue;
public class ImageJson extends Image implements Json.Serializer<ImageJson> {
private String texName = "";
public EffectType effectType = EffectType.None;
public float effectValue = 0f;
public float effectDuration = 0f;
public InterpolationType interpolationType = InterpolationType.Linear;
public float addActorDelay = 0f;
public float addEffectDelay = 0f;
public EventType evtType = EventType.None;
public Scene.OnEventType onEvtType = Scene.OnEventType.DoEffect;
public String eventScene = "";
public ImageJson(){
}
/*
* The texture name
* */
public ImageJson(String texName){
super(Asset.tex(texName));
this.texName = texName;
}
@Override
public ImageJson read(Json arg0, JsonValue jv, Class arg2) {
final ImageJson image = new ImageJson(jv.getString("texName"));
Serializer.ActorSerializer.readActor(jv, image);
image.effectType = EffectType.valueOf(jv.getString("effect"));
image.effectDuration = jv.getFloat("duration");
image.effectValue = jv.getFloat("value");
image.interpolationType = InterpolationType.valueOf(jv.getString("interpolation"));
image.addActorDelay = jv.getFloat("addActorDelay");
image.addEffectDelay = jv.getFloat("addEffectDelay");
image.evtType = EventType.valueOf(jv.getString("event"));
image.onEvtType = Scene.OnEventType.valueOf(jv.getString("onEvent"));
image.eventScene = jv.getString("eventScene");
createEvent(image);
return image;
}
void createEvent(final ImageJson image){
switch(image.evtType){
case SceneCreated:
checkOnEventType(image);
break;
case Clicked:
break;
case Dispose:
break;
case Dragged:
break;
case GestureDown:
break;
case GestureLeft:
break;
case GestureRight:
break;
case GestureUp:
break;
case Moved:
break;
case Pause:
break;
case Resume:
break;
case TouchedDown:
break;
case TouchedUp:
break;
case None:
break;
default:
break;
}
}
void checkOnEventType(ImageJson image){
switch(image.onEvtType){
case DoEffect:Effect.createEffect(image);break;
//case SetScene:Stage.setScene(image.eventScene);break;
default:break;
}
}
@Override
public void write(Json json, ImageJson image, Class arg2) {
json.writeObjectStart();
Serializer.ActorSerializer.writeActor(json, image);
json.writeValue("texName", image.getTexName());
json.writeValue("effect", image.effectType.toString());
json.writeValue("value", image.effectValue);
json.writeValue("duration", image.effectDuration);
json.writeValue("interpolation", image.interpolationType.toString());
json.writeValue("addActorDelay", image.addActorDelay);
json.writeValue("addEffectDelay", image.addActorDelay);
json.writeValue("event", image.evtType.toString());
json.writeValue("onEvent", image.onEvtType.toString());
json.writeValue("eventScene", image.eventScene);
json.writeObjectEnd();
}
public String getTexName(){
return texName;
}
}