Search in sources :

Example 1 with Dialog

use of com.bladecoder.engine.model.Dialog in project bladecoder-adventure-engine by bladecoder.

the class SetDialogOptionAttrAction method run.

@Override
public boolean run(VerbRunner cb) {
    final Scene s = actor.getScene();
    CharacterActor a = (CharacterActor) s.getActor(actor.getActorId(), true);
    Dialog d = a.getDialog(dialog);
    if (d == null) {
        EngineLogger.error("SetDialogOptionAttrAction: Dialog '" + dialog + "' not found");
        return false;
    }
    DialogOption o = d.getOptions().get(option);
    if (o == null) {
        EngineLogger.error("SetDialogOptionAttrAction: Option '" + option + "' not found");
        return false;
    }
    if (visible != null)
        o.setVisible(visible);
    return false;
}
Also used : Dialog(com.bladecoder.engine.model.Dialog) Scene(com.bladecoder.engine.model.Scene) CharacterActor(com.bladecoder.engine.model.CharacterActor) DialogOption(com.bladecoder.engine.model.DialogOption)

Example 2 with Dialog

use of com.bladecoder.engine.model.Dialog in project bladecoder-adventure-engine by bladecoder.

the class ModelTools method checkI18NMissingKeys.

public static final void checkI18NMissingKeys() throws NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
    Map<String, Scene> scenes = World.getInstance().getScenes();
    for (Scene scn : scenes.values()) {
        Map<String, BaseActor> actors = scn.getActors();
        // SCENE VERBS
        HashMap<String, Verb> verbs = scn.getVerbManager().getVerbs();
        for (Verb v : verbs.values()) {
            ArrayList<Action> actions = v.getActions();
            for (Action act : actions) {
                String[] params = ActionUtils.getFieldNames(act);
                for (String p : params) {
                    String val = ActionUtils.getStringValue(act, p);
                    if (val != null && !val.isEmpty() && val.charAt(0) == I18N.PREFIX) {
                        String trans = Ctx.project.translate(val);
                        if (trans == val) {
                            EditorLogger.error("Key not found: " + val);
                        }
                    }
                }
            }
        }
        for (BaseActor a : actors.values()) {
            if (a instanceof InteractiveActor) {
                InteractiveActor ia = (InteractiveActor) a;
                // DESC
                if (ia.getDesc() != null && !ia.getDesc().isEmpty() && ia.getDesc().charAt(0) == I18N.PREFIX) {
                    String trans = Ctx.project.translate(ia.getDesc());
                    if (trans == ia.getDesc()) {
                        EditorLogger.error("Key not found: " + ia.getDesc());
                    }
                }
                // ACTOR VERBS
                verbs = ia.getVerbManager().getVerbs();
                for (Verb v : verbs.values()) {
                    ArrayList<Action> actions = v.getActions();
                    for (Action act : actions) {
                        String[] params = ActionUtils.getFieldNames(act);
                        for (String p : params) {
                            String val = ActionUtils.getStringValue(act, p);
                            if (val != null && !val.isEmpty() && val.charAt(0) == I18N.PREFIX) {
                                String trans = Ctx.project.translate(val);
                                if (trans == val) {
                                    EditorLogger.error("Key not found: " + val);
                                }
                            }
                        }
                    }
                }
            }
            // DIALOGS
            if (a instanceof CharacterActor) {
                HashMap<String, Dialog> dialogs = ((CharacterActor) a).getDialogs();
                if (dialogs != null) {
                    for (Dialog d : dialogs.values()) {
                        ArrayList<DialogOption> options = d.getOptions();
                        for (DialogOption o : options) {
                            if (o.getText() != null && !o.getText().isEmpty() && o.getText().charAt(0) == I18N.PREFIX) {
                                String trans = Ctx.project.translate(o.getText());
                                if (trans == o.getText()) {
                                    EditorLogger.error("Key not found: " + o.getText());
                                }
                            }
                            if (o.getResponseText() != null && !o.getResponseText().isEmpty() && o.getResponseText().charAt(0) == I18N.PREFIX) {
                                String trans = Ctx.project.translate(o.getResponseText());
                                if (trans == o.getResponseText()) {
                                    EditorLogger.error("Key not found: " + o.getResponseText());
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
Also used : LookAtAction(com.bladecoder.engine.actions.LookAtAction) SayAction(com.bladecoder.engine.actions.SayAction) SetCutmodeAction(com.bladecoder.engine.actions.SetCutmodeAction) Action(com.bladecoder.engine.actions.Action) InteractiveActor(com.bladecoder.engine.model.InteractiveActor) Scene(com.bladecoder.engine.model.Scene) CharacterActor(com.bladecoder.engine.model.CharacterActor) Dialog(com.bladecoder.engine.model.Dialog) Verb(com.bladecoder.engine.model.Verb) BaseActor(com.bladecoder.engine.model.BaseActor) DialogOption(com.bladecoder.engine.model.DialogOption)

Example 3 with Dialog

use of com.bladecoder.engine.model.Dialog in project bladecoder-adventure-engine by bladecoder.

the class DialogList method addOptions.

public void addOptions() {
    int pos = list.getSelectedIndex();
    Dialog d = null;
    if (pos != -1) {
        d = list.getItems().get(pos);
        options.addElements(d, d.getOptions());
    } else {
        options.addElements(null, null);
    }
}
Also used : Dialog(com.bladecoder.engine.model.Dialog) EditModelDialog(com.bladecoder.engineeditor.ui.panels.EditModelDialog) UndoDeleteDialog(com.bladecoder.engineeditor.undo.UndoDeleteDialog)

Example 4 with Dialog

use of com.bladecoder.engine.model.Dialog in project bladecoder-adventure-engine by bladecoder.

the class I18NHandler method putTranslationsInElement.

public void putTranslationsInElement(BaseActor a) {
    if (a instanceof InteractiveActor) {
        InteractiveActor ia = (InteractiveActor) a;
        // 1. DESC attribute
        ia.setDesc(getTranslation(ia.getDesc()));
        // 2. ACTIONS
        HashMap<String, Verb> verbs = ia.getVerbManager().getVerbs();
        for (Verb v : verbs.values()) putTranslationsInElement(v, false);
        // 3. DIALOGS
        if (a instanceof CharacterActor) {
            HashMap<String, Dialog> dialogs = ((CharacterActor) a).getDialogs();
            if (dialogs != null) {
                for (Dialog d : dialogs.values()) putTranslationsInElement(d);
            }
        }
        // 4. Text for TextRenderer
        if (a instanceof SpriteActor && ((SpriteActor) a).getRenderer() instanceof TextRenderer) {
            TextRenderer r = (TextRenderer) ((SpriteActor) a).getRenderer();
            r.setText(getTranslation(r.getText()));
        }
    }
}
Also used : Dialog(com.bladecoder.engine.model.Dialog) InteractiveActor(com.bladecoder.engine.model.InteractiveActor) Verb(com.bladecoder.engine.model.Verb) SpriteActor(com.bladecoder.engine.model.SpriteActor) CharacterActor(com.bladecoder.engine.model.CharacterActor) TextRenderer(com.bladecoder.engine.model.TextRenderer)

Example 5 with Dialog

use of com.bladecoder.engine.model.Dialog in project bladecoder-adventure-engine by bladecoder.

the class DialogList method delete.

@Override
protected void delete() {
    Dialog d = removeSelected();
    parent.getDialogs().remove(d.getId());
    // TRANSLATIONS
    Ctx.project.getI18N().putTranslationsInElement(d);
    // UNDO
    Ctx.project.getUndoStack().add(new UndoDeleteDialog(parent, d));
    // the last element
    if (list.getSelectedIndex() == -1)
        addOptions();
    Ctx.project.setModified();
}
Also used : Dialog(com.bladecoder.engine.model.Dialog) EditModelDialog(com.bladecoder.engineeditor.ui.panels.EditModelDialog) UndoDeleteDialog(com.bladecoder.engineeditor.undo.UndoDeleteDialog) UndoDeleteDialog(com.bladecoder.engineeditor.undo.UndoDeleteDialog)

Aggregations

Dialog (com.bladecoder.engine.model.Dialog)12 CharacterActor (com.bladecoder.engine.model.CharacterActor)7 InteractiveActor (com.bladecoder.engine.model.InteractiveActor)6 Verb (com.bladecoder.engine.model.Verb)6 DialogOption (com.bladecoder.engine.model.DialogOption)5 EditModelDialog (com.bladecoder.engineeditor.ui.panels.EditModelDialog)5 BaseActor (com.bladecoder.engine.model.BaseActor)4 Scene (com.bladecoder.engine.model.Scene)4 UndoDeleteDialog (com.bladecoder.engineeditor.undo.UndoDeleteDialog)4 Action (com.bladecoder.engine.actions.Action)3 SpriteActor (com.bladecoder.engine.model.SpriteActor)3 TextRenderer (com.bladecoder.engine.model.TextRenderer)3 LookAtAction (com.bladecoder.engine.actions.LookAtAction)2 SayAction (com.bladecoder.engine.actions.SayAction)2 SetCutmodeAction (com.bladecoder.engine.actions.SetCutmodeAction)2 BufferedWriter (java.io.BufferedWriter)1 File (java.io.File)1 FileWriter (java.io.FileWriter)1 IOException (java.io.IOException)1 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1