Commit Graph

70 Commits

Author SHA1 Message Date
Serhii Snitsaruk 3b12288ae0
BlackboardPlan: Serialize only non-empty mapping values 2024-05-14 20:25:18 +02:00
Serhii Snitsaruk a1cdff2e2e
Fix issues with mapping in BTSubtree 2024-05-14 19:47:05 +02:00
Serhii Snitsaruk 0d1e846d93
BlackboardPlan: Use mapping with BTSubtree 2024-05-14 11:39:32 +02:00
Serhii Snitsaruk 2d493a76bd
BlackboardPlan: Improve mapping and serialize 2024-05-14 09:29:56 +02:00
Serhii Snitsaruk bdfe5f52c2
BlackboardPlan: Implement rudimentary mapping 2024-05-13 23:21:55 +02:00
Serhii Snitsaruk 506d8aa967
Use `scene_root` with `BBParam` 2024-05-01 23:39:09 +02:00
Serhii Snitsaruk c6bb5bad74
Fix: BBParam saved_value defaults to null 2024-05-01 18:09:06 +02:00
Serhii Snitsaruk c739a876b0
Blackboard: Add `create` parameter to `bind_var_to_property` and `link_var` 2024-04-09 11:34:22 +02:00
Serhii Snitsaruk 302de87e32
Prevent using external resources for derived blackboard plans in `BTPlayer` and `BTState` 2024-04-01 15:25:54 +02:00
Serhii Snitsaruk d48daf2135
BlackboardPlan: Avoid circular references in derived mode
If the same plan resource is assigned in BehaviorTree and in BTPlayer, simply use the resource as is. Using the same resource for `BehaviorTree` and `BTPlayer` will disable derived mode, and allow managing from `BTPlayer` . There is a risk of using `NodePath` variables with different scenes: the path may actually be different if node structure is not the same. It will lead to fetching breaking for some of those scenes.
2024-04-01 01:45:40 +02:00
Serhii Snitsaruk a5aea72a17
Plan: Fix syncing derived plan sometimes fails on var rename 2024-03-25 01:04:07 +01:00
Serhii Snitsaruk 1de6256401
Plan: Don't store unmodified variables in a derived plan
Fixes "sticky" old values in a derived plan.
2024-03-25 00:56:08 +01:00
Serhii Snitsaruk 12fd9d00d6
Update file headers and fix whitespace 2024-03-21 21:38:57 +01:00
Serhii Snitsaruk 9e62fe8fa3
Fix `BBParam` stored value defaulting to `null` in GDExtension 2024-03-20 23:57:42 +01:00
Serhii Snitsaruk cbd467f97f
Blackboard: Assigning variables via code might have no effect if done before initialization 2024-03-13 22:00:50 +01:00
Serhii Snitsaruk 06ebff7518 Fix includes and build errors 2024-03-12 21:09:28 +01:00
Serhii Snitsaruk ca6b497019 Sync order of variables in derived `BlackboardPlan` 2024-03-12 17:11:01 +01:00
Serhii Snitsaruk 434545ebad Blackboard: Linking vars with `Blackboard::link_var` 2024-03-12 16:17:34 +01:00
Serhii Snitsaruk a6e6b53e18 Improve prefetching 2024-03-12 00:30:38 +01:00
Serhii Snitsaruk 7de582c4e6 Fix complain parameter is not respected in `Blackboard::get_var` if parent scope is assigned 2024-03-11 23:04:34 +01:00
Serhii Snitsaruk e2edb083ff When prefetch fails, don't print error if variable is on blackboard 2024-03-11 22:12:44 +01:00
Serhii Snitsaruk b09006a11b Fix issues with blackboard plan system 2024-03-11 18:58:40 +01:00
Serhii Snitsaruk 9957ef2ea7 Expose additional `BlackboardPlan` methods for custom tooling 2024-03-08 15:33:28 +01:00
Serhii Snitsaruk 2658060b1c Move prefetching code into `BlackboardPlan` and add checkbox to the plan editor 2024-03-06 21:28:06 +01:00
Serhii Snitsaruk 4c26583007 Remove "p_" from the argument names in the `ClassDB` bindings 2024-03-04 21:36:16 +01:00
Serhii Snitsaruk d66f1e83fd Refactor BlackboardPlan to use StringName
Also update demo BTs.
2024-03-04 16:56:57 +01:00
Serhii Snitsaruk 7cf4a4b3b8 Fix setter/getter types in BBVariable 2024-03-04 16:19:39 +01:00
Serhii Snitsaruk 350c27abbc Change BB variable members to StringName 2024-03-04 12:54:45 +01:00
Serhii Snitsaruk b7d1bc11ab Blackboard: Use `StringName` for variable names 2024-03-03 23:38:52 +01:00
Serhii Snitsaruk bb6fab7555 API: Expose BlackboardPlan factory methods 2024-03-02 16:06:32 +01:00
Serhii Snitsaruk c4931ae420 Fix Blackboard.{set,get}_parent_scope should be {set,get}_parent in the API 2024-03-02 15:43:55 +01:00
Serhii Snitsaruk 2d98a38ada Fix "Manage" button is sometimes shown for derived plans 2024-02-29 15:45:59 +01:00
Serhii Snitsaruk 6d36d20d06 Blackboard: Complain when variable is missing 2024-02-13 17:15:19 +01:00
Serhii Snitsaruk 95c2496adf Improve variable synchronization between base and derived blackboard plans
When variable is altered in the base plan, values should properly sync to the derived plans if those vars are not altered in the derived plan. Editor QoL improvement.
2024-02-09 13:58:54 +01:00
Serhii Snitsaruk 61ef929411 Editor: Don't allow variables with the same names as Resource props 2024-01-29 10:32:32 +01:00
Serhii Snitsaruk 174810fb34 Editor: Validate var name in BlackboardPlanEditor 2024-01-28 20:15:42 +01:00
Serhii Snitsaruk c81c1ec872 Blackboard: Add variable-to-property binding interface 2024-01-27 21:44:58 +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 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 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