Skip to content

Commit

Permalink
Merge pull request #60581 from timothyqiu/neo-tween
Browse files Browse the repository at this point in the history
  • Loading branch information
akien-mga authored Apr 29, 2022
2 parents 036f36b + 153dc4d commit 3a3dd20
Show file tree
Hide file tree
Showing 25 changed files with 2,221 additions and 351 deletions.
12 changes: 7 additions & 5 deletions COPYRIGHT.txt
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,13 @@ Copyright: 1997-2017, Sam Lantinga
2014-2022, Godot Engine contributors.
License: Expat and Zlib

Files: ./scene/animation/easing_equations.h
Comment: Robert Penner's Easing Functions
Copyright: 2001, Robert Penner
2007-2022 Juan Linietsky, Ariel Manzur.
2014-2022 Godot Engine contributors.
License: Expat

Files: ./servers/physics/collision_solver_sat.cpp
Comment: Open Dynamics Engine
Copyright: 2001-2003, Russell L. Smith, Alen Ladavac, Nguyen Binh
Expand Down Expand Up @@ -273,11 +280,6 @@ Comment: Clipper
Copyright: 2010-2017, Angus Johnson
License: BSL-1.0

Files: ./thirdparty/misc/easing_equations.cpp
Comment: Robert Penner's Easing Functions
Copyright: 2001, Robert Penner
License: BSD-3-clause

Files: ./thirdparty/misc/fastlz.c
./thirdparty/misc/fastlz.h
Comment: FastLZ
Expand Down
27 changes: 27 additions & 0 deletions doc/classes/CallbackTweener.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CallbackTweener" inherits="Tweener" version="3.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Calls the specified method after optional delay.
</brief_description>
<description>
[CallbackTweener] is used to call a method in a tweening sequence. See [method SceneTreeTween.tween_callback] for more usage information.
[b]Note:[/b] [method SceneTreeTween.tween_callback] is the only correct way to create [CallbackTweener]. Any [CallbackTweener] created manually will not function correctly.
</description>
<tutorials>
</tutorials>
<methods>
<method name="set_delay">
<return type="CallbackTweener" />
<argument index="0" name="delay" type="float" />
<description>
Makes the callback call delayed by given time in seconds. Example:
[codeblock]
var tween = get_tree().create_tween()
tween.tween_callback(queue_free).set_delay(2) #this will call queue_free() after 2 seconds
[/codeblock]
</description>
</method>
</methods>
<constants>
</constants>
</class>
16 changes: 16 additions & 0 deletions doc/classes/IntervalTweener.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="IntervalTweener" inherits="Tweener" version="3.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Creates an idle interval in a [SceneTreeTween] animation.
</brief_description>
<description>
[IntervalTweener] is used to make delays in a tweening sequence. See [method SceneTreeTween.tween_interval] for more usage information.
[b]Note:[/b] [method SceneTreeTween.tween_interval] is the only correct way to create [IntervalTweener]. Any [IntervalTweener] created manually will not function correctly.
</description>
<tutorials>
</tutorials>
<methods>
</methods>
<constants>
</constants>
</class>
37 changes: 37 additions & 0 deletions doc/classes/MethodTweener.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="MethodTweener" inherits="Tweener" version="3.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Interpolates an abstract value and supplies it to a method called over time.
</brief_description>
<description>
[MethodTweener] is similar to a combination of [CallbackTweener] and [PropertyTweener]. It calls a method providing an interpolated value as a parameter. See [method SceneTreeTween.tween_method] for more usage information.
[b]Note:[/b] [method SceneTreeTween.tween_method] is the only correct way to create [MethodTweener]. Any [MethodTweener] created manually will not function correctly.
</description>
<tutorials>
</tutorials>
<methods>
<method name="set_delay">
<return type="MethodTweener" />
<argument index="0" name="delay" type="float" />
<description>
Sets the time in seconds after which the [MethodTweener] will start interpolating. By default there's no delay.
</description>
</method>
<method name="set_ease">
<return type="MethodTweener" />
<argument index="0" name="ease" type="int" enum="Tween.EaseType" />
<description>
Sets the type of used easing from [enum Tween.EaseType]. If not set, the default easing is used from the [SceneTreeTween] that contains this Tweener.
</description>
</method>
<method name="set_trans">
<return type="MethodTweener" />
<argument index="0" name="trans" type="int" enum="Tween.TransitionType" />
<description>
Sets the type of used transition from [enum Tween.TransitionType]. If not set, the default transition is used from the [SceneTreeTween] that contains this Tweener.
</description>
</method>
</methods>
<constants>
</constants>
</class>
9 changes: 9 additions & 0 deletions doc/classes/Node.xml
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,15 @@
Returns [code]true[/code] if the node can process while the scene tree is paused (see [member pause_mode]). Always returns [code]true[/code] if the scene tree is not paused, and [code]false[/code] if the node is not in the tree.
</description>
</method>
<method name="create_tween">
<return type="SceneTreeTween" />
<description>
Creates a new [SceneTreeTween] and binds it to this node. This is equivalent of doing:
[codeblock]
get_tree().create_tween().bind_node(self)
[/codeblock]
</description>
</method>
<method name="duplicate" qualifiers="const">
<return type="Node" />
<argument index="0" name="flags" type="int" default="15" />
Expand Down
68 changes: 68 additions & 0 deletions doc/classes/PropertyTweener.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="PropertyTweener" inherits="Tweener" version="3.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Interpolates an [Object]'s property over time.
</brief_description>
<description>
[PropertyTweener] is used to interpolate a property in an object. See [method SceneTreeTween.tween_property] for more usage information.
[b]Note:[/b] [method SceneTreeTween.tween_property] is the only correct way to create [PropertyTweener]. Any [PropertyTweener] created manually will not function correctly.
</description>
<tutorials>
</tutorials>
<methods>
<method name="as_relative">
<return type="PropertyTweener" />
<description>
When called, the final value will be used as a relative value instead. Example:
[codeblock]
var tween = get_tree().create_tween()
tween.tween_property(self, "position", Vector2.RIGHT * 100, 1).as_relative() #the node will move by 100 pixels to the right
[/codeblock]
</description>
</method>
<method name="from">
<return type="PropertyTweener" />
<argument index="0" name="value" type="Variant" />
<description>
Sets a custom initial value to the [PropertyTweener]. Example:
[codeblock]
var tween = get_tree().create_tween()
tween.tween_property(self, "position", Vector2(200, 100), 1).from(Vector2(100, 100) #this will move the node from position (100, 100) to (200, 100)
[/codeblock]
</description>
</method>
<method name="from_current">
<return type="PropertyTweener" />
<description>
Makes the [PropertyTweener] use the current property value (i.e. at the time of creating this [PropertyTweener]) as a starting point. This is equivalent of using [method from] with the current value. These two calls will do the same:
[codeblock]
tween.tween_property(self, "position", Vector2(200, 100), 1).from(position)
tween.tween_property(self, "position", Vector2(200, 100), 1).from_current()
[/codeblock]
</description>
</method>
<method name="set_delay">
<return type="PropertyTweener" />
<argument index="0" name="delay" type="float" />
<description>
Sets the time in seconds after which the [PropertyTweener] will start interpolating. By default there's no delay.
</description>
</method>
<method name="set_ease">
<return type="PropertyTweener" />
<argument index="0" name="ease" type="int" enum="Tween.EaseType" />
<description>
Sets the type of used easing from [enum Tween.EaseType]. If not set, the default easing is used from the [Tween] that contains this Tweener.
</description>
</method>
<method name="set_trans">
<return type="PropertyTweener" />
<argument index="0" name="trans" type="int" enum="Tween.TransitionType" />
<description>
Sets the type of used transition from [enum Tween.TransitionType]. If not set, the default transition is used from the [Tween] that contains this Tweener.
</description>
</method>
</methods>
<constants>
</constants>
</class>
12 changes: 12 additions & 0 deletions doc/classes/SceneTree.xml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,12 @@
The timer will be automatically freed after its time elapses.
</description>
</method>
<method name="create_tween">
<return type="SceneTreeTween" />
<description>
Creates and returns a new [SceneTreeTween].
</description>
</method>
<method name="get_frame" qualifiers="const">
<return type="int" />
<description>
Expand Down Expand Up @@ -104,6 +110,12 @@
Returns a list of all nodes assigned to the given group.
</description>
</method>
<method name="get_processed_tweens">
<return type="Array" />
<description>
Returns an array of currently existing [SceneTreeTween]s in the [SceneTree] (both running and paused).
</description>
</method>
<method name="get_rpc_sender_id" qualifiers="const">
<return type="int" />
<description>
Expand Down
Loading

0 comments on commit 3a3dd20

Please sign in to comment.