Last active
April 6, 2020 12:09
-
-
Save doctor-g/7b44c864e7c6a5aa1006ff08e8f7811e to your computer and use it in GitHub Desktop.
Tween Pool for GDScript
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extends Node | |
class_name TweenPool | |
export(int) var initial_size = 4 | |
var _pool := [] | |
func _ready(): | |
for _i in range(4): | |
# warning-ignore:return_value_discarded | |
_make_tween_in_pool() | |
func _make_tween_in_pool() -> Tween: | |
var tween : Tween = Tween.new() | |
add_child(tween) | |
_pool.append(tween) | |
# warning-ignore:return_value_discarded | |
tween.connect("tween_all_completed", self, "_on_tween_all_completed", [tween]) | |
return tween | |
func create() -> Tween: | |
var tween : Tween = _pool.pop_back() | |
if not tween: | |
tween = _make_tween_in_pool() | |
return tween | |
func _on_tween_all_completed(tween:Tween)->void: | |
_pool.append(tween) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment