<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationTreePlayer" inherits="Node" category="Core" version="3.2">
	<brief_description>
		Animation Player that uses a node graph for blending Animations.
	</brief_description>
	<description>
		A node graph tool for blending multiple animations bound to an [AnimationPlayer]. Especially useful for animating characters or other skeleton-based rigs. It can combine several animations to form a desired pose.
		It takes [Animation]s from an [AnimationPlayer] node and mixes them depending on the graph.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="add_node">
			<return type="void">
			</return>
			<argument index="0" name="type" type="int" enum="AnimationTreePlayer.NodeType">
			</argument>
			<argument index="1" name="id" type="String">
			</argument>
			<description>
				Adds a [code]type[/code] node to the graph with name [code]id[/code].
			</description>
		</method>
		<method name="advance">
			<return type="void">
			</return>
			<argument index="0" name="delta" type="float">
			</argument>
			<description>
				Shifts position in the animation timeline. Delta is the time in seconds to shift. Events between the current frame and [code]delta[/code] are handled.
			</description>
		</method>
		<method name="animation_node_get_animation" qualifiers="const">
			<return type="Animation">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns the [AnimationPlayer]'s [Animation] bound to the [AnimationTreePlayer]'s animation node with name [code]id[/code].
			</description>
		</method>
		<method name="animation_node_get_master_animation" qualifiers="const">
			<return type="String">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns the name of the [member master_player]'s [Animation] bound to this animation node.
			</description>
		</method>
		<method name="animation_node_get_position" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
			</description>
		</method>
		<method name="animation_node_set_animation">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="animation" type="Animation">
			</argument>
			<description>
				Binds a new [Animation] from the [member master_player] to the [AnimationTreePlayer]'s animation node with name [code]id[/code].
			</description>
		</method>
		<method name="animation_node_set_filter_path">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="path" type="NodePath">
			</argument>
			<argument index="2" name="enable" type="bool">
			</argument>
			<description>
				If [code]enable[/code] is [code]true[/code], the animation node with ID [code]id[/code] turns off the track modifying the property at [code]path[/code]. The modified node's children continue to animate.
			</description>
		</method>
		<method name="animation_node_set_master_animation">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="source" type="String">
			</argument>
			<description>
				Binds the [Animation] named [code]source[/code] from [member master_player] to the animation node [code]id[/code]. Recalculates caches.
			</description>
		</method>
		<method name="are_nodes_connected" qualifiers="const">
			<return type="bool">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="dst_id" type="String">
			</argument>
			<argument index="2" name="dst_input_idx" type="int">
			</argument>
			<description>
				Returns whether node [code]id[/code] and [code]dst_id[/code] are connected at the specified slot.
			</description>
		</method>
		<method name="blend2_node_get_amount" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns the blend amount of a Blend2 node given its name.
			</description>
		</method>
		<method name="blend2_node_set_amount">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="blend" type="float">
			</argument>
			<description>
				Sets the blend amount of a Blend2 node given its name and value.
				A Blend2 Node blends two animations with the amount between 0 and 1.
				At 0, Output is input a.
				Towards 1, the influence of a gets lessened, the influence of b gets raised.
				At 1, Output is input b.
			</description>
		</method>
		<method name="blend2_node_set_filter_path">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="path" type="NodePath">
			</argument>
			<argument index="2" name="enable" type="bool">
			</argument>
			<description>
				If [code]enable[/code] is [code]true[/code], the blend2 node with ID [code]id[/code] turns off the track modifying the property at [code]path[/code]. The modified node's children continue to animate.
			</description>
		</method>
		<method name="blend3_node_get_amount" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns the blend amount of a Blend3 node given its name.
			</description>
		</method>
		<method name="blend3_node_set_amount">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="blend" type="float">
			</argument>
			<description>
				Sets the blend amount of a Blend3 node given its name and value.
				A Blend3 Node blends three animations with the amount between -1 and 1.
				At -1, Output is input b-.
				From -1 to 0, the influence of b- gets lessened, the influence of a gets raised and the influence of b+ is 0.
				At 0, Output is input a.
				From 0 to 1, the influence of a gets lessened, the influence of b+ gets raised and the influence of b+ is 0.
				At 1, Output is input b+.
			</description>
		</method>
		<method name="blend4_node_get_amount" qualifiers="const">
			<return type="Vector2">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns the blend amount of a Blend4 node given its name.
			</description>
		</method>
		<method name="blend4_node_set_amount">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="blend" type="Vector2">
			</argument>
			<description>
				Sets the blend amount of a Blend4 node given its name and value.
				A Blend4 Node blends two pairs of animations.
				The two pairs are blended like blend2 and then added together.
			</description>
		</method>
		<method name="connect_nodes">
			<return type="int" enum="Error">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="dst_id" type="String">
			</argument>
			<argument index="2" name="dst_input_idx" type="int">
			</argument>
			<description>
				Connects node [code]id[/code] to [code]dst_id[/code] at the specified input slot.
			</description>
		</method>
		<method name="disconnect_nodes">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="dst_input_idx" type="int">
			</argument>
			<description>
				Disconnects nodes connected to [code]id[/code] at the specified input slot.
			</description>
		</method>
		<method name="get_node_list">
			<return type="PoolStringArray">
			</return>
			<description>
				Returns a [PoolStringArray] containing the name of all nodes.
			</description>
		</method>
		<method name="mix_node_get_amount" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns mix amount of a Mix node given its name.
			</description>
		</method>
		<method name="mix_node_set_amount">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="ratio" type="float">
			</argument>
			<description>
				Sets mix amount of a Mix node given its name and value.
				A Mix node adds input b to input a by the amount given by ratio.
			</description>
		</method>
		<method name="node_exists" qualifiers="const">
			<return type="bool">
			</return>
			<argument index="0" name="node" type="String">
			</argument>
			<description>
				Check if a node exists (by name).
			</description>
		</method>
		<method name="node_get_input_count" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns the input count for a given node. Different types of nodes have different amount of inputs.
			</description>
		</method>
		<method name="node_get_input_source" qualifiers="const">
			<return type="String">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="idx" type="int">
			</argument>
			<description>
				Returns the input source for a given node input.
			</description>
		</method>
		<method name="node_get_position" qualifiers="const">
			<return type="Vector2">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns position of a node in the graph given its name.
			</description>
		</method>
		<method name="node_get_type" qualifiers="const">
			<return type="int" enum="AnimationTreePlayer.NodeType">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Gets the node type, will return from [enum NodeType] enum.
			</description>
		</method>
		<method name="node_rename">
			<return type="int" enum="Error">
			</return>
			<argument index="0" name="node" type="String">
			</argument>
			<argument index="1" name="new_name" type="String">
			</argument>
			<description>
				Rename a node in the graph.
			</description>
		</method>
		<method name="node_set_position">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="screen_position" type="Vector2">
			</argument>
			<description>
				Sets position of a node in the graph given its name and position.
			</description>
		</method>
		<method name="oneshot_node_get_autorestart_delay" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns autostart delay of a OneShot node given its name.
			</description>
		</method>
		<method name="oneshot_node_get_autorestart_random_delay" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns autostart random delay of a OneShot node given its name.
			</description>
		</method>
		<method name="oneshot_node_get_fadein_time" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns fade in time of a OneShot node given its name.
			</description>
		</method>
		<method name="oneshot_node_get_fadeout_time" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns fade out time of a OneShot node given its name.
			</description>
		</method>
		<method name="oneshot_node_has_autorestart" qualifiers="const">
			<return type="bool">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns whether a OneShot node will auto restart given its name.
			</description>
		</method>
		<method name="oneshot_node_is_active" qualifiers="const">
			<return type="bool">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns whether a OneShot node is active given its name.
			</description>
		</method>
		<method name="oneshot_node_set_autorestart">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="enable" type="bool">
			</argument>
			<description>
				Sets autorestart property of a OneShot node given its name and value.
			</description>
		</method>
		<method name="oneshot_node_set_autorestart_delay">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="delay_sec" type="float">
			</argument>
			<description>
				Sets autorestart delay of a OneShot node given its name and value in seconds.
			</description>
		</method>
		<method name="oneshot_node_set_autorestart_random_delay">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="rand_sec" type="float">
			</argument>
			<description>
				Sets autorestart random delay of a OneShot node given its name and value in seconds.
			</description>
		</method>
		<method name="oneshot_node_set_fadein_time">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="time_sec" type="float">
			</argument>
			<description>
				Sets fade in time of a OneShot node given its name and value in seconds.
			</description>
		</method>
		<method name="oneshot_node_set_fadeout_time">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="time_sec" type="float">
			</argument>
			<description>
				Sets fade out time of a OneShot node given its name and value in seconds.
			</description>
		</method>
		<method name="oneshot_node_set_filter_path">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="path" type="NodePath">
			</argument>
			<argument index="2" name="enable" type="bool">
			</argument>
			<description>
				If [code]enable[/code] is [code]true[/code], the oneshot node with ID [code]id[/code] turns off the track modifying the property at [code]path[/code]. The modified node's children continue to animate.
			</description>
		</method>
		<method name="oneshot_node_start">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Starts a OneShot node given its name.
			</description>
		</method>
		<method name="oneshot_node_stop">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Stops the OneShot node with name [code]id[/code].
			</description>
		</method>
		<method name="recompute_caches">
			<return type="void">
			</return>
			<description>
				Manually recalculates the cache of track information generated from animation nodes. Needed when external sources modify the animation nodes' state.
			</description>
		</method>
		<method name="remove_node">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Removes the animation node with name [code]id[/code].
			</description>
		</method>
		<method name="reset">
			<return type="void">
			</return>
			<description>
				Resets this [AnimationTreePlayer].
			</description>
		</method>
		<method name="timescale_node_get_scale" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns time scale value of the TimeScale node with name [code]id[/code].
			</description>
		</method>
		<method name="timescale_node_set_scale">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="scale" type="float">
			</argument>
			<description>
				Sets the time scale of the TimeScale node with name [code]id[/code] to [code]scale[/code].
				The timescale node is used to speed [Animation]s up if the scale is above 1 or slow them down if it is below 1.
				If applied after a blend or mix, affects all input animations to that blend or mix.
			</description>
		</method>
		<method name="timeseek_node_seek">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="seconds" type="float">
			</argument>
			<description>
				Sets the time seek value of the TimeSeek node with name [code]id[/code] to [code]seconds[/code].
				This functions as a seek in the [Animation] or the blend or mix of [Animation]s input in it.
			</description>
		</method>
		<method name="transition_node_delete_input">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="input_idx" type="int">
			</argument>
			<description>
				Deletes the input at [code]input_idx[/code] for the transition node with name [code]id[/code].
			</description>
		</method>
		<method name="transition_node_get_current" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns the index of the currently evaluated input for the transition node with name [code]id[/code].
			</description>
		</method>
		<method name="transition_node_get_input_count" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns the number of inputs for the transition node with name [code]id[/code]. You can add inputs by rightclicking on the transition node.
			</description>
		</method>
		<method name="transition_node_get_xfade_time" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<description>
				Returns the cross fade time for the transition node with name [code]id[/code].
			</description>
		</method>
		<method name="transition_node_has_input_auto_advance" qualifiers="const">
			<return type="bool">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="input_idx" type="int">
			</argument>
			<description>
				Returns [code]true[/code] if the input at [code]input_idx[/code] on transition node with name [code]id[/code] is set to automatically advance to the next input upon completion.
			</description>
		</method>
		<method name="transition_node_set_current">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="input_idx" type="int">
			</argument>
			<description>
				The transition node with name [code]id[/code] sets its current input at [code]input_idx[/code].
			</description>
		</method>
		<method name="transition_node_set_input_auto_advance">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="input_idx" type="int">
			</argument>
			<argument index="2" name="enable" type="bool">
			</argument>
			<description>
				The transition node with name [code]id[/code] advances to its next input automatically when the input at [code]input_idx[/code] completes.
			</description>
		</method>
		<method name="transition_node_set_input_count">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="count" type="int">
			</argument>
			<description>
				Resizes the number of inputs available for the transition node with name [code]id[/code].
			</description>
		</method>
		<method name="transition_node_set_xfade_time">
			<return type="void">
			</return>
			<argument index="0" name="id" type="String">
			</argument>
			<argument index="1" name="time_sec" type="float">
			</argument>
			<description>
				The transition node with name [code]id[/code] sets its cross fade time to [code]time_sec[/code].
			</description>
		</method>
	</methods>
	<members>
		<member name="active" type="bool" setter="set_active" getter="is_active" default="false">
			If [code]true[/code], the [AnimationTreePlayer] is able to play animations.
		</member>
		<member name="base_path" type="NodePath" setter="set_base_path" getter="get_base_path" default="NodePath(&quot;..&quot;)">
			The node from which to relatively access other nodes.
			It accesses the Bones, so it should point to the same Node the AnimationPlayer would point its Root Node at.
		</member>
		<member name="master_player" type="NodePath" setter="set_master_player" getter="get_master_player" default="NodePath(&quot;&quot;)">
			The path to the [AnimationPlayer] from which this [AnimationTreePlayer] binds animations to animation nodes.
			Once set, Animation nodes can be added to the AnimationTreePlayer.
		</member>
		<member name="playback_process_mode" type="int" setter="set_animation_process_mode" getter="get_animation_process_mode" enum="AnimationTreePlayer.AnimationProcessMode" default="1">
			The thread in which to update animations.
		</member>
	</members>
	<constants>
		<constant name="NODE_OUTPUT" value="0" enum="NodeType">
			Output node.
		</constant>
		<constant name="NODE_ANIMATION" value="1" enum="NodeType">
			Animation node.
		</constant>
		<constant name="NODE_ONESHOT" value="2" enum="NodeType">
			OneShot node.
		</constant>
		<constant name="NODE_MIX" value="3" enum="NodeType">
			Mix node.
		</constant>
		<constant name="NODE_BLEND2" value="4" enum="NodeType">
			Blend2 node.
		</constant>
		<constant name="NODE_BLEND3" value="5" enum="NodeType">
			Blend3 node.
		</constant>
		<constant name="NODE_BLEND4" value="6" enum="NodeType">
			Blend4 node.
		</constant>
		<constant name="NODE_TIMESCALE" value="7" enum="NodeType">
			TimeScale node.
		</constant>
		<constant name="NODE_TIMESEEK" value="8" enum="NodeType">
			TimeSeek node.
		</constant>
		<constant name="NODE_TRANSITION" value="9" enum="NodeType">
			Transition node.
		</constant>
		<constant name="ANIMATION_PROCESS_PHYSICS" value="0" enum="AnimationProcessMode">
			Process animation during the physics process. This is especially useful when animating physics bodies.
		</constant>
		<constant name="ANIMATION_PROCESS_IDLE" value="1" enum="AnimationProcessMode">
			Process animation during the idle process.
		</constant>
	</constants>
</class>
