Search in sources :

Example 26 with Action

use of com.bladecoder.engine.actions.Action in project bladecoder-adventure-engine by bladecoder.

the class ActionDetector method detect.

public static void detect() {
    actions = new HashMap<String, Class<?>>();
    final TypeReporter reporter = new TypeReporter() {

        @SuppressWarnings("unchecked")
        @Override
        public Class<? extends Annotation>[] annotations() {
            return new Class[] { ActionDescription.class };
        }

        @SuppressWarnings("unchecked")
        @Override
        public void reportTypeAnnotation(Class<? extends Annotation> annotation, String className) {
            Class<Action> c = null;
            try {
                c = ClassReflection.forName(className);
            } catch (ReflectionException e) {
                EditorLogger.printStackTrace(e);
            }
            String name = ActionUtils.getName(c);
            if (!c.isAssignableFrom(EndAction.class) && !c.isAssignableFrom(DisableActionAction.class))
                actions.put(name, c);
        }
    };
    final AnnotationDetector cf = new AnnotationDetector(reporter);
    try {
        cf.detect();
    } catch (IOException e) {
        EditorLogger.printStackTrace(e);
    }
}
Also used : TypeReporter(eu.infomas.annotation.AnnotationDetector.TypeReporter) ReflectionException(com.badlogic.gdx.utils.reflect.ReflectionException) EndAction(com.bladecoder.engine.actions.EndAction) Action(com.bladecoder.engine.actions.Action) DisableActionAction(com.bladecoder.engine.actions.DisableActionAction) ActionDescription(com.bladecoder.engine.actions.ActionDescription) AnnotationDetector(eu.infomas.annotation.AnnotationDetector) IOException(java.io.IOException) Annotation(java.lang.annotation.Annotation)

Example 27 with Action

use of com.bladecoder.engine.actions.Action in project bladecoder-adventure-engine by bladecoder.

the class ElementUtils method cloneElement.

public static Object cloneElement(Object e) {
    Json json = new Json();
    if (e instanceof Action) {
        StringWriter buffer = new StringWriter();
        json.setWriter(buffer);
        ActionUtils.writeJson((Action) e, json);
        String str = buffer.toString();
        EditorLogger.debug(str);
        JsonValue root = new JsonReader().parse(str);
        return ActionUtils.readJson(json, root);
    } else {
        SerializationHelper.getInstance().setMode(Mode.MODEL);
        String str = json.toJson(e, (Class<?>) null);
        return json.fromJson(e.getClass(), str);
    }
}
Also used : Action(com.bladecoder.engine.actions.Action) StringWriter(java.io.StringWriter) JsonValue(com.badlogic.gdx.utils.JsonValue) JsonReader(com.badlogic.gdx.utils.JsonReader) Json(com.badlogic.gdx.utils.Json)

Example 28 with Action

use of com.bladecoder.engine.actions.Action in project bladecoder-adventure-engine by bladecoder.

the class InkManager method write.

@Override
public void write(Json json) {
    json.writeValue("wasInCutmode", wasInCutmode);
    if (cb == null && sCb != null)
        cb = ActionCallbackSerialization.find(sCb);
    json.writeValue("cb", ActionCallbackSerialization.find(cb));
    // SAVE ACTIONS
    json.writeArrayStart("actions");
    for (Action a : actions) {
        ActionUtils.writeJson(a, json);
    }
    json.writeArrayEnd();
    json.writeValue("ip", ip);
    json.writeArrayStart("actionsSer");
    for (Action a : actions) {
        if (a instanceof Serializable) {
            json.writeObjectStart();
            ((Serializable) a).write(json);
            json.writeObjectEnd();
        }
    }
    json.writeArrayEnd();
    // SAVE STORY
    json.writeValue("storyName", storyName);
    if (story != null) {
        try {
            json.writeValue("story", story.getState().toJson());
        } catch (Exception e) {
            EngineLogger.error(e.getMessage(), e);
        }
    }
}
Also used : Action(com.bladecoder.engine.actions.Action) Serializable(com.badlogic.gdx.utils.Json.Serializable) IOException(java.io.IOException) ReflectionException(com.badlogic.gdx.utils.reflect.ReflectionException)

Example 29 with Action

use of com.bladecoder.engine.actions.Action in project bladecoder-adventure-engine by bladecoder.

the class InkManager method cancel.

@Override
public void cancel() {
    ArrayList<Action> actions = getActions();
    for (Action c : actions) {
        if (c instanceof VerbRunner)
            ((VerbRunner) c).cancel();
    }
    ip = actions.size();
}
Also used : Action(com.bladecoder.engine.actions.Action) VerbRunner(com.bladecoder.engine.model.VerbRunner)

Example 30 with Action

use of com.bladecoder.engine.actions.Action in project bladecoder-adventure-engine by bladecoder.

the class ActionCallbackSerialization method find.

private static String find(ActionCallback cb, Verb v) {
    String id = v.getHashKey();
    if (cb == v)
        return id;
    int pos = 0;
    for (Action a : v.getActions()) {
        if (cb == a) {
            StringBuilder stringBuilder = new StringBuilder(id);
            stringBuilder.append(SEPARATION_SYMBOL).append(pos);
            return stringBuilder.toString();
        }
        pos++;
    }
    return null;
}
Also used : Action(com.bladecoder.engine.actions.Action)

Aggregations

Action (com.bladecoder.engine.actions.Action)31 DisableActionAction (com.bladecoder.engine.actions.DisableActionAction)12 EndAction (com.bladecoder.engine.actions.EndAction)11 AbstractControlAction (com.bladecoder.engine.actions.AbstractControlAction)10 AbstractIfAction (com.bladecoder.engine.actions.AbstractIfAction)10 CommentAction (com.bladecoder.engine.actions.CommentAction)10 UndoDeleteAction (com.bladecoder.engineeditor.undo.UndoDeleteAction)10 Verb (com.bladecoder.engine.model.Verb)8 InteractiveActor (com.bladecoder.engine.model.InteractiveActor)6 Scene (com.bladecoder.engine.model.Scene)6 ReflectionException (com.badlogic.gdx.utils.reflect.ReflectionException)5 SetCutmodeAction (com.bladecoder.engine.actions.SetCutmodeAction)5 BaseActor (com.bladecoder.engine.model.BaseActor)5 Array (com.badlogic.gdx.utils.Array)4 Serializable (com.badlogic.gdx.utils.Json.Serializable)4 JsonValue (com.badlogic.gdx.utils.JsonValue)4 LookAtAction (com.bladecoder.engine.actions.LookAtAction)4 SayAction (com.bladecoder.engine.actions.SayAction)4 IOException (java.io.IOException)4 CharacterActor (com.bladecoder.engine.model.CharacterActor)3