-
Notifications
You must be signed in to change notification settings - Fork 6
/
TexRect.gd
43 lines (36 loc) · 1.24 KB
/
TexRect.gd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
tool
extends TextureRect
###########################################################
# Attributes and Nodes
###########################################################
export(float, 0.0, 3.0, 0.1) var duration : float = 1.0
export(float, 0.0, 1.0) var fill : float = 0.0 setget _set_fill
var tween_lock : bool = false
onready var tween : Tween = $Tween
###########################################################
# Tweening
###########################################################
func show_screen():
if tween_lock or fill == 0.0:
return
tween_lock = true
if tween.interpolate_property(self, "fill", fill, 0.0, duration*(fill),
Tween.TRANS_LINEAR, Tween.EASE_IN_OUT):
if tween.start():
yield(tween, "tween_completed")
tween_lock = false
func hide_screen():
if tween_lock or fill == 1.0:
return
tween_lock = true
if tween.interpolate_property(self, "fill", fill, 1.0, duration*(1.0-fill),
Tween.TRANS_LINEAR, Tween.EASE_IN_OUT):
if tween.start():
yield(tween, "tween_completed")
tween_lock = false
###########################################################
# Set Get
###########################################################
func _set_fill(val:float):
fill = clamp(val, 0.0, 1.0)
material.set_shader_param("fill", fill)