Commit Graph

318 Commits

Author SHA1 Message Date
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
Serhii Snitsaruk c574334f6e Cleanup and optimizations 2022-12-15 19:23:03 +01:00
Serhii Snitsaruk d861a52833 Add placeholder text for filter edit 2022-12-15 18:44:42 +01:00
Serhii Snitsaruk 3d1873e329 Fix popup menu getting bad position 2022-12-15 18:29:22 +01:00
Serhii Snitsaruk dbc9a7ad31 Add mostly minimal changes in order to compile and run with godot 4 2022-12-15 14:33:03 +01:00
Serhii Snitsaruk 71201a7389 Add placeholder text to rename dialog 2022-11-23 21:19:23 +01:00
Serhii Snitsaruk fe2cf00c6c Add task rename dialog 2022-11-23 16:25:32 +01:00
Serhii Snitsaruk 5378337064 Remember TaskPanel's collapsed sections 2022-11-23 01:04:35 +01:00
Serhii Snitsaruk ce2041391a Update header when clicked 2022-11-22 22:58:53 +01:00
Serhii Snitsaruk 81e672b4d2 Add reload and resave dialog when BT resource files change externally 2022-11-22 21:00:08 +01:00
Serhii Snitsaruk 1bc8484454 Fix bugs 2022-11-01 14:03:20 +01:00
Serhii Snitsaruk cc49834994 Fix bugs in loading user tasks 2022-10-30 12:33:38 +01:00
Serhii Snitsaruk db0c903ca8 Handle user categories and fix bad script crash 2022-10-29 01:50:47 +02:00
Serhii Snitsaruk c6a9ea5948 Add editor icon 2022-10-19 21:02:46 +02:00
Serhii Snitsaruk 3f04ff2eb4 Save/load editor config values
Only HSplitContainer split_offset is kept at the moment.
2022-09-06 13:28:25 +02:00
Serhii Snitsaruk afbf095d1b Fix crash on Save pressed with no bt edited 2022-09-06 13:08:27 +02:00
Serhii Snitsaruk 507dc8d850 Edit bt via inspector and add usage panel 2022-09-05 21:57:24 +02:00
Serhii Snitsaruk 7eff8d5488 Refresh task panel on visibility change 2022-09-05 17:56:38 +02:00
Serhii Snitsaruk 026ff26ab3 Use single function to get task icon in the editor 2022-09-05 16:39:40 +02:00
Serhii Snitsaruk 490a419f0e Add Create New Task action 2022-09-05 13:31:38 +02:00
Serhii Snitsaruk 3de4847a89 Add default dir for behavior trees 2022-09-05 13:11:47 +02:00
Serhii Snitsaruk 1770c23553 Handle task_changed
Update task tree item when selected task resource is changed.
2022-09-03 17:13:15 +02:00
Serhii Snitsaruk aefa132290 Add drag and drop.
Rearrange tasks with drag and drop in editor.
2022-09-03 17:00:20 +02:00
Serhii Snitsaruk 29fab3a8d8 Fix: Quick tasks broken 2022-09-03 14:11:47 +02:00
Serhii Snitsaruk b42cfa4330 Fix: Duplicate should put new task after the prototype 2022-09-03 14:11:03 +02:00
Serhii Snitsaruk ffd0d943f1 Add auto-saving and dirty marking 2022-09-03 14:01:13 +02:00
Serhii Snitsaruk a2313d9a14 Show configuration warnings in editor 2022-09-03 13:11:50 +02:00
Serhii Snitsaruk 6e1f9ad4ac Keep user task directory prefs in project setting 2022-09-03 12:59:11 +02:00
Serhii Snitsaruk c9d92610a0 Prototype loading user tasks 2022-09-03 00:10:22 +02:00
Serhii Snitsaruk 881b9118e4 Dynamic task sections 2022-09-02 19:30:32 +02:00
Serhii Snitsaruk 30f3df0649 Add history and navigation 2022-09-02 15:43:54 +02:00
Serhii Snitsaruk f00d4d0233 Add task panel 2022-09-02 14:25:03 +02:00
Serhii Snitsaruk 4c580c6b1d Add Editor functionality (rudimentary)
* Adding fav tasks
* Saving/loading
* Popup menu with a number of functions
* Header

Also:
* BTTask: Fix broken get_icon()
* BTTask: Initialize parent during set_children()
2022-09-02 00:20:37 +02:00