<?xml version="1.0" encoding="UTF-8" ?>
<class name="BBParam" inherits="Resource" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd">
	<brief_description>
		A base class for LimboAI typed parameters.
	</brief_description>
	<description>
		A base class for LimboAI typed parameters, with the ability to reference a [Blackboard] variable or hold a raw value of a specific [enum Variant.Type].
		[b]Note[/b]: Don't instantiate. Use specific subtypes instead.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="get_type" qualifiers="const">
			<return type="int" enum="Variant.Type" />
			<description>
				Returns the expected data type of the parameter.
			</description>
		</method>
		<method name="get_value">
			<return type="Variant" />
			<param index="0" name="scene_root" type="Node" />
			<param index="1" name="blackboard" type="Blackboard" />
			<param index="2" name="default" type="Variant" default="null" />
			<description>
				Returns the value of the parameter.
			</description>
		</method>
	</methods>
	<members>
		<member name="saved_value" type="Variant" setter="set_saved_value" getter="get_saved_value" default="null">
			Stores the parameter value when [member value_source] is set to [constant SAVED_VALUE]. The data type of the value is determined by [method get_type].
		</member>
		<member name="value_source" type="int" setter="set_value_source" getter="get_value_source" enum="BBParam.ValueSource" default="0">
			Specifies the source of the value for BBParam. See [enum ValueSource].
		</member>
		<member name="variable" type="StringName" setter="set_variable" getter="get_variable">
			Stores the name of a [Blackboard] variable when [member value_source] is set to [constant BLACKBOARD_VAR].
		</member>
	</members>
	<constants>
		<constant name="SAVED_VALUE" value="0" enum="ValueSource">
			The value is stored directly within the BBParam resource.
		</constant>
		<constant name="BLACKBOARD_VAR" value="1" enum="ValueSource">
			The value is referenced by a variable name and retrieved from the [Blackboard]. The variable name is stored within the BBParam resource.
		</constant>
	</constants>
</class>
