├── .gitattributes ├── .gitignore ├── README.md ├── build ├── css │ ├── app.min.css │ ├── preload.min.css │ └── vendor.min.css ├── desktop.js ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ └── fontawesome-webfont.woff2 ├── imgs │ ├── closedhand.cur │ └── favicon.ico ├── index.html ├── js │ ├── app.min.js │ ├── preload.min.js │ ├── templates.min.js │ └── vendor.min.js └── package.json ├── debug.png ├── editor.png ├── editor ├── BUILD.md ├── LICENSE ├── README.md ├── bower.json ├── gulpfile.js ├── package.json └── src │ ├── app │ ├── app.controller.js │ ├── app.js │ ├── app.routes.js │ ├── directives │ │ ├── dragnode.directive.js │ │ ├── dropnode.directive.js │ │ ├── keytable.directive.js │ │ ├── keytable.html │ │ ├── tab.directive.js │ │ ├── tab.html │ │ ├── tabset.directive.js │ │ └── tabset.html │ ├── models │ │ ├── project.model.js │ │ └── settings.model.js │ ├── pages │ │ ├── dash │ │ │ ├── dash.controller.js │ │ │ └── dash.html │ │ ├── editor │ │ │ ├── components │ │ │ │ ├── menubar.controller.js │ │ │ │ ├── menubar.html │ │ │ │ ├── nodespanel.controller.js │ │ │ │ ├── nodespanel.html │ │ │ │ ├── propertiespanel.controller.js │ │ │ │ ├── propertiespanel.html │ │ │ │ ├── treespanel.controller.js │ │ │ │ └── treespanel.html │ │ │ ├── editor.controller.js │ │ │ ├── editor.html │ │ │ └── modals │ │ │ │ ├── editnode.controller.js │ │ │ │ ├── editnode.html │ │ │ │ ├── export.controller.js │ │ │ │ ├── export.html │ │ │ │ ├── import.controller.js │ │ │ │ ├── import.html │ │ │ │ └── modal.html │ │ ├── home │ │ │ ├── home.controller.js │ │ │ └── home.html │ │ ├── projects │ │ │ ├── projects.controller.js │ │ │ └── projects.html │ │ └── settings │ │ │ ├── settings.controller.js │ │ │ └── settings.html │ ├── services │ │ ├── dialog.service.js │ │ ├── editor.service.js │ │ ├── nodejs.service.js │ │ ├── notification.service.js │ │ ├── storage │ │ │ ├── filestorage.service.js │ │ │ ├── localstorage.service.js │ │ │ └── storage.service.js │ │ └── system.service.js │ └── validators │ │ └── blacklist.directive.js │ ├── assets │ ├── css │ │ └── preload.css │ ├── imgs │ │ ├── closedhand.cur │ │ └── favicon.ico │ ├── js │ │ └── preload.js │ ├── less │ │ ├── animations.less │ │ ├── bootstrap.less │ │ ├── c_app.less │ │ ├── c_dash.less │ │ ├── c_keytable.less │ │ ├── c_menubar.less │ │ ├── c_modal.less │ │ ├── c_nodes.less │ │ ├── c_notification.less │ │ ├── c_page.less │ │ ├── c_properties.less │ │ ├── c_sidebar.less │ │ ├── c_tabset.less │ │ ├── c_trees.less │ │ ├── index.less │ │ └── variables.less │ └── libs │ │ ├── behavior3js-0.1.0.min.js │ │ ├── createjs.min.js │ │ ├── creatine-1.0.0.min.js │ │ └── mousetrap.min.js │ ├── desktop.js │ ├── editor │ ├── draw │ │ ├── shapes.js │ │ └── symbols.js │ ├── editor │ │ ├── Editor.js │ │ ├── managers │ │ │ ├── ExportManager.js │ │ │ ├── ImportManager.js │ │ │ ├── ProjectManager.js │ │ │ └── ShortcutManager.js │ │ └── systems │ │ │ ├── CameraSystem.js │ │ │ ├── CollapseSystem.js │ │ │ ├── ConnectionSystem.js │ │ │ ├── DragSystem.js │ │ │ ├── SelectionSystem.js │ │ │ └── ShortcutSystem.js │ ├── namespaces.js │ ├── project │ │ ├── Project.js │ │ └── managers │ │ │ ├── HistoryManager.js │ │ │ ├── NodeManager.js │ │ │ └── TreeManager.js │ ├── tree │ │ ├── Tree.js │ │ └── managers │ │ │ ├── BlockManager.js │ │ │ ├── ConnectionManager.js │ │ │ ├── EditManager.js │ │ │ ├── OrganizeManager.js │ │ │ ├── SelectionManager.js │ │ │ └── ViewManager.js │ └── utils │ │ ├── Block.js │ │ ├── Command.js │ │ ├── Connection.js │ │ ├── EditorError.js │ │ ├── Node.js │ │ ├── Root.js │ │ ├── SelectionBox.js │ │ ├── SettingsManager.js │ │ ├── functions.js │ │ └── settings.js │ ├── index.html │ ├── package.json │ └── start.js ├── examples └── ai.json ├── lua └── src │ ├── BTInit.lua │ ├── BTNode.lua │ ├── BTPrecondition.lua │ ├── BTReference.lua │ ├── action │ ├── BTAction.lua │ ├── BTRunAction.lua │ └── BTWaitAction.lua │ ├── cjson.so │ ├── composite │ ├── BTParallel.lua │ ├── BTParallelFlexible.lua │ ├── BTPrioritySelector.lua │ ├── BTRandomSelector.lua │ └── BTSequence.lua │ ├── condition │ └── BTCondition.lua │ ├── decorator │ ├── BTConditionEvulator.lua │ ├── BTDecorator.lua │ ├── BTInverse.lua │ ├── BTRepeat.lua │ └── BTUntil.lua │ ├── global.lua │ └── test.lua └── unityeditor.png /.gitattributes: -------------------------------------------------------------------------------- 1 | *.js linguist-language=Lua -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | editor/build 2 | editor/node_modules 3 | editor/bower_components 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BtTree 2 | A behaviour tree framework with editor. 3 |  4 | Run in Unity Editor: 5 |  6 | 7 | ## Features: 8 | * simple 9 | * fast 10 | * extendable 11 | * visual-editing 12 | * visual-debuggable 13 | * platform-independent 14 | 15 |  16 | 17 | ## Support Languages: 18 | * Lua 19 | * to be continued... 20 | 21 | ## Usage: 22 | * edit behaviour scripts(json) with editor 23 | * see: lua/src/test.lua as a demo 24 | 25 | ## Roadmap: 26 | * more composite nodes, such as RandomSelector... 27 | * more decorators and editor support. 28 | * other languages support, maybe python or java first... 29 | * add debug&release feature for editor, i.e., remove debug infomations from json output files. 30 | 31 | enjoy it, any suggestion will be appreciated. you can contact me via email: 49392515@qq.com 32 | -------------------------------------------------------------------------------- /build/desktop.js: -------------------------------------------------------------------------------- 1 | var app = require('app'); // Module to control application life. 2 | var BrowserWindow = require('browser-window'); // Module to create native browser window. 3 | 4 | // Report crashes to our server. 5 | require('crash-reporter').start(); 6 | 7 | // Keep a global reference of the window object, if you don't, the window will 8 | // be closed automatically when the JavaScript object is garbage collected. 9 | var mainWindow = null; 10 | 11 | // Quit when all windows are closed. 12 | app.on('window-all-closed', function() { 13 | // On OS X it is common for applications and their menu bar 14 | // to stay active until the user quits explicitly with Cmd + Q 15 | if (process.platform != 'darwin') { 16 | app.quit(); 17 | } 18 | }); 19 | 20 | // This method will be called when Electron has finished 21 | // initialization and is ready to create browser windows. 22 | app.on('ready', function() { 23 | // Create the browser window. 24 | mainWindow = new BrowserWindow({width: 1000, height: 800}); 25 | 26 | // and load the index.html of the app. 27 | mainWindow.loadUrl('file://' + __dirname + '/index.html'); 28 | 29 | // Open the DevTools. 30 | // mainWindow.openDevTools(); 31 | 32 | // Emitted when the window is closed. 33 | mainWindow.on('closed', function() { 34 | // Dereference the window object, usually you would store windows 35 | // in an array if your app supports multi windows, this is the time 36 | // when you should delete the corresponding element. 37 | mainWindow = null; 38 | }); 39 | }); -------------------------------------------------------------------------------- /build/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/donnki/bttree/44be266ff6653c276837606fcab130a81bb35653/build/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /build/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/donnki/bttree/44be266ff6653c276837606fcab130a81bb35653/build/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /build/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/donnki/bttree/44be266ff6653c276837606fcab130a81bb35653/build/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /build/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/donnki/bttree/44be266ff6653c276837606fcab130a81bb35653/build/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /build/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/donnki/bttree/44be266ff6653c276837606fcab130a81bb35653/build/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /build/imgs/closedhand.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/donnki/bttree/44be266ff6653c276837606fcab130a81bb35653/build/imgs/closedhand.cur -------------------------------------------------------------------------------- /build/imgs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/donnki/bttree/44be266ff6653c276837606fcab130a81bb35653/build/imgs/favicon.ico -------------------------------------------------------------------------------- /build/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 |Select a single block to change its properties.
7 |NOTE: The root node represents a tree. Therefore, changes applied to this node will persist on the tree object.
8 |Behavior3 Editor is an open source visual tool to create and design Behavior Trees. It provides a general solution to model agents for games and other applications, such as simulations and robotics. Behavior3 Editor uses an open - and simple - format to describe the behavior trees, thus you can adapt easily to your own library, tool or framework.
7 | 8 |You don't have any project yet.
18 | 19 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | Current project
33 | {{item.name}}34 | |
35 |
36 |
37 |
38 |
39 |
40 | {{item.name}} 41 | |
42 |