Search in sources :

Example 11 with Dialog

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

the class I18NHandler method extractStrings.

public void extractStrings(String sceneid, BaseActor a) {
    if (a instanceof InteractiveActor) {
        InteractiveActor ia = (InteractiveActor) a;
        // 1. DESC attribute
        if (ia.getDesc() != null && !ia.getDesc().isEmpty() && ia.getDesc().charAt(0) != I18N.PREFIX) {
            String key = genKey(sceneid, a.getId(), "desc");
            String value = ia.getDesc();
            ia.setDesc(key);
            setTranslation(key, value);
        }
        // 2. ACTIONS
        HashMap<String, Verb> verbs = ia.getVerbManager().getVerbs();
        for (Verb v : verbs.values()) extractStrings(sceneid, a.getId(), v);
        // 3. DIALOGS
        if (a instanceof CharacterActor) {
            HashMap<String, Dialog> dialogs = ((CharacterActor) a).getDialogs();
            if (dialogs != null)
                for (Dialog d : dialogs.values()) extractStrings(sceneid, a.getId(), d);
        }
        // 4. Text for TextRenderer
        if (a instanceof SpriteActor && ((SpriteActor) a).getRenderer() instanceof TextRenderer) {
            TextRenderer r = (TextRenderer) ((SpriteActor) a).getRenderer();
            String v = r.getText();
            if (v != null && !v.isEmpty() && v.charAt(0) != I18N.PREFIX) {
                String key = genKey(sceneid, a.getId(), "text");
                r.setText(key, r.getText());
                setTranslation(key, v);
            }
        }
    }
}
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 12 with Dialog

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

the class I18NHandler method getUsedKeys.

private void getUsedKeys(Scene s, ArrayList<String> usedKeys) {
    for (Verb v : s.getVerbManager().getVerbs().values()) getUsedKeys(v, usedKeys);
    for (BaseActor a : s.getActors().values()) {
        if (a instanceof InteractiveActor) {
            InteractiveActor ia = (InteractiveActor) a;
            if (ia.getDesc() != null && !ia.getDesc().isEmpty() && ia.getDesc().charAt(0) == I18N.PREFIX)
                usedKeys.add(ia.getDesc().substring(1));
            for (Verb v : ia.getVerbManager().getVerbs().values()) getUsedKeys(v, usedKeys);
            if (a instanceof CharacterActor) {
                CharacterActor ca = (CharacterActor) a;
                if (ca.getDialogs() != null) {
                    for (Dialog d : ca.getDialogs().values()) {
                        for (DialogOption o : d.getOptions()) {
                            if (o.getText() != null && !o.getText().isEmpty() && o.getText().charAt(0) == I18N.PREFIX)
                                usedKeys.add(o.getText().substring(1));
                            if (o.getResponseText() != null && !o.getResponseText().isEmpty() && o.getResponseText().charAt(0) == I18N.PREFIX)
                                usedKeys.add(o.getResponseText().substring(1));
                        }
                    }
                }
            }
            if (a instanceof SpriteActor && ((SpriteActor) a).getRenderer() instanceof TextRenderer) {
                TextRenderer r = (TextRenderer) ((SpriteActor) a).getRenderer();
                String k = r.getText();
                if (k != null && !k.isEmpty() && k.charAt(0) == I18N.PREFIX)
                    usedKeys.add(k.substring(1));
            }
        }
    }
}
Also used : Dialog(com.bladecoder.engine.model.Dialog) Verb(com.bladecoder.engine.model.Verb) InteractiveActor(com.bladecoder.engine.model.InteractiveActor) BaseActor(com.bladecoder.engine.model.BaseActor) SpriteActor(com.bladecoder.engine.model.SpriteActor) CharacterActor(com.bladecoder.engine.model.CharacterActor) DialogOption(com.bladecoder.engine.model.DialogOption) TextRenderer(com.bladecoder.engine.model.TextRenderer)

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