Compare commits
2 Commits
3cf90f9387
...
d920060dee
Author | SHA1 | Date |
---|---|---|
Serhii Snitsaruk | d920060dee | |
Serhii Snitsaruk | 2718271bb1 |
|
@ -425,12 +425,11 @@ void BlackboardPlan::_bind_methods() {
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("set_base_plan", "blackboard_plan"), &BlackboardPlan::set_base_plan);
|
ClassDB::bind_method(D_METHOD("set_base_plan", "blackboard_plan"), &BlackboardPlan::set_base_plan);
|
||||||
ClassDB::bind_method(D_METHOD("get_base_plan"), &BlackboardPlan::get_base_plan);
|
ClassDB::bind_method(D_METHOD("get_base_plan"), &BlackboardPlan::get_base_plan);
|
||||||
ClassDB::bind_method(D_METHOD("set_parent_scope_plan_provider", "callable"), &BlackboardPlan::set_parent_scope_plan_provider);
|
|
||||||
ClassDB::bind_method(D_METHOD("get_parent_scope_plan_provider"), &BlackboardPlan::get_parent_scope_plan_provider);
|
|
||||||
ClassDB::bind_method(D_METHOD("is_mapping_enabled"), &BlackboardPlan::is_mapping_enabled);
|
|
||||||
ClassDB::bind_method(D_METHOD("is_derived"), &BlackboardPlan::is_derived);
|
ClassDB::bind_method(D_METHOD("is_derived"), &BlackboardPlan::is_derived);
|
||||||
ClassDB::bind_method(D_METHOD("sync_with_base_plan"), &BlackboardPlan::sync_with_base_plan);
|
ClassDB::bind_method(D_METHOD("sync_with_base_plan"), &BlackboardPlan::sync_with_base_plan);
|
||||||
ClassDB::bind_method(D_METHOD("create_blackboard", "node"), &BlackboardPlan::create_blackboard);
|
ClassDB::bind_method(D_METHOD("set_parent_scope_plan_provider", "callable"), &BlackboardPlan::set_parent_scope_plan_provider);
|
||||||
|
ClassDB::bind_method(D_METHOD("get_parent_scope_plan_provider"), &BlackboardPlan::get_parent_scope_plan_provider);
|
||||||
|
ClassDB::bind_method(D_METHOD("create_blackboard", "node", "parent_scope"), &BlackboardPlan::create_blackboard);
|
||||||
ClassDB::bind_method(D_METHOD("populate_blackboard", "blackboard", "overwrite", "node"), &BlackboardPlan::populate_blackboard);
|
ClassDB::bind_method(D_METHOD("populate_blackboard", "blackboard", "overwrite", "node"), &BlackboardPlan::populate_blackboard);
|
||||||
|
|
||||||
// To avoid cluttering the member namespace, we do not export unnecessary properties in this class.
|
// To avoid cluttering the member namespace, we do not export unnecessary properties in this class.
|
||||||
|
|
|
@ -35,16 +35,20 @@ Methods
|
||||||
:widths: auto
|
:widths: auto
|
||||||
|
|
||||||
+---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
+---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| :ref:`Blackboard<class_Blackboard>` | :ref:`create_blackboard<class_BlackboardPlan_method_create_blackboard>` **(** Node node **)** |
|
| :ref:`Blackboard<class_Blackboard>` | :ref:`create_blackboard<class_BlackboardPlan_method_create_blackboard>` **(** Node node, :ref:`Blackboard<class_Blackboard>` parent_scope **)** |
|
||||||
+---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
+---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| :ref:`BlackboardPlan<class_BlackboardPlan>` | :ref:`get_base_plan<class_BlackboardPlan_method_get_base_plan>` **(** **)** |const| |
|
| :ref:`BlackboardPlan<class_BlackboardPlan>` | :ref:`get_base_plan<class_BlackboardPlan_method_get_base_plan>` **(** **)** |const| |
|
||||||
+---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
+---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
|
| Callable | :ref:`get_parent_scope_plan_provider<class_BlackboardPlan_method_get_parent_scope_plan_provider>` **(** **)** |const| |
|
||||||
|
+---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| bool | :ref:`is_derived<class_BlackboardPlan_method_is_derived>` **(** **)** |const| |
|
| bool | :ref:`is_derived<class_BlackboardPlan_method_is_derived>` **(** **)** |const| |
|
||||||
+---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
+---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| void | :ref:`populate_blackboard<class_BlackboardPlan_method_populate_blackboard>` **(** :ref:`Blackboard<class_Blackboard>` blackboard, bool overwrite, Node node **)** |
|
| void | :ref:`populate_blackboard<class_BlackboardPlan_method_populate_blackboard>` **(** :ref:`Blackboard<class_Blackboard>` blackboard, bool overwrite, Node node **)** |
|
||||||
+---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
+---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| void | :ref:`set_base_plan<class_BlackboardPlan_method_set_base_plan>` **(** :ref:`BlackboardPlan<class_BlackboardPlan>` blackboard_plan **)** |
|
| void | :ref:`set_base_plan<class_BlackboardPlan_method_set_base_plan>` **(** :ref:`BlackboardPlan<class_BlackboardPlan>` blackboard_plan **)** |
|
||||||
+---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
+---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
|
| void | :ref:`set_parent_scope_plan_provider<class_BlackboardPlan_method_set_parent_scope_plan_provider>` **(** Callable callable **)** |
|
||||||
|
+---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| void | :ref:`sync_with_base_plan<class_BlackboardPlan_method_sync_with_base_plan>` **(** **)** |
|
| void | :ref:`sync_with_base_plan<class_BlackboardPlan_method_sync_with_base_plan>` **(** **)** |
|
||||||
+---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
+---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
|
|
||||||
|
@ -83,7 +87,7 @@ Method Descriptions
|
||||||
|
|
||||||
.. rst-class:: classref-method
|
.. rst-class:: classref-method
|
||||||
|
|
||||||
:ref:`Blackboard<class_Blackboard>` **create_blackboard** **(** Node node **)**
|
:ref:`Blackboard<class_Blackboard>` **create_blackboard** **(** Node node, :ref:`Blackboard<class_Blackboard>` parent_scope **)**
|
||||||
|
|
||||||
Constructs a new instance of a :ref:`Blackboard<class_Blackboard>` using this plan. If ``NodePath`` prefetching is enabled, ``node`` will be used to retrieve node instances for ``NodePath`` variables and substitute their values.
|
Constructs a new instance of a :ref:`Blackboard<class_Blackboard>` using this plan. If ``NodePath`` prefetching is enabled, ``node`` will be used to retrieve node instances for ``NodePath`` variables and substitute their values.
|
||||||
|
|
||||||
|
@ -103,6 +107,18 @@ Returns the base plan. See :ref:`is_derived<class_BlackboardPlan_method_is_deriv
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
|
.. _class_BlackboardPlan_method_get_parent_scope_plan_provider:
|
||||||
|
|
||||||
|
.. rst-class:: classref-method
|
||||||
|
|
||||||
|
Callable **get_parent_scope_plan_provider** **(** **)** |const|
|
||||||
|
|
||||||
|
Returns the parent scope plan provider - a callable that returns a **BlackboardPlan**.
|
||||||
|
|
||||||
|
.. rst-class:: classref-item-separator
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
.. _class_BlackboardPlan_method_is_derived:
|
.. _class_BlackboardPlan_method_is_derived:
|
||||||
|
|
||||||
.. rst-class:: classref-method
|
.. rst-class:: classref-method
|
||||||
|
@ -141,6 +157,18 @@ Use with caution, as it will remove variables not present in the base plan. Only
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
|
.. _class_BlackboardPlan_method_set_parent_scope_plan_provider:
|
||||||
|
|
||||||
|
.. rst-class:: classref-method
|
||||||
|
|
||||||
|
void **set_parent_scope_plan_provider** **(** Callable callable **)**
|
||||||
|
|
||||||
|
Sets the parent scope plan provider - a callable that returns a **BlackboardPlan**. Used to provide hints in the inspector. When set, mapping feature becomes available.
|
||||||
|
|
||||||
|
.. rst-class:: classref-item-separator
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
.. _class_BlackboardPlan_method_sync_with_base_plan:
|
.. _class_BlackboardPlan_method_sync_with_base_plan:
|
||||||
|
|
||||||
.. rst-class:: classref-method
|
.. rst-class:: classref-method
|
||||||
|
|
|
@ -59,59 +59,61 @@ Methods
|
||||||
.. table::
|
.. table::
|
||||||
:widths: auto
|
:widths: auto
|
||||||
|
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| void | :ref:`_enter<class_BTTask_private_method__enter>` **(** **)** |virtual| |
|
| void | :ref:`_enter<class_BTTask_private_method__enter>` **(** **)** |virtual| |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| void | :ref:`_exit<class_BTTask_private_method__exit>` **(** **)** |virtual| |
|
| void | :ref:`_exit<class_BTTask_private_method__exit>` **(** **)** |virtual| |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| String | :ref:`_generate_name<class_BTTask_private_method__generate_name>` **(** **)** |virtual| |const| |
|
| String | :ref:`_generate_name<class_BTTask_private_method__generate_name>` **(** **)** |virtual| |const| |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| PackedStringArray | :ref:`_get_configuration_warnings<class_BTTask_private_method__get_configuration_warnings>` **(** **)** |virtual| |const| |
|
| PackedStringArray | :ref:`_get_configuration_warnings<class_BTTask_private_method__get_configuration_warnings>` **(** **)** |virtual| |const| |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| void | :ref:`_setup<class_BTTask_private_method__setup>` **(** **)** |virtual| |
|
| void | :ref:`_setup<class_BTTask_private_method__setup>` **(** **)** |virtual| |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| :ref:`Status<enum_BT_Status>` | :ref:`_tick<class_BTTask_private_method__tick>` **(** float delta **)** |virtual| |
|
| :ref:`Status<enum_BT_Status>` | :ref:`_tick<class_BTTask_private_method__tick>` **(** float delta **)** |virtual| |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| void | :ref:`abort<class_BTTask_method_abort>` **(** **)** |
|
| void | :ref:`abort<class_BTTask_method_abort>` **(** **)** |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| void | :ref:`add_child<class_BTTask_method_add_child>` **(** :ref:`BTTask<class_BTTask>` task **)** |
|
| void | :ref:`add_child<class_BTTask_method_add_child>` **(** :ref:`BTTask<class_BTTask>` task **)** |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| void | :ref:`add_child_at_index<class_BTTask_method_add_child_at_index>` **(** :ref:`BTTask<class_BTTask>` task, int idx **)** |
|
| void | :ref:`add_child_at_index<class_BTTask_method_add_child_at_index>` **(** :ref:`BTTask<class_BTTask>` task, int idx **)** |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| :ref:`BTTask<class_BTTask>` | :ref:`clone<class_BTTask_method_clone>` **(** **)** |const| |
|
| :ref:`BTTask<class_BTTask>` | :ref:`clone<class_BTTask_method_clone>` **(** **)** |const| |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
|
| :ref:`BehaviorTree<class_BehaviorTree>` | :ref:`editor_get_behavior_tree<class_BTTask_method_editor_get_behavior_tree>` **(** **)** |
|
||||||
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| :ref:`Status<enum_BT_Status>` | :ref:`execute<class_BTTask_method_execute>` **(** float delta **)** |
|
| :ref:`Status<enum_BT_Status>` | :ref:`execute<class_BTTask_method_execute>` **(** float delta **)** |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| :ref:`BTTask<class_BTTask>` | :ref:`get_child<class_BTTask_method_get_child>` **(** int idx **)** |const| |
|
| :ref:`BTTask<class_BTTask>` | :ref:`get_child<class_BTTask_method_get_child>` **(** int idx **)** |const| |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| int | :ref:`get_child_count<class_BTTask_method_get_child_count>` **(** **)** |const| |
|
| int | :ref:`get_child_count<class_BTTask_method_get_child_count>` **(** **)** |const| |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| int | :ref:`get_child_count_excluding_comments<class_BTTask_method_get_child_count_excluding_comments>` **(** **)** |const| |
|
| int | :ref:`get_child_count_excluding_comments<class_BTTask_method_get_child_count_excluding_comments>` **(** **)** |const| |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| int | :ref:`get_index<class_BTTask_method_get_index>` **(** **)** |const| |
|
| int | :ref:`get_index<class_BTTask_method_get_index>` **(** **)** |const| |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| :ref:`BTTask<class_BTTask>` | :ref:`get_parent<class_BTTask_method_get_parent>` **(** **)** |const| |
|
| :ref:`BTTask<class_BTTask>` | :ref:`get_parent<class_BTTask_method_get_parent>` **(** **)** |const| |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| :ref:`BTTask<class_BTTask>` | :ref:`get_root<class_BTTask_method_get_root>` **(** **)** |const| |
|
| :ref:`BTTask<class_BTTask>` | :ref:`get_root<class_BTTask_method_get_root>` **(** **)** |const| |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| String | :ref:`get_task_name<class_BTTask_method_get_task_name>` **(** **)** |
|
| String | :ref:`get_task_name<class_BTTask_method_get_task_name>` **(** **)** |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| bool | :ref:`has_child<class_BTTask_method_has_child>` **(** :ref:`BTTask<class_BTTask>` task **)** |const| |
|
| bool | :ref:`has_child<class_BTTask_method_has_child>` **(** :ref:`BTTask<class_BTTask>` task **)** |const| |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| void | :ref:`initialize<class_BTTask_method_initialize>` **(** Node agent, :ref:`Blackboard<class_Blackboard>` blackboard, Node scene_root **)** |
|
| void | :ref:`initialize<class_BTTask_method_initialize>` **(** Node agent, :ref:`Blackboard<class_Blackboard>` blackboard, Node scene_root **)** |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| bool | :ref:`is_descendant_of<class_BTTask_method_is_descendant_of>` **(** :ref:`BTTask<class_BTTask>` task **)** |const| |
|
| bool | :ref:`is_descendant_of<class_BTTask_method_is_descendant_of>` **(** :ref:`BTTask<class_BTTask>` task **)** |const| |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| bool | :ref:`is_root<class_BTTask_method_is_root>` **(** **)** |const| |
|
| bool | :ref:`is_root<class_BTTask_method_is_root>` **(** **)** |const| |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| :ref:`BTTask<class_BTTask>` | :ref:`next_sibling<class_BTTask_method_next_sibling>` **(** **)** |const| |
|
| :ref:`BTTask<class_BTTask>` | :ref:`next_sibling<class_BTTask_method_next_sibling>` **(** **)** |const| |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| void | :ref:`print_tree<class_BTTask_method_print_tree>` **(** int initial_tabs=0 **)** |
|
| void | :ref:`print_tree<class_BTTask_method_print_tree>` **(** int initial_tabs=0 **)** |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| void | :ref:`remove_child<class_BTTask_method_remove_child>` **(** :ref:`BTTask<class_BTTask>` task **)** |
|
| void | :ref:`remove_child<class_BTTask_method_remove_child>` **(** :ref:`BTTask<class_BTTask>` task **)** |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
| void | :ref:`remove_child_at_index<class_BTTask_method_remove_child_at_index>` **(** int idx **)** |
|
| void | :ref:`remove_child_at_index<class_BTTask_method_remove_child_at_index>` **(** int idx **)** |
|
||||||
+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
+-----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|
||||||
|
|
||||||
.. rst-class:: classref-section-separator
|
.. rst-class:: classref-section-separator
|
||||||
|
|
||||||
|
@ -366,6 +368,18 @@ Duplicates the task and its children, copying the exported members. Sub-resource
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
|
.. _class_BTTask_method_editor_get_behavior_tree:
|
||||||
|
|
||||||
|
.. rst-class:: classref-method
|
||||||
|
|
||||||
|
:ref:`BehaviorTree<class_BehaviorTree>` **editor_get_behavior_tree** **(** **)**
|
||||||
|
|
||||||
|
Returns the behavior tree that owns this task. This is only available in the editor.
|
||||||
|
|
||||||
|
.. rst-class:: classref-item-separator
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
.. _class_BTTask_method_execute:
|
.. _class_BTTask_method_execute:
|
||||||
|
|
||||||
.. rst-class:: classref-method
|
.. rst-class:: classref-method
|
||||||
|
|
|
@ -79,6 +79,12 @@
|
||||||
Duplicates the task and its children, copying the exported members. Sub-resources are shared for efficiency, except for [BBParam] subtypes, which are always copied. Used by the editor to instantiate [BehaviorTree] and copy-paste tasks.
|
Duplicates the task and its children, copying the exported members. Sub-resources are shared for efficiency, except for [BBParam] subtypes, which are always copied. Used by the editor to instantiate [BehaviorTree] and copy-paste tasks.
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
|
<method name="editor_get_behavior_tree">
|
||||||
|
<return type="BehaviorTree" />
|
||||||
|
<description>
|
||||||
|
Returns the behavior tree that owns this task. This is only available in the editor.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
<method name="execute">
|
<method name="execute">
|
||||||
<return type="int" enum="BT.Status" />
|
<return type="int" enum="BT.Status" />
|
||||||
<param index="0" name="delta" type="float" />
|
<param index="0" name="delta" type="float" />
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
<method name="create_blackboard">
|
<method name="create_blackboard">
|
||||||
<return type="Blackboard" />
|
<return type="Blackboard" />
|
||||||
<param index="0" name="node" type="Node" />
|
<param index="0" name="node" type="Node" />
|
||||||
|
<param index="1" name="parent_scope" type="Blackboard" />
|
||||||
<description>
|
<description>
|
||||||
Constructs a new instance of a [Blackboard] using this plan. If [NodePath] prefetching is enabled, [param node] will be used to retrieve node instances for [NodePath] variables and substitute their values.
|
Constructs a new instance of a [Blackboard] using this plan. If [NodePath] prefetching is enabled, [param node] will be used to retrieve node instances for [NodePath] variables and substitute their values.
|
||||||
</description>
|
</description>
|
||||||
|
@ -21,6 +22,12 @@
|
||||||
Returns the base plan. See [method is_derived].
|
Returns the base plan. See [method is_derived].
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
|
<method name="get_parent_scope_plan_provider" qualifiers="const">
|
||||||
|
<return type="Callable" />
|
||||||
|
<description>
|
||||||
|
Returns the parent scope plan provider - a callable that returns a [BlackboardPlan].
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
<method name="is_derived" qualifiers="const">
|
<method name="is_derived" qualifiers="const">
|
||||||
<return type="bool" />
|
<return type="bool" />
|
||||||
<description>
|
<description>
|
||||||
|
@ -44,6 +51,13 @@
|
||||||
Use with caution, as it will remove variables not present in the base plan. Only use this for custom tooling.
|
Use with caution, as it will remove variables not present in the base plan. Only use this for custom tooling.
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
|
<method name="set_parent_scope_plan_provider">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="callable" type="Callable" />
|
||||||
|
<description>
|
||||||
|
Sets the parent scope plan provider - a callable that returns a [BlackboardPlan]. Used to provide hints in the inspector. When set, mapping feature becomes available.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
<method name="sync_with_base_plan">
|
<method name="sync_with_base_plan">
|
||||||
<return type="void" />
|
<return type="void" />
|
||||||
<description>
|
<description>
|
||||||
|
|
|
@ -55,6 +55,9 @@ void BlackboardPlanEditor::_add_var() {
|
||||||
}
|
}
|
||||||
|
|
||||||
BBVariable var(default_type, default_hint, default_hint_string);
|
BBVariable var(default_type, default_hint, default_hint_string);
|
||||||
|
if (default_value.get_type() == default_type) {
|
||||||
|
var.set_value(default_value);
|
||||||
|
}
|
||||||
plan->add_var(var_name, var);
|
plan->add_var(var_name, var);
|
||||||
reset_defaults();
|
reset_defaults();
|
||||||
_refresh();
|
_refresh();
|
||||||
|
@ -128,11 +131,12 @@ void BlackboardPlanEditor::edit_plan(const Ref<BlackboardPlan> &p_plan) {
|
||||||
_refresh();
|
_refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
void BlackboardPlanEditor::set_defaults(const StringName &p_var_name, Variant::Type p_type, PropertyHint p_hint, String p_hint_string) {
|
void BlackboardPlanEditor::set_defaults(const StringName &p_var_name, Variant::Type p_type, PropertyHint p_hint, String p_hint_string, Variant p_value) {
|
||||||
default_var_name = p_var_name;
|
default_var_name = p_var_name;
|
||||||
default_type = p_type;
|
default_type = p_type;
|
||||||
default_hint = p_hint;
|
default_hint = p_hint;
|
||||||
default_hint_string = p_hint_string;
|
default_hint_string = p_hint_string;
|
||||||
|
default_value = p_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BlackboardPlanEditor::reset_defaults() {
|
void BlackboardPlanEditor::reset_defaults() {
|
||||||
|
|
|
@ -62,6 +62,7 @@ private:
|
||||||
Variant::Type default_type = Variant::NIL;
|
Variant::Type default_type = Variant::NIL;
|
||||||
PropertyHint default_hint = PROPERTY_HINT_NONE;
|
PropertyHint default_hint = PROPERTY_HINT_NONE;
|
||||||
String default_hint_string;
|
String default_hint_string;
|
||||||
|
Variant default_value;
|
||||||
|
|
||||||
VBoxContainer *rows_vbox;
|
VBoxContainer *rows_vbox;
|
||||||
Button *add_var_tool;
|
Button *add_var_tool;
|
||||||
|
@ -102,7 +103,7 @@ public:
|
||||||
_FORCE_INLINE_ static BlackboardPlanEditor *get_singleton() { return singleton; }
|
_FORCE_INLINE_ static BlackboardPlanEditor *get_singleton() { return singleton; }
|
||||||
|
|
||||||
void edit_plan(const Ref<BlackboardPlan> &p_plan);
|
void edit_plan(const Ref<BlackboardPlan> &p_plan);
|
||||||
void set_defaults(const StringName &p_name, Variant::Type p_type = Variant::FLOAT, PropertyHint p_hint = PROPERTY_HINT_NONE, String p_hint_string = "");
|
void set_defaults(const StringName &p_name, Variant::Type p_type = Variant::FLOAT, PropertyHint p_hint = PROPERTY_HINT_NONE, String p_hint_string = "", Variant p_value = Variant());
|
||||||
void reset_defaults();
|
void reset_defaults();
|
||||||
|
|
||||||
BlackboardPlanEditor();
|
BlackboardPlanEditor();
|
||||||
|
|
|
@ -105,7 +105,8 @@ void EditorPropertyVariableName::_update_status() {
|
||||||
void EditorPropertyVariableName::_status_pressed() {
|
void EditorPropertyVariableName::_status_pressed() {
|
||||||
ERR_FAIL_NULL(plan);
|
ERR_FAIL_NULL(plan);
|
||||||
if (!plan->has_var(name_edit->get_text())) {
|
if (!plan->has_var(name_edit->get_text())) {
|
||||||
BlackboardPlanEditor::get_singleton()->set_defaults(name_edit->get_text(), expected_type, expected_hint, expected_hint_string);
|
BlackboardPlanEditor::get_singleton()->set_defaults(name_edit->get_text(),
|
||||||
|
expected_type, default_hint, default_hint_string, default_value);
|
||||||
}
|
}
|
||||||
BlackboardPlanEditor::get_singleton()->edit_plan(plan);
|
BlackboardPlanEditor::get_singleton()->edit_plan(plan);
|
||||||
BlackboardPlanEditor::get_singleton()->popup_centered();
|
BlackboardPlanEditor::get_singleton()->popup_centered();
|
||||||
|
@ -138,12 +139,13 @@ void EditorPropertyVariableName::_update_property() {
|
||||||
_update_status();
|
_update_status();
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorPropertyVariableName::setup(const Ref<BlackboardPlan> &p_plan, bool p_allow_empty, Variant::Type p_type, PropertyHint p_hint, String p_hint_string) {
|
void EditorPropertyVariableName::setup(const Ref<BlackboardPlan> &p_plan, bool p_allow_empty, Variant::Type p_type, PropertyHint p_hint, String p_hint_string, Variant p_default_value) {
|
||||||
plan = p_plan;
|
plan = p_plan;
|
||||||
allow_empty = p_allow_empty;
|
allow_empty = p_allow_empty;
|
||||||
expected_type = p_type;
|
expected_type = p_type;
|
||||||
expected_hint = p_hint;
|
default_hint = p_hint;
|
||||||
expected_hint_string = p_hint_string;
|
default_hint_string = p_hint_string;
|
||||||
|
default_value = p_default_value;
|
||||||
_update_status();
|
_update_status();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -238,8 +240,9 @@ bool EditorInspectorPluginVariableName::_parse_property(Object *p_object, const
|
||||||
|
|
||||||
Ref<BlackboardPlan> plan;
|
Ref<BlackboardPlan> plan;
|
||||||
Variant::Type expected_type = Variant::NIL;
|
Variant::Type expected_type = Variant::NIL;
|
||||||
PropertyHint expected_hint = PROPERTY_HINT_NONE;
|
PropertyHint default_hint = PROPERTY_HINT_NONE;
|
||||||
String expected_hint_string;
|
String default_hint_string;
|
||||||
|
Variant default_value;
|
||||||
if (is_mapping) {
|
if (is_mapping) {
|
||||||
plan.reference_ptr(Object::cast_to<BlackboardPlan>(p_object));
|
plan.reference_ptr(Object::cast_to<BlackboardPlan>(p_object));
|
||||||
ERR_FAIL_NULL_V(plan, false);
|
ERR_FAIL_NULL_V(plan, false);
|
||||||
|
@ -247,8 +250,9 @@ bool EditorInspectorPluginVariableName::_parse_property(Object *p_object, const
|
||||||
if (plan->has_var(var_name)) {
|
if (plan->has_var(var_name)) {
|
||||||
BBVariable variable = plan->get_var(var_name);
|
BBVariable variable = plan->get_var(var_name);
|
||||||
expected_type = variable.get_type();
|
expected_type = variable.get_type();
|
||||||
expected_hint = variable.get_hint();
|
default_hint = variable.get_hint();
|
||||||
expected_hint_string = variable.get_hint_string();
|
default_hint_string = variable.get_hint_string();
|
||||||
|
default_value = variable.get_value();
|
||||||
}
|
}
|
||||||
if (plan->get_parent_scope_plan_provider().is_valid()) {
|
if (plan->get_parent_scope_plan_provider().is_valid()) {
|
||||||
Ref<BlackboardPlan> parent_plan = plan->get_parent_scope_plan_provider().call();
|
Ref<BlackboardPlan> parent_plan = plan->get_parent_scope_plan_provider().call();
|
||||||
|
@ -258,11 +262,11 @@ bool EditorInspectorPluginVariableName::_parse_property(Object *p_object, const
|
||||||
}
|
}
|
||||||
ERR_FAIL_NULL_V(plan, false);
|
ERR_FAIL_NULL_V(plan, false);
|
||||||
} else {
|
} else {
|
||||||
plan = plan_getter.call();
|
plan = editor_plan_provider.call();
|
||||||
}
|
}
|
||||||
|
|
||||||
EditorPropertyVariableName *ed = memnew(EditorPropertyVariableName);
|
EditorPropertyVariableName *ed = memnew(EditorPropertyVariableName);
|
||||||
ed->setup(plan, is_mapping, expected_type, expected_hint, expected_hint_string);
|
ed->setup(plan, is_mapping, expected_type, default_hint, default_hint_string, default_value);
|
||||||
add_property_editor(p_path, ed, expected_type);
|
add_property_editor(p_path, ed, expected_type);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -46,8 +46,9 @@ private:
|
||||||
|
|
||||||
bool allow_empty = false;
|
bool allow_empty = false;
|
||||||
Variant::Type expected_type = Variant::NIL;
|
Variant::Type expected_type = Variant::NIL;
|
||||||
PropertyHint expected_hint = PROPERTY_HINT_NONE;
|
PropertyHint default_hint = PROPERTY_HINT_NONE;
|
||||||
String expected_hint_string;
|
String default_hint_string;
|
||||||
|
Variant default_value;
|
||||||
|
|
||||||
LineEdit *name_edit;
|
LineEdit *name_edit;
|
||||||
Button *drop_btn;
|
Button *drop_btn;
|
||||||
|
@ -76,7 +77,7 @@ public:
|
||||||
virtual void _update_property() override;
|
virtual void _update_property() override;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void setup(const Ref<BlackboardPlan> &p_plan, bool p_allow_empty, Variant::Type p_type = Variant::FLOAT, PropertyHint p_hint = PROPERTY_HINT_NONE, String p_hint_string = "");
|
void setup(const Ref<BlackboardPlan> &p_plan, bool p_allow_empty, Variant::Type p_type = Variant::FLOAT, PropertyHint p_hint = PROPERTY_HINT_NONE, String p_hint_string = "", Variant p_default_value = Variant());
|
||||||
EditorPropertyVariableName();
|
EditorPropertyVariableName();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -84,7 +85,7 @@ class EditorInspectorPluginVariableName : public EditorInspectorPlugin {
|
||||||
GDCLASS(EditorInspectorPluginVariableName, EditorInspectorPlugin);
|
GDCLASS(EditorInspectorPluginVariableName, EditorInspectorPlugin);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Callable plan_getter;
|
Callable editor_plan_provider;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static void _bind_methods() {}
|
static void _bind_methods() {}
|
||||||
|
@ -98,7 +99,7 @@ public:
|
||||||
virtual bool _parse_property(Object *p_object, const Variant::Type p_type, const String &p_path, const PropertyHint p_hint, const String &p_hint_text, const BitField<PropertyUsageFlags> p_usage, const bool p_wide = false) override;
|
virtual bool _parse_property(Object *p_object, const Variant::Type p_type, const String &p_path, const PropertyHint p_hint, const String &p_hint_text, const BitField<PropertyUsageFlags> p_usage, const bool p_wide = false) override;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void set_plan_getter(const Callable &p_getter) { plan_getter = p_getter; }
|
void set_editor_plan_provider(const Callable &p_getter) { editor_plan_provider = p_getter; }
|
||||||
|
|
||||||
EditorInspectorPluginVariableName() = default;
|
EditorInspectorPluginVariableName() = default;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1486,7 +1486,7 @@ void LimboAIEditorPlugin::_notification(int p_notification) {
|
||||||
add_debugger_plugin(memnew(LimboDebuggerPlugin));
|
add_debugger_plugin(memnew(LimboDebuggerPlugin));
|
||||||
add_inspector_plugin(memnew(EditorInspectorPluginBBPlan));
|
add_inspector_plugin(memnew(EditorInspectorPluginBBPlan));
|
||||||
EditorInspectorPluginVariableName *var_plugin = memnew(EditorInspectorPluginVariableName);
|
EditorInspectorPluginVariableName *var_plugin = memnew(EditorInspectorPluginVariableName);
|
||||||
var_plugin->set_plan_getter(Callable(limbo_ai_editor, "get_edited_blackboard_plan"));
|
var_plugin->set_editor_plan_provider(Callable(limbo_ai_editor, "get_edited_blackboard_plan"));
|
||||||
add_inspector_plugin(var_plugin);
|
add_inspector_plugin(var_plugin);
|
||||||
#ifdef LIMBOAI_MODULE
|
#ifdef LIMBOAI_MODULE
|
||||||
// ! Only used in the module version.
|
// ! Only used in the module version.
|
||||||
|
|
Loading…
Reference in New Issue