<?xml version="1.0" encoding="UTF-8" ?>
<class name="SpriteFrames" inherits="Resource" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Sprite frame library for AnimatedSprite2D and AnimatedSprite3D.
	</brief_description>
	<description>
		Sprite frame library for an [AnimatedSprite2D] or [AnimatedSprite3D] node. Contains frames and animation data for playback.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="add_animation">
			<return type="void" />
			<param index="0" name="anim" type="StringName" />
			<description>
				Adds a new [param anim] animation to the library.
			</description>
		</method>
		<method name="add_frame">
			<return type="void" />
			<param index="0" name="anim" type="StringName" />
			<param index="1" name="texture" type="Texture2D" />
			<param index="2" name="duration" type="float" default="1.0" />
			<param index="3" name="at_position" type="int" default="-1" />
			<description>
				Adds a frame to the [param anim] animation. If [param at_position] is [code]-1[/code], the frame will be added to the end of the animation. [param duration] specifies the relative duration, see [method get_frame_duration] for details.
			</description>
		</method>
		<method name="clear">
			<return type="void" />
			<param index="0" name="anim" type="StringName" />
			<description>
				Removes all frames from the [param anim] animation.
			</description>
		</method>
		<method name="clear_all">
			<return type="void" />
			<description>
				Removes all animations. An empty [code]default[/code] animation will be created.
			</description>
		</method>
		<method name="get_animation_loop" qualifiers="const">
			<return type="bool" />
			<param index="0" name="anim" type="StringName" />
			<description>
				Returns [code]true[/code] if the given animation is configured to loop when it finishes playing. Otherwise, returns [code]false[/code].
			</description>
		</method>
		<method name="get_animation_names" qualifiers="const">
			<return type="PackedStringArray" />
			<description>
				Returns an array containing the names associated to each animation. Values are placed in alphabetical order.
			</description>
		</method>
		<method name="get_animation_speed" qualifiers="const">
			<return type="float" />
			<param index="0" name="anim" type="StringName" />
			<description>
				Returns the speed in frames per second for the [param anim] animation.
			</description>
		</method>
		<method name="get_frame_count" qualifiers="const">
			<return type="int" />
			<param index="0" name="anim" type="StringName" />
			<description>
				Returns the number of frames for the [param anim] animation.
			</description>
		</method>
		<method name="get_frame_duration" qualifiers="const">
			<return type="float" />
			<param index="0" name="anim" type="StringName" />
			<param index="1" name="idx" type="int" />
			<description>
				Returns a relative duration of the frame [param idx] in the [param anim] animation (defaults to [code]1.0[/code]). For example, a frame with a duration of [code]2.0[/code] is displayed twice as long as a frame with a duration of [code]1.0[/code]. You can calculate the absolute duration (in seconds) of a frame using the following formula:
				[codeblock]
				absolute_duration = relative_duration / (animation_fps * abs(playing_speed))
				[/codeblock]
				In this example, [code]playing_speed[/code] refers to either [method AnimatedSprite2D.get_playing_speed] or [method AnimatedSprite3D.get_playing_speed].
			</description>
		</method>
		<method name="get_frame_texture" qualifiers="const">
			<return type="Texture2D" />
			<param index="0" name="anim" type="StringName" />
			<param index="1" name="idx" type="int" />
			<description>
				Returns the texture of the frame [param idx] in the [param anim] animation.
			</description>
		</method>
		<method name="has_animation" qualifiers="const">
			<return type="bool" />
			<param index="0" name="anim" type="StringName" />
			<description>
				Returns [code]true[/code] if the [param anim] animation exists.
			</description>
		</method>
		<method name="remove_animation">
			<return type="void" />
			<param index="0" name="anim" type="StringName" />
			<description>
				Removes the [param anim] animation.
			</description>
		</method>
		<method name="remove_frame">
			<return type="void" />
			<param index="0" name="anim" type="StringName" />
			<param index="1" name="idx" type="int" />
			<description>
				Removes the [param anim] animation's frame [param idx].
			</description>
		</method>
		<method name="rename_animation">
			<return type="void" />
			<param index="0" name="anim" type="StringName" />
			<param index="1" name="newname" type="StringName" />
			<description>
				Changes the [param anim] animation's name to [param newname].
			</description>
		</method>
		<method name="set_animation_loop">
			<return type="void" />
			<param index="0" name="anim" type="StringName" />
			<param index="1" name="loop" type="bool" />
			<description>
				If [param loop] is [code]true[/code], the [param anim] animation will loop when it reaches the end, or the start if it is played in reverse.
			</description>
		</method>
		<method name="set_animation_speed">
			<return type="void" />
			<param index="0" name="anim" type="StringName" />
			<param index="1" name="fps" type="float" />
			<description>
				Sets the speed for the [param anim] animation in frames per second.
			</description>
		</method>
		<method name="set_frame">
			<return type="void" />
			<param index="0" name="anim" type="StringName" />
			<param index="1" name="idx" type="int" />
			<param index="2" name="texture" type="Texture2D" />
			<param index="3" name="duration" type="float" default="1.0" />
			<description>
				Sets the [param texture] and the [param duration] of the frame [param idx] in the [param anim] animation. [param duration] specifies the relative duration, see [method get_frame_duration] for details.
			</description>
		</method>
	</methods>
</class>
