Skip to content

Instantly share code, notes, and snippets.

@doctor-g
Last active April 6, 2020 12:09
Show Gist options
  • Save doctor-g/7b44c864e7c6a5aa1006ff08e8f7811e to your computer and use it in GitHub Desktop.
Save doctor-g/7b44c864e7c6a5aa1006ff08e8f7811e to your computer and use it in GitHub Desktop.
Tween Pool for GDScript
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