Limiter.js 946 B

12345678910111213141516171819202122232425
  1. var t = require;
  2. var e = module;
  3. var i = exports;
  4. Object.defineProperty(i, "__esModule", {value: !0});
  5. const s = t("constants"),
  6. o = t("Decorator");
  7. i.default = class extends o.default {
  8. constructor({child: t = null, maxLoop: e} = {}) {
  9. if ((super({child: t, name: "Limiter", title: "Limit <maxLoop> Activations", properties: {maxLoop: 1}}), !e))
  10. throw "maxLoop parameter in Limiter decorator is an obligatory parameter";
  11. this.maxLoop = e;
  12. }
  13. open(t) {
  14. t.blackboard.get("i", t.tree.id, this.id) || t.blackboard.set("i", 0, t.tree.id, this.id);
  15. }
  16. tick(t) {
  17. if (!this.child) return s.ERROR;
  18. var e = t.blackboard.get("i", t.tree.id, this.id);
  19. if (e < this.maxLoop) {
  20. var i = this.child._execute(t);
  21. return (i != s.SUCCESS && i != s.FAILURE) || t.blackboard.set("i", e + 1, t.tree.id, this.id), i;
  22. }
  23. return s.FAILURE;
  24. }
  25. };