Commit Graph

282 Commits

Author SHA1 Message Date
Dave Palais 73aa636271 Change some includes to use relative paths
The paths before assumed we were inside the Godot modules folder.
This change enables building as an external module.
2024-03-02 18:10:00 -05:00
Serhii Snitsaruk 7626c84633 New `task_selected` signal for BehaviorTreeView 2024-02-29 23:42:24 +01:00
Serhii Snitsaruk 78c61d459d
Merge pull request #42 from limbonaut/debugger-improvements
Debugger improvements
2024-02-17 15:35:09 +01:00
Serhii Snitsaruk b3380bd0ac Fix missing break in a switch 2024-02-17 15:15:20 +01:00
Serhii Snitsaruk ecf44e83e0 Debugger: Add update interval controls and keep it in the config
Also fix bug with partial update.
2024-02-17 14:56:19 +01:00
Serhii Snitsaruk b9cd31eb2b Debugger: Add BehaviorTreeView::update_interval_msec property 2024-02-17 13:40:53 +01:00
Serhii Snitsaruk 0ea8b9932c Debugger: Implement selective tree update in BehaviorTreeView
Flame graph showed performance bottleneck with recreating and redrawing the whole tree each frame.
This commit should improve debugger performance by a good margin.
2024-02-17 11:43:31 +01:00
Wilson E. Alvarez 1711cb6b87
Fix crash upon increasing TypedArray<BBVariant> size
Needed after upstream patch:

db7175458a
2024-02-16 10:46:42 -05:00
Serhii Snitsaruk 654eda1c65 Better error handling when resolving _generate_name 2024-02-10 15:05:50 +01:00
Serhii Snitsaruk d38e6f97f1 Editor: Implement Cut-Copy-Paste
Resolves #14
2024-02-08 17:16:26 +01:00
Serhii Snitsaruk 6405f9031b Fix shortcuts not working in the module version
Resolves #27
2024-02-07 12:36:59 +01:00
Serhii Snitsaruk 16840057a1 Editor: More space and align to right for BehaviorTreeView timings 2024-02-06 15:44:25 +01:00
Serhii Snitsaruk a353e561de Editor: More space for timings in BehaviorTreeView 2024-02-06 14:54:18 +01:00
Serhii Snitsaruk d0c7d98fc4 Editor: Clip content in BehaviorTreeView 2024-02-04 16:23:15 +01:00
Serhii Snitsaruk 8dc645c9a7 Fix issues and update docs for BehaviorTreeData/View 2024-02-03 17:53:12 +01:00
Serhii Snitsaruk c5b92aa676 Expose BehaviorTreeView for tools and in-game use 2024-02-03 16:59:51 +01:00
Serhii Snitsaruk 3e32051791 Editor: Remember collapsed items in task tree 2024-02-02 16:46:26 +01:00
Serhii Snitsaruk b4ab521e0f Editor: Improve tooltips in the property editors 2024-01-29 10:26:13 +01:00
Serhii Snitsaruk ee0795269d Editor: Fix issues with property editors & remove old docs 2024-01-29 10:16:24 +01:00
Serhii Snitsaruk 656bc169b0 Editor: Scroll to focus when adding a var in Blackboard Plan editor 2024-01-28 22:25:31 +01:00
Serhii Snitsaruk c44648c69c Fix nullptr crash 2024-01-28 22:00:47 +01:00
Serhii Snitsaruk 011040e46f Editor: Distinguish private variables in the inspector 2024-01-28 21:58:18 +01:00
Serhii Snitsaruk 87a1687c74 BlackboardPlanEditor: Focus on added var and autofill name 2024-01-28 21:03:22 +01:00
Serhii Snitsaruk 174810fb34 Editor: Validate var name in BlackboardPlanEditor 2024-01-28 20:15:42 +01:00
Serhii Snitsaruk 7ac1bc2dec Use variable property editor within the param property editor 2024-01-28 19:24:59 +01:00
Serhii Snitsaruk 73f51f23ef Implement BB variable property editor 2024-01-28 17:49:38 +01:00
Serhii Snitsaruk a6717ec76d Editor: Show only relevant hints for the chosen variant type in the Blackboard Plan editor 2024-01-26 16:47:45 +01:00
Serhii Snitsaruk 761b211740 Editor: Mark behavior tree as dirty when blackboard plan changes 2024-01-26 16:47:26 +01:00
Serhii Snitsaruk f912f0acc4 Usability improvements 2024-01-25 22:58:21 +01:00
Serhii Snitsaruk 5fee89b00b Make blackboard improvements compatible with GDExtension 2024-01-25 19:46:27 +01:00
Serhii Snitsaruk 8155c2764a Refactoring and clean up 2024-01-25 14:35:48 +01:00
Serhii Snitsaruk 06052332b2 BlackboardPlanEditor: Fixes and clean up 2024-01-25 11:08:35 +01:00
Serhii Snitsaruk 15e0323919 Implement BlackboardPlan editor 2024-01-24 23:11:09 +01:00
Serhii Snitsaruk 390d4a9385 New and improved workaround for the missing ClassDB::add_virtual_method 2024-01-17 22:46:48 +01:00
Serhii Snitsaruk c5be3a725f Editor: Links to "Creating custom tasks" doc page in the editor 2024-01-17 15:51:24 +01:00
Serhii Snitsaruk 27d3ec7555 Editor: Show alert about editing project settings in GDExtension 2024-01-17 15:17:22 +01:00
Serhii Snitsaruk dc8dcf9d71 Add action banner if native method override warning is set to Error 2024-01-17 14:49:43 +01:00
Serhii Snitsaruk 17a480ed19 Utilize space better with BBParam property editor
For types that need more space, the bottom editor will be used instead. In effect also for string parameters with @export_multiline.
2024-01-15 21:57:31 +01:00
Serhii Snitsaruk 61790085cc Fix editor shortcuts not working 2024-01-14 23:50:35 +01:00
Serhii Snitsaruk 80781db7cd Fix compilation issues related to open_doc_*() 2024-01-14 16:54:08 +01:00
Serhii Snitsaruk cbbc0b0135 Link to online docs in the code 2024-01-13 22:40:27 +01:00
Serhii Snitsaruk f546e285b7 Refactor and clean up the code 2024-01-13 17:10:42 +01:00
Serhii Snitsaruk 21b5053b72 Rename window wrapper 2024-01-11 15:38:29 +01:00
Serhii Snitsaruk 52f218e6b9 Don't compile editor classes into template builds 2024-01-11 11:22:02 +01:00
Serhii Snitsaruk e6c87be723 Fix various bugs and unit tests 2024-01-11 00:31:42 +01:00
Serhii Snitsaruk 0e37d3dfa3 Fix module compilation 2024-01-10 22:45:42 +01:00
Serhii Snitsaruk ac3da5ab90 Handle resource reloading (or for GDExtension - don't) 2024-01-10 20:00:04 +01:00
Serhii Snitsaruk 8e9cc74857 Fix: User icons are not showing in the task palette 2024-01-10 19:16:43 +01:00
Serhii Snitsaruk 59537138bc Fix: Create script template not working as expected 2024-01-10 15:23:04 +01:00
Serhii Snitsaruk a8dc78765b Restore icons 2024-01-10 01:17:09 +01:00
Serhii Snitsaruk 960f04b0ab Fix Forward button icon and crash 2024-01-10 00:02:24 +01:00
Serhii Snitsaruk c1d0353798 Don't show "Open debugger" in GDExtension 2024-01-09 21:59:09 +01:00
Serhii Snitsaruk a9a38bbffb Port debugger 2024-01-09 21:47:22 +01:00
Serhii Snitsaruk d1030b877c Project config file macro 2024-01-09 15:23:02 +01:00
Serhii Snitsaruk 59a8ab97d8 chore: Rename macro LSNAME to LW_NAME 2024-01-09 13:42:54 +01:00
Serhii Snitsaruk 9645baeb30 Port LimboAI plugin and editor 2024-01-09 13:34:24 +01:00
Serhii Snitsaruk bb346ef5f2 Port TaskTree 2024-01-07 21:20:51 +01:00
Serhii Snitsaruk 97daa29eda Port TaskPalette
Not even sure if it works, since I need other bits before I test it.
2024-01-07 17:33:05 +01:00
Serhii Snitsaruk 73497b1908 Port ModSwitchButton 2024-01-07 13:45:27 +01:00
Serhii Snitsaruk f9ad9cc794 Port ActionBanner 2024-01-07 13:36:59 +01:00
Serhii Snitsaruk 3d86a76db9 Port BehaviorTreeView 2024-01-07 06:51:34 +01:00
Serhii Snitsaruk 0767c0eee1 Port BTPlayer and LimboDebugger (game-side part) 2024-01-07 02:40:51 +01:00
Serhii Snitsaruk 3f61204961 Open BehaviorTree in the BT editor when its property is clicked in the inspector 2023-12-18 15:49:20 +01:00
Serhii Snitsaruk 35f1dabe93 Editor: Add "Extract Subtree" action
Supports undo-redo, but it doesn't remove the newly created file automatically.
2023-12-17 15:24:38 +01:00
Serhii Snitsaruk a2a2ba1f7b TaskPalette: Shift+Click to add task after the selected and on the same level as the selected task. 2023-12-17 14:26:38 +01:00
Serhii Snitsaruk c20e0dfc2d Don't focus on buttons in Task Palette 2023-12-17 13:59:03 +01:00
Serhii Snitsaruk 9abf8a084f Fix debugger's "elapsed" column not always has enough space for decimals
Closes #5.
2023-12-16 11:12:47 +01:00
Serhii Snitsaruk ed72784766 Add a header label for "Change Type" popup 2023-12-14 23:51:48 +01:00
Serhii Snitsaruk 08a8ef9c77 Disable some task palette functionality when it is in dialog mode 2023-12-14 23:38:02 +01:00
Serhii Snitsaruk f94aca4433 Add "Change Type" popup and menu action 2023-12-14 23:18:44 +01:00
Serhii Snitsaruk fb8585282d Debugger: Add the resource header control with a path to the BehaviorTree for the currently debugged instance. 2023-12-12 23:37:28 +01:00
Serhii Snitsaruk dfa332490a Add object(resource) support for variant param editor 2023-12-10 16:32:41 +01:00
Serhii Snitsaruk 678df76c65 Hide type choice when editing variable name 2023-12-10 15:58:57 +01:00
Serhii Snitsaruk 2fc5732ed8 Fix param type button not updated when property is reset 2023-12-10 15:50:03 +01:00
Serhii Snitsaruk 949583a6b4 Change type choice position, appearance and tooltip 2023-12-10 14:51:52 +01:00
Serhii Snitsaruk 106abe0b5a Add support for variant param editing and fix bug with ModeSwitchButton 2023-12-10 14:35:28 +01:00
Serhii Snitsaruk 7bce63fbcb Remove separation in param editor 2023-12-09 21:28:20 +01:00
Serhii Snitsaruk 91ed8bfe3d Implement mode switch button for BB parameters 2023-12-09 19:31:51 +01:00
Serhii Snitsaruk b4bef31df5 Add property editor for blackboard parameters 2023-12-08 21:56:14 +01:00
Serhii Snitsaruk 60012d984b Fix drag & drop position in the same branch
Also, refactor get_child_index() into get_index().
2023-11-22 13:05:55 +01:00
Serhii Snitsaruk 52a8dc2a0b Merge branch 'godot42' 2023-10-30 10:26:40 +01:00
Serhii Snitsaruk dca3ba38c0 Fix error when trying to add fav task while no BT is edited 2023-10-29 13:45:32 +01:00
Serhii Snitsaruk f9f930133f Fix Script includes 2023-10-28 13:09:03 +02:00
Serhii Snitsaruk bf91be1ff1 Fix StyleBoxFlat includes 2023-10-28 13:08:26 +02:00
Serhii Snitsaruk 2b13c24277 Add "Introduction" menu item linking to BehaviorTree doc 2023-10-24 15:44:18 +02:00
Serhii Snitsaruk 0c325e3660 Increase help tooltip maximum characters to 1400 2023-09-28 13:57:27 +02:00
Serhii Snitsaruk 953d98f89c Add probability icon 2023-09-26 16:28:53 +02:00
Serhii Snitsaruk b5a44c0807 Fix BTProbabilitySelector showing probability for comments 2023-09-26 16:28:47 +02:00
Serhii Snitsaruk 27254581a4 Fix Probability popup stuck with ghost value 2023-09-26 11:10:23 +02:00
Serhii Snitsaruk 1df821fdfa Allow editing weight as percent in Probability popup 2023-09-25 22:36:37 +02:00
Serhii Snitsaruk 52a70fdee5 Add editor support for BTProbabilitySelector 2023-09-25 18:07:26 +02:00
Serhii Snitsaruk 22d82d7c02 Fix "Edit Script" in task palette not switching workspace 2023-09-20 10:32:38 +02:00
Serhii Snitsaruk e7687d7a57 Update demo and remove debug prints 2023-09-19 15:29:29 +02:00
Serhii Snitsaruk 9a4fd8ad12 Update script template 2023-09-19 15:29:29 +02:00
Serhii Snitsaruk 97eee2a801 Fix not registering BT instance with debugger when BTPlayer is removed and then added to SceneTree 2023-09-09 13:37:09 +02:00
Serhii Snitsaruk a625173786 Cache theme items at LimboDebuggerPluggin 2023-08-29 12:54:38 +02:00
Serhii Snitsaruk 8dd61357da Cache theme items in TaskPalette 2023-08-29 12:44:40 +02:00
Serhii Snitsaruk 235d596e59 Cache theme items in LimboAIEditor 2023-08-29 12:44:40 +02:00
Serhii Snitsaruk e794436c69 Cache theme items in TaskTree 2023-08-29 12:44:40 +02:00
Serhii Snitsaruk 4ff1b874f3 Assign "bold" font to tasks with custom name set in BT debugger
Also, fixes resources used without Ref in debugger view.
2023-08-29 12:44:31 +02:00
Serhii Snitsaruk 5a0ff91658 Fix task disappearing on drag & drop 2023-08-28 16:22:44 +02:00
Serhii Snitsaruk df92ea02f0 Remove hard-coded BTComment from toolbar and add it to favorite default instead 2023-08-28 13:23:25 +02:00
Serhii Snitsaruk e73d4b0959 TaskPalette: Remember filter settings in a project config.
Also, fixes ConfigFile usage without Ref.
2023-08-28 11:39:56 +02:00
Serhii Snitsaruk 60f1d12246 Add: Filter button pressed state reflects filter settings 2023-08-27 12:22:49 +02:00
Serhii Snitsaruk 8341396640 Fixes to filter popup and task palette 2023-08-26 19:42:17 +02:00
Serhii Snitsaruk a601d44517 TaskPalette filter: Add background for category list 2023-08-26 16:57:18 +02:00
Serhii Snitsaruk 62f964474c Filter tasks in TaskPalette by category and type 2023-08-26 15:41:11 +02:00
Serhii Snitsaruk 0bd60bae88 Extract TaskTree code 2023-08-26 10:24:08 +02:00
Serhii Snitsaruk cff4626b2d Extract TaskPanel code => TaskPalette 2023-08-26 10:08:01 +02:00
Serhii Snitsaruk 2ffcbf0565 Add `LimboTaskDB` to handle task categories and scanning user tasks 2023-08-25 17:32:46 +02:00
Serhii Snitsaruk f489744755 Fix: Pressing keys after editor starts result in errors printed.
"scene/main/node.cpp:1748 - Parameter "p_node" is null."
2023-08-23 16:32:02 +02:00
Serhii Snitsaruk 067f73e11e Add documentation tooltips for tasks in the panel 2023-08-23 13:06:18 +02:00
Serhii Snitsaruk 2fdcff4886 Show tasks without category in "Uncategorized" section 2023-08-22 15:20:24 +02:00
Serhii Snitsaruk e2d596d44a Show warning banner when favorite task is not found 2023-08-22 14:43:45 +02:00
Serhii Snitsaruk 24678e4332 Implement ActionBanner class for actionable editor alerts 2023-08-22 12:20:09 +02:00
Serhii Snitsaruk 4942173e5b Implement "User task folder doesn't exist" warning 2023-08-21 18:17:34 +02:00
Serhii Snitsaruk b33b0c6993 Add "Refresh" button to TaskPanel 2023-08-21 15:51:18 +02:00
Serhii Snitsaruk 00ed65f0fb Use ProjectSettings path for script templates 2023-08-21 15:27:30 +02:00
Serhii Snitsaruk 4cabbc6082 Implement "Misc->Create Script Template" 2023-08-21 14:57:34 +02:00
Serhii Snitsaruk 1cb3b64a29 Add "Misc>Project Settings..." menu option 2023-08-21 11:51:19 +02:00
Serhii Snitsaruk 79c71d06f5 Add global shortcut for "Open Debugger" menu option 2023-08-20 11:49:33 +02:00
Serhii Snitsaruk 2afdb4bc95 Add "Open Debugger" menu option and "Misc" menu 2023-08-20 11:34:13 +02:00
Serhii Snitsaruk e851011678 Rename dialog now says "Edit comment" for comments 2023-08-19 13:12:24 +02:00
Serhii Snitsaruk 0ae2b6869a Don't count BTComment tasks for configuration warnings 2023-08-19 12:20:18 +02:00
Serhii Snitsaruk a717a3ed8f Add BTComment task 2023-08-18 21:38:28 +02:00
Serhii Snitsaruk 107b94fad6 Emphasize tasks with custom name set 2023-08-18 18:53:55 +02:00
Serhii Snitsaruk 5c3445236f Implement: Add/Remove task favorites
Favorite tasks are tasks selected to be shown on the toolbar.
Order can be edited in the project settings.
2023-08-18 13:24:53 +02:00
Serhii Snitsaruk b3dedc737e Add a popup menu for tasks in the TaskPanel
Adds such menu items (similar to task popup menu):
- Edit Script
- Open Documentation
2023-08-17 18:14:24 +02:00
Serhii Snitsaruk 985c4812f3 Editor: Add "Open Documentation" popup menu option 2023-08-17 15:29:12 +02:00
Serhii Snitsaruk a2b123a9be Editor: Add "Edit Script" popup menu option 2023-08-17 11:41:40 +02:00
Serhii Snitsaruk 03d5de1482 Add keyboard shortcuts for most editor actions 2023-08-16 16:07:04 +02:00
Serhii Snitsaruk 8d89f80d6b Handle theme change in the LimboAI editor
Also fixes warning: "Attempting to access theme items too early".
2023-08-16 11:19:51 +02:00
Serhii Snitsaruk 13f5eb1f71 Reorganize BT tasks 2023-08-15 17:49:13 +02:00
Serhii Snitsaruk 21c65541bf Refactor BTTask.get_configuration_warnings() 2023-08-15 17:06:07 +02:00
Serhii Snitsaruk e2b0bd91e2 Debugger: Add making debugger window floating 2023-08-02 12:13:00 +02:00
Serhii Snitsaruk 6699fa0627 Fix errors with compiling on windows 2023-07-29 09:40:38 +02:00
Serhii Snitsaruk 62e07e4395 Add MIT license - LimboAI is now Open Source! 2023-07-22 19:41:01 +02:00
Serhii Snitsaruk d2eede3f76 Fix shadowing members in the module 2023-07-20 20:10:02 +02:00
Serhii Snitsaruk 5dc002098f Reorganize files and sort includes 2023-07-20 18:35:36 +02:00
Serhii Snitsaruk 1a1a9cb57d Don't compile debugger plugin for non-tools builds 2023-04-16 11:30:31 +02:00
Serhii Snitsaruk 2156a2e31c Fix support for user script class icons 2023-04-16 08:26:47 +02:00
Serhii Snitsaruk 9abfeadc21 Implement basics of behavior tree debugger 2023-04-13 12:46:48 +02:00
Serhii Snitsaruk 9344bce9b1 Update and improve class documentation 2023-04-11 09:02:16 +02:00
Serhii Snitsaruk ec2fd2b143 Fix drag&drop broken 2023-04-06 23:54:56 +02:00
Serhii Snitsaruk eeac45b91f Fix latest API issues 2023-03-02 15:41:01 +01:00
Serhii Snitsaruk 48f8918811 Add UndoRedo support for the BT editor 2022-12-22 13:19:39 +01:00
Serhii Snitsaruk 8f1824fd9e Refactor LimboAI editor 2022-12-19 12:38:40 +01:00
Serhii Snitsaruk ef7480b054 Fix editor crash related to bt resource reloading 2022-12-19 10:29:46 +01:00
Serhii Snitsaruk d5088a9f20 Implement pascal case auto naming for tasks without _generate_name() 2022-12-17 21:18:11 +01:00
Serhii Snitsaruk 36bae84125 Fix rename dialog broken 2022-12-17 13:39:37 +01:00