Improve BTPlayer doc

This commit is contained in:
Serhii Snitsaruk 2023-10-26 13:44:09 +02:00
parent 2b13c24277
commit 39971b1e1a
3 changed files with 21 additions and 26 deletions

View File

@ -187,7 +187,7 @@ void BTPlayer::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "behavior_tree", PROPERTY_HINT_RESOURCE_TYPE, "BehaviorTree"), "set_behavior_tree", "get_behavior_tree"); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "behavior_tree", PROPERTY_HINT_RESOURCE_TYPE, "BehaviorTree"), "set_behavior_tree", "get_behavior_tree");
ADD_PROPERTY(PropertyInfo(Variant::INT, "update_mode", PROPERTY_HINT_ENUM, "Idle,Physics,Manual"), "set_update_mode", "get_update_mode"); ADD_PROPERTY(PropertyInfo(Variant::INT, "update_mode", PROPERTY_HINT_ENUM, "Idle,Physics,Manual"), "set_update_mode", "get_update_mode");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "active"), "set_active", "get_active"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "active"), "set_active", "get_active");
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "blackboard", PROPERTY_HINT_NONE, "Blackboard", 0), "", "get_blackboard"); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "blackboard", PROPERTY_HINT_NONE, "Blackboard", 0), "set_blackboard", "get_blackboard");
ADD_PROPERTY(PropertyInfo(Variant::DICTIONARY, "_blackboard_data", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_INTERNAL), "_set_blackboard_data", "_get_blackboard_data"); ADD_PROPERTY(PropertyInfo(Variant::DICTIONARY, "_blackboard_data", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_INTERNAL), "_set_blackboard_data", "_get_blackboard_data");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "prefetch_nodepath_vars"), "set_prefetch_nodepath_vars", "get_prefetch_nodepath_vars"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "prefetch_nodepath_vars"), "set_prefetch_nodepath_vars", "get_prefetch_nodepath_vars");

View File

@ -4,7 +4,8 @@
Player of [BehaviorTree] resources. Player of [BehaviorTree] resources.
</brief_description> </brief_description>
<description> <description>
BTPlayer is used for instantiation and playback of [BehaviorTree] resources at run time. BTPlayer node is used for the instantiation and playback of [BehaviorTree] resources at runtime. During instantiation, the behavior tree instance is initialized with a reference to the agent and the [member blackboard]. Agent is the owner of the BTPlayer node (see [member Node.owner]).
For an introduction to behavior trees, see [BehaviorTree].
</description> </description>
<tutorials> <tutorials>
</tutorials> </tutorials>
@ -12,74 +13,68 @@
<method name="get_last_status" qualifiers="const"> <method name="get_last_status" qualifiers="const">
<return type="int" /> <return type="int" />
<description> <description>
Returns last execution status. See [enum BT.Status]. Returns the behavior tree's last execution status. See [enum BT.Status].
</description> </description>
</method> </method>
<method name="restart"> <method name="restart">
<return type="void" /> <return type="void" />
<description> <description>
Cancel execution of the tree and start anew. This method does not reset [Blackboard]. Resets the behavior tree's execution. Each running task will be aborted and the next tree execution will start anew. This method does not reset [Blackboard].
</description>
</method>
<method name="set_blackboard">
<return type="void" />
<param index="0" name="p_blackboard" type="Blackboard" />
<description>
Assign a [Blackboard] instance.
</description> </description>
</method> </method>
<method name="update"> <method name="update">
<return type="void" /> <return type="void" />
<param index="0" name="p_delta" type="float" /> <param index="0" name="p_delta" type="float" />
<description> <description>
Updates the tree by executing the root task. Call this method when [member update_mode] is set to [constant MANUAL]. When [member update_mode] is not set to [constant MANUAL], the tree is updated automatically. See [enum UpdateMode]. Executes the root task of the behavior tree instance if [member active] is [code]true[/code]. Call this method when [member update_mode] is set to [constant MANUAL]. When [member update_mode] is not [constant MANUAL], the [method update] will be called automatically. See [enum UpdateMode].
</description> </description>
</method> </method>
</methods> </methods>
<members> <members>
<member name="active" type="bool" setter="set_active" getter="get_active" default="true"> <member name="active" type="bool" setter="set_active" getter="get_active" default="true">
If [code]true[/code], tree is active and will be processed. If [code]true[/code], the behavior tree will be executed during update.
</member> </member>
<member name="behavior_tree" type="BehaviorTree" setter="set_behavior_tree" getter="get_behavior_tree"> <member name="behavior_tree" type="BehaviorTree" setter="set_behavior_tree" getter="get_behavior_tree">
[BehaviorTree] resource to instantiate and process at run time. [BehaviorTree] resource to instantiate and execute at runtime.
</member> </member>
<member name="blackboard" type="Blackboard" setter="" getter="get_blackboard"> <member name="blackboard" type="Blackboard" setter="set_blackboard" getter="get_blackboard">
[Blackboard] instance that contains data shared by the tasks in [BehaviorTree]. Holds data shared by the behavior tree tasks. See [Blackboard].
</member> </member>
<member name="monitor_performance" type="bool" setter="_set_monitor_performance" getter="_get_monitor_performance" default="false"> <member name="monitor_performance" type="bool" setter="_set_monitor_performance" getter="_get_monitor_performance" default="false">
Add a performance monitor to "Debugger-&gt;Monitors" for each instance of this [BTPlayer]. If [code]true[/code], adds a performance monitor to "Debugger-&gt;Monitors" for each instance of this [BTPlayer] node.
</member> </member>
<member name="prefetch_nodepath_vars" type="bool" setter="set_prefetch_nodepath_vars" getter="get_prefetch_nodepath_vars" default="true"> <member name="prefetch_nodepath_vars" type="bool" setter="set_prefetch_nodepath_vars" getter="get_prefetch_nodepath_vars" default="true">
If [code]true[/code], any NodePath variables in the [Blackboard] are replaced with references during tree instantiation. References are retrieved by calling [method Node.get_node] of BTPlayer. If [code]true[/code], any [NodePath] variables in the [Blackboard] are replaced with [Node] references when the tree is instantiated. References are retrieved by calling [method Node.get_node] on the agent instance (agent is the owner of the BTPlayer node).
</member> </member>
<member name="update_mode" type="int" setter="set_update_mode" getter="get_update_mode" enum="BTPlayer.UpdateMode" default="1"> <member name="update_mode" type="int" setter="set_update_mode" getter="get_update_mode" enum="BTPlayer.UpdateMode" default="1">
Defines when BehaviorTree is executed. See [enum UpdateMode]. Determines when the behavior tree is executed. See [enum UpdateMode].
</member> </member>
</members> </members>
<signals> <signals>
<signal name="behavior_tree_finished"> <signal name="behavior_tree_finished">
<param index="0" name="p_status" type="int" /> <param index="0" name="p_status" type="int" />
<description> <description>
Notifies when behavior tree finishes executing and returns [code]SUCCESS[/code] or [code]FAILURE[/code]. Emitted when the behavior tree has finished executing and returned [code]SUCCESS[/code] or [code]FAILURE[/code].
Argument [code]p_status[/code] holds the status returned by the behavior tree. Argument [code]p_status[/code] holds the status returned by the behavior tree. See [enum BT.Status].
</description> </description>
</signal> </signal>
<signal name="updated"> <signal name="updated">
<param index="0" name="p_status" type="int" /> <param index="0" name="p_status" type="int" />
<description> <description>
Emitted when BTPlayer has finished updating/ticking the tree. Emitted when BTPlayer has finished the behavior tree update.
Argument [code]p_status[/code] holds the status returned by the behavior tree. See [enum BT.Status].
</description> </description>
</signal> </signal>
</signals> </signals>
<constants> <constants>
<constant name="IDLE" value="0" enum="UpdateMode"> <constant name="IDLE" value="0" enum="UpdateMode">
Process tree during the idle process. Execute behavior tree during the idle process.
</constant> </constant>
<constant name="PHYSICS" value="1" enum="UpdateMode"> <constant name="PHYSICS" value="1" enum="UpdateMode">
Process tree during the physics process. Execute behavior tree during the physics process.
</constant> </constant>
<constant name="MANUAL" value="2" enum="UpdateMode"> <constant name="MANUAL" value="2" enum="UpdateMode">
Tree is processed manually by calling [method update]. Behavior tree is executed manually by calling [method update].
</constant> </constant>
</constants> </constants>
</class> </class>

View File

@ -6,7 +6,7 @@
<description> <description>
Base class for all [BehaviorTree] tasks. A task is a basic building block in a [BehaviorTree] that represents a specific behavior or control flow. Tasks are used to create complex behaviors by combining and nesting them in a hierarchy. Base class for all [BehaviorTree] tasks. A task is a basic building block in a [BehaviorTree] that represents a specific behavior or control flow. Tasks are used to create complex behaviors by combining and nesting them in a hierarchy.
A task can be one of the following types: action, condition, composite, or decorator. Each type of task has its own corresponding subclass: [BTAction], [BTCondition], [BTDecorator], [BTComposite]. A task can be one of the following types: action, condition, composite, or decorator. Each type of task has its own corresponding subclass: [BTAction], [BTCondition], [BTDecorator], [BTComposite].
Tasks perform their work and return their status using the [method _tick] method. Status values are defined in [enum BT.Status]. Tasks can be initialized using the [method _setup] method. See also [method _enter] & [method _exit]. Tasks perform their work and return their status using the [method _tick] method. Status values are defined in [enum BT.Status]. Tasks can be initialized using the [method _setup] method. See also [method _enter] &amp; [method _exit].
[b]Note:[/b] Do not extend [code]BTTask[/code] directly for your own tasks. Instead, extend one of the subtypes mentioned above. [b]Note:[/b] Do not extend [code]BTTask[/code] directly for your own tasks. Instead, extend one of the subtypes mentioned above.
</description> </description>
<tutorials> <tutorials>