owl-bt
Version:
owl-bt is editor for Behavior trees. It has been inspired by Unreal engine behavior trees in a way, that it supports special node items like decorators and services. This makes trees smaller and much more readable.
42 lines (37 loc) • 1.42 kB
JavaScript
;
(function () {
class PasteTreeNodeItemAction {
constructor(ActionExecutor, TreeStore, TreeNode, TreeNodeProvider, TreeDecoratorItemProvider, TreeServiceItemProvider, Clipboard,
AddTreeNodeItemAction) {
this._ActionExecutor = ActionExecutor;
this._TreeStore = TreeStore;
this._TreeNode = TreeNode;
this._Clipboard = Clipboard;
this._AddTreeNodeItemAction = AddTreeNodeItemAction;
this._itemProviders = {
node: TreeNodeProvider,
decorator: TreeDecoratorItemProvider,
service: TreeServiceItemProvider,
}
}
/**
* @param {object} params
* @param {node} params.node - node to which should be the node item from clipboard pasted
* @param {int} params.index - (optional) target index. NodeItem is added to the end if not provided
*/
exec(params) {
let treeClipboardItem = this._Clipboard.get('tree');
if (treeClipboardItem && treeClipboardItem.item && treeClipboardItem.itemType) {
let item = this._itemProviders[treeClipboardItem.itemType].create(treeClipboardItem.item);
this._AddTreeNodeItemAction.exec({
node: params.node,
item: item,
index : params.index,
itemType: treeClipboardItem.itemType,
})
}
}
}
angular.module('editorApp')
.service('PasteTreeNodeItemAction', PasteTreeNodeItemAction);
})();