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;
}
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());
}
}
}
}
}
}
}
}
}
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);
}
}
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()));
}
}
}
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();
}
Aggregations