blueshell
Version:
A Behavior Tree implementation in modern Javascript
47 lines • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RunningAction = void 0;
const Base_1 = require("./Base");
const models_1 = require("../models");
class RunningAction extends Base_1.Action {
constructor(name) {
super(name);
}
onEvent(state, event) {
const storage = this.getNodeStorage(state);
if (storage.lastResult !== models_1.rc.RUNNING) {
return this.activate(state, event);
}
else {
return this.runningEvent(state, event);
}
}
_afterEvent(res, state, event) {
if (res !== models_1.rc.RUNNING) {
this.deactivate(state, event, res);
}
return super._afterEvent(res, state, event);
}
runningEvent(state, event) {
if (this.isCompletionEvent(event, state)) {
return this.onComplete(state, event);
}
else {
return this.onIncomplete(state, event);
}
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onComplete(state, event) {
return models_1.rc.SUCCESS;
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onIncomplete(state, event) {
return models_1.rc.RUNNING;
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
deactivate(state, event, res) {
// no-op
}
}
exports.RunningAction = RunningAction;
//# sourceMappingURL=RunningAction.js.map