use of com.bladecoder.engine.actions.DisableActionAction in project bladecoder-adventure-engine by bladecoder.
the class ActionList method toggleEnabled.
private void toggleEnabled() {
if (list.getSelection().size() <= 0)
return;
Array<Action> sel = new Array<Action>();
for (Action a : list.getSelection().toArray()) {
// CONTROL ACTIONS CAN'T BE DISABLED
if (a == null || isControlAction(a))
continue;
Array<Action> items = list.getItems();
int pos = items.indexOf(a, true);
if (a instanceof DisableActionAction) {
Action a2 = ((DisableActionAction) a).getAction();
parent.getActions().set(pos, a2);
items.set(pos, a2);
sel.add(a2);
} else {
DisableActionAction a2 = new DisableActionAction();
a2.setAction(a);
parent.getActions().set(pos, a2);
items.set(pos, a2);
sel.add(a2);
}
}
Ctx.project.setModified();
list.getSelection().clear();
list.getSelection().addAll(sel);
}
use of com.bladecoder.engine.actions.DisableActionAction in project bladecoder-adventure-engine by bladecoder.
the class ActionList method edit.
@Override
protected void edit() {
Action e = list.getSelected();
if (e == null || e instanceof EndAction || e instanceof DisableActionAction)
return;
editedElement = (Action) ElementUtils.cloneElement(e);
EditModelDialog<Verb, Action> dialog = getEditElementDialogInstance(e);
dialog.show(getStage());
dialog.setListener(new ChangeListener() {
@SuppressWarnings("unchecked")
@Override
public void changed(ChangeEvent event, Actor actor) {
Action e = ((EditModelDialog<Verb, Action>) actor).getElement();
int pos = list.getSelectedIndex();
list.getItems().set(pos, e);
parent.getActions().set(pos, e);
Ctx.project.setModified();
if (isControlAction(editedElement)) {
if (!editedElement.getClass().getName().equals(e.getClass().getName())) {
deleteControlAction(pos, (AbstractControlAction) editedElement);
if (isControlAction(e)) {
insertEndAction(pos + 1, getOrCreateControlActionId((AbstractControlAction) e));
if (e instanceof AbstractIfAction)
insertEndAction(pos + 2, getOrCreateControlActionId((AbstractControlAction) e));
}
} else {
// insert previous caId
try {
ActionUtils.setParam(e, CONTROL_ACTION_ID_ATTR, getOrCreateControlActionId((AbstractControlAction) editedElement));
} catch (NoSuchFieldException | IllegalArgumentException | IllegalAccessException e1) {
EditorLogger.error(e1.getMessage());
}
}
}
}
});
}
Aggregations