<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationTree" inherits="AnimationMixer" api_type="core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		A node used for advanced animation transitions in an [AnimationPlayer].
	</brief_description>
	<description>
		A node used for advanced animation transitions in an [AnimationPlayer].
		[b]Note:[/b] When linked with an [AnimationPlayer], several properties and methods of the corresponding [AnimationPlayer] will not function as expected. Playback and transitions should be handled using only the [AnimationTree] and its constituent [AnimationNode](s). The [AnimationPlayer] node should be used solely for adding, deleting, and editing animations.
	</description>
	<tutorials>
		<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
		<link title="Third Person Shooter (TPS) Demo">https://godotengine.org/asset-library/asset/2710</link>
	</tutorials>
	<methods>
		<method name="get_process_callback" qualifiers="const" deprecated="Use [member AnimationMixer.callback_mode_process] instead.">
			<return type="int" enum="AnimationTree.AnimationProcessCallback" />
			<description>
				Returns the process notification in which to update animations.
			</description>
		</method>
		<method name="set_process_callback" deprecated="Use [member AnimationMixer.callback_mode_process] instead.">
			<return type="void" />
			<param index="0" name="mode" type="int" enum="AnimationTree.AnimationProcessCallback" />
			<description>
				Sets the process notification in which to update animations.
			</description>
		</method>
	</methods>
	<members>
		<member name="advance_expression_base_node" type="NodePath" setter="set_advance_expression_base_node" getter="get_advance_expression_base_node" default="NodePath(&quot;.&quot;)">
			The path to the [Node] used to evaluate the [AnimationNode] [Expression] if one is not explicitly specified internally.
		</member>
		<member name="anim_player" type="NodePath" setter="set_animation_player" getter="get_animation_player" default="NodePath(&quot;&quot;)">
			The path to the [AnimationPlayer] used for animating.
		</member>
		<member name="callback_mode_discrete" type="int" setter="set_callback_mode_discrete" getter="get_callback_mode_discrete" overrides="AnimationMixer" enum="AnimationMixer.AnimationCallbackModeDiscrete" default="2" />
		<member name="deterministic" type="bool" setter="set_deterministic" getter="is_deterministic" overrides="AnimationMixer" default="true" />
		<member name="tree_root" type="AnimationRootNode" setter="set_tree_root" getter="get_tree_root">
			The root animation node of this [AnimationTree]. See [AnimationRootNode].
		</member>
	</members>
	<signals>
		<signal name="animation_player_changed">
			<description>
				Emitted when the [member anim_player] is changed.
			</description>
		</signal>
	</signals>
	<constants>
		<constant name="ANIMATION_PROCESS_PHYSICS" value="0" enum="AnimationProcessCallback" deprecated="See [constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS].">
		</constant>
		<constant name="ANIMATION_PROCESS_IDLE" value="1" enum="AnimationProcessCallback" deprecated="See [constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_IDLE].">
		</constant>
		<constant name="ANIMATION_PROCESS_MANUAL" value="2" enum="AnimationProcessCallback" deprecated="See [constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_MANUAL].">
		</constant>
	</constants>
</class>
