]> Untitled Git - wolf-seeking-sheep.git/blob - addons/dialogic/Modules/Character/DefaultAnimations/zoom_in_out.gd
Squashed commit of the following:
[wolf-seeking-sheep.git] / addons / dialogic / Modules / Character / DefaultAnimations / zoom_in_out.gd
1 extends DialogicAnimation
2
3 func animate() -> void:
4         var modulate_property := get_modulation_property()
5         var modulate_alpha_property := modulate_property + ":a"
6
7         var end_scale: Vector2 = node.scale
8         var end_modulation_alpha := 1.0
9
10         if is_reversed:
11                 end_scale = Vector2(0, 0)
12                 end_modulation_alpha = 0.0
13
14         else:
15                 node.scale = Vector2(0,0)
16
17                 var original_modulation: Color = node.get(modulate_property)
18                 original_modulation.a = 0.0
19                 node.set(modulate_property, original_modulation)
20
21         var tween := (node.create_tween() as Tween)
22         tween.set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_EXPO)
23         tween.set_parallel(true)
24         tween.tween_property(node, "scale", end_scale, time)
25         tween.tween_property(node, modulate_alpha_property, end_modulation_alpha, time)
26
27         await tween.finished
28         finished_once.emit()
29
30
31 func _get_named_variations() -> Dictionary:
32         return {
33                 "zoom in": {"reversed": false, "type": AnimationType.IN},
34                 "zoom out": {"reversed": true, "type": AnimationType.OUT},
35         }