Commit Graph

978 Commits

Author SHA1 Message Date
Serhii Snitsaruk 73f51f23ef Implement BB variable property editor 2024-01-28 17:49:38 +01:00
Serhii Snitsaruk 2612ec0855 Fix LimboHSM::add_transition signature 2024-01-28 11:56:53 +01:00
Serhii Snitsaruk c81c1ec872 Blackboard: Add variable-to-property binding interface 2024-01-27 21:44:58 +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 f8ce5c1311 GHA: Fix iOS packaging 2024-01-26 13:42:51 +01:00
Serhii Snitsaruk 662738e6bf
Merge pull request #20 from limbonaut/blackboard-improvements
Rework `Blackboard` API and introduce `BlackboardPlan` resource and editor.

- `BBVariable` object holds the value of a blackboard variable and its metadata (not exposed to the API).
- `BlackboardPlan` resource stores and manages a collection of variables, and is used to construct new `Blackboard` instances.
  - Each `BehaviorTree` resource has its own `BlackboardPlan` resource that acts as a blueprint.
  - `BTPlayer` also has its own `BlackboardPlan` which extends the behavior tree `BlackboardPlan` resource, i.e. variables from BehaviorTree are overridden in the BTPlayer node.
- Editor for the `BlackboardPlan` resources
  - Accessed with "Manage" button in the inspector.
  - Rename, reposition, and change type and hint of the blackboard variables.
  - Edit default variable values directly in the inspector.
- Define variables in the `BehaviorTree` blackboard plan and override those variables in the `BTPlayer`'s plan.
- Fully compatible with both module and GDExtension builds!
2024-01-26 11:14:25 +01:00
Serhii Snitsaruk f912f0acc4 Usability improvements 2024-01-25 22:58:21 +01:00
Ola S. a22860b244 Add BlackboardPlan icon 2024-01-25 21:08:03 +01:00
Serhii Snitsaruk 5fee89b00b Make blackboard improvements compatible with GDExtension 2024-01-25 19:46:27 +01:00
Serhii Snitsaruk a251d92aa3 Update class documentation 2024-01-25 14:56:59 +01:00
Serhii Snitsaruk 8155c2764a Refactoring and clean up 2024-01-25 14:35:48 +01:00
Serhii Snitsaruk fb1ab16682 In a derived BB plan, hide variables with names that begin with "_" 2024-01-25 11:51:35 +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 20a995d1d2 Rename BlackboardSource => BlackboardPlan
Because it's a better name ;)
2024-01-23 20:02:23 +01:00
Serhii Snitsaruk b04f7530e4 Add a mechanism for overriding and resetting variables in a derived blackboard source 2024-01-23 17:54:20 +01:00
Serhii Snitsaruk f84127657b Fix crash while initializing blackboard in the BTPlayer node 2024-01-23 16:22:10 +01:00
Serhii Snitsaruk dc40109ade Fix default object value issues 2024-01-23 15:56:30 +01:00
Serhii Snitsaruk 8c67886b52 Parsing BlackboardSource properties 2024-01-23 15:31:56 +01:00
Serhii Snitsaruk a247d0d67b Replace node blackboard data with BlackboardSource 2024-01-23 12:05:54 +01:00
Serhii Snitsaruk 6ef0dd942e Add initial implementation of BBVariable and BlackboardSource classes 2024-01-23 10:33:57 +01:00
Serhii Snitsaruk 33b455f8d9 Add BBParam missing types 2024-01-19 17:15:22 +01:00
Serhii Snitsaruk 881a32f92d Doc: Remove native method override stuff from gdextension.rst
It's no longer true.
2024-01-19 14:34:50 +01:00
Serhii Snitsaruk 782e72d92d GHA: Change godot repo ref to "4.2" 2024-01-19 14:01:02 +01:00
Serhii Snitsaruk a3f8c09766 Use the new virtual workaround and rework LimboState and HSM 2024-01-18 11:33:24 +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 caa1508fea
Merge pull request #18 from limbonaut/prerelease-prep
Pre-release prep work
2024-01-17 19:17:42 +01:00
Serhii Snitsaruk db51defddd GHA: For GDExtension builds, package demo, license and readme 2024-01-17 17:54:20 +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 242c1f03d7 Fix: Introduction points to a wrong page 2024-01-17 14:16:35 +01:00
Serhii Snitsaruk 7ccda2736d In setup_gdextension.sh, add options --copy-all and --trash-old 2024-01-17 12:01:13 +01:00
Serhii Snitsaruk a5728a11a0 In update_icons.py, sort by filename before updating entries 2024-01-17 11:14:51 +01:00
Serhii Snitsaruk 12dbd9e1a6 Restructure demo project for better compatibility with AssetLib package
Also, add warning ignores for the custom task.
2024-01-16 21:51:47 +01:00
Serhii Snitsaruk 9bfa0268c1 create logo_and_screenshot.png 2024-01-16 15:25:52 +01:00
Serhii Snitsaruk 1ac96bc330 Add logo signet and screenshots 2024-01-16 15:22:09 +01:00
Serhii Snitsaruk 565097e897 GHA: Fix LimboAI version loosing suffix 2024-01-16 13:03:48 +01:00
Serhii Snitsaruk 076269e5e3
Merge pull request #17 from limbonaut/callmethod-improvements
Improvements for the `CallMethod` task:
- Allow storing return value on the blackboard
- Allows specifying variables from the blackboard as arguments in additions to raw values.

Also, improvements to BBParam property editor to better utilize space in the inspector.

WARNING: Breaks compatibility if you are using `CallMethod` tasks. `CallMethod` arguments in existing trees will need to be reassigned!

Resolves #13
2024-01-16 11:43:05 +01:00
Serhii Snitsaruk 594097ae4c Update class documentation and add rst update script 2024-01-16 11:21:02 +01:00
Serhii Snitsaruk 1648728e1b CallMethod: Update unit tests 2024-01-16 10:46:42 +01:00
Serhii Snitsaruk 3b82946444 Add --copy-demo option to GDExtension setup script 2024-01-16 10:21:51 +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 c63785b5bc CallMethod: Use array of BBVariant to specify arguments
This allows specifying variables on the blackboard as arguments in additions to raw values.

WARNING: Breaks compatibility if you are using CallMethod tasks. CallMethod arguments in existing trees will need to be reassigned!
2024-01-15 21:51:17 +01:00
Serhii Snitsaruk 184361d460 CallMethod: Store result on the blackboard 2024-01-15 21:32:39 +01:00
Serhii Snitsaruk aca9784c95 update README.md 2024-01-14 23:50:42 +01:00
Serhii Snitsaruk 61790085cc Fix editor shortcuts not working 2024-01-14 23:50:35 +01:00
Serhii Snitsaruk 73c6bfe2c7 GHA: Call GDExtension builds in all_builds.yml 2024-01-14 19:32:57 +01:00
Serhii Snitsaruk 476dc8b0dd GHA: Add concurrency settings for the test builds 2024-01-14 19:32:50 +01:00