85 lines
3.8 KiB
XML
85 lines
3.8 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="Blackboard" inherits="RefCounted" version="4.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd">
|
|
<brief_description>
|
|
A key/value storage for sharing among [LimboHSM] states and [BehaviorTree] tasks.
|
|
</brief_description>
|
|
<description>
|
|
Blackboard is where data is stored and shared between states in the [LimboHSM] system and tasks in a [BehaviorTree]. Each state and task in the [BehaviorTree] can access this Blackboard, allowing them to read and write data. This makes it easy to share information between different actions and behaviors.
|
|
Blackboard can also act as a parent scope for another Blackboard. If a specific variable is not found in the active scope, it looks in the parent Blackboard to find it. A parent Blackboard can itself have its own parent scope, forming what we call a "blackboard scope chain." Importantly, there is no limit to how many Blackboards can be in this chain, and the Blackboard doesn't modify values in the parent scopes.
|
|
New scopes can be created using the [BTNewScope] and [BTSubtree] decorators. Additionally, a new scope is automatically created for any [LimboState] that has defined non-empty Blackboard data or for any root-level [LimboHSM] node.
|
|
</description>
|
|
<tutorials>
|
|
</tutorials>
|
|
<methods>
|
|
<method name="erase_var">
|
|
<return type="void" />
|
|
<param index="0" name="p_key" type="Variant" />
|
|
<description>
|
|
Removes a variable by its name.
|
|
</description>
|
|
</method>
|
|
<method name="get_data" qualifiers="const">
|
|
<return type="Dictionary" />
|
|
<description>
|
|
Returns Blackboard data as a [Dictionary].
|
|
</description>
|
|
</method>
|
|
<method name="get_parent_scope" qualifiers="const">
|
|
<return type="Blackboard" />
|
|
<description>
|
|
Returns a Blackboard that serves as the parent scope for this instance.
|
|
</description>
|
|
</method>
|
|
<method name="get_var" qualifiers="const">
|
|
<return type="Variant" />
|
|
<param index="0" name="p_key" type="Variant" />
|
|
<param index="1" name="p_default" type="Variant" default="null" />
|
|
<description>
|
|
Returns variable value.
|
|
</description>
|
|
</method>
|
|
<method name="has_var" qualifiers="const">
|
|
<return type="bool" />
|
|
<param index="0" name="p_key" type="Variant" />
|
|
<description>
|
|
Returns [code]true[/code] if the Blackboard contains the [code]p_key[/code] variable, including the parent scopes.
|
|
</description>
|
|
</method>
|
|
<method name="prefetch_nodepath_vars">
|
|
<return type="void" />
|
|
<param index="0" name="p_node" type="Node" />
|
|
<description>
|
|
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.
|
|
</description>
|
|
</method>
|
|
<method name="set_data">
|
|
<return type="void" />
|
|
<param index="0" name="p_data" type="Dictionary" />
|
|
<description>
|
|
Overwrites Blackboard data, replacing any previously stored variables within current scope. Use with caution.
|
|
</description>
|
|
</method>
|
|
<method name="set_parent_scope">
|
|
<return type="void" />
|
|
<param index="0" name="p_blackboard" type="Blackboard" />
|
|
<description>
|
|
Assigns the parent scope. If a value isn't in the current Blackboard scope, it will look in the parent scope Blackboard to find it.
|
|
</description>
|
|
</method>
|
|
<method name="set_var">
|
|
<return type="void" />
|
|
<param index="0" name="p_key" type="Variant" />
|
|
<param index="1" name="p_value" type="Variant" />
|
|
<description>
|
|
Assigns a value to a Blackboard variable.
|
|
</description>
|
|
</method>
|
|
<method name="top" qualifiers="const">
|
|
<return type="Blackboard" />
|
|
<description>
|
|
Returns the topmost [Blackboard] in the scope chain.
|
|
</description>
|
|
</method>
|
|
</methods>
|
|
</class>
|