55 lines
1.0 KiB
GDScript
55 lines
1.0 KiB
GDScript
extends TextureRect
|
|
|
|
@onready var mat := material as ShaderMaterial
|
|
|
|
signal reveal_done
|
|
signal hide_done
|
|
|
|
func _ready():
|
|
|
|
randomize()
|
|
# --- Création du bruit ---
|
|
var noise := FastNoiseLite.new()
|
|
noise.noise_type = FastNoiseLite.TYPE_SIMPLEX
|
|
noise.frequency = 20.0
|
|
noise.seed = randi()
|
|
|
|
var noise_tex := NoiseTexture2D.new()
|
|
noise_tex.noise = noise
|
|
noise_tex.width = 512
|
|
noise_tex.height = 512
|
|
noise_tex.seamless = true
|
|
|
|
mat.set_shader_parameter("noise_tex", noise_tex)
|
|
|
|
|
|
func reveal_spray():
|
|
|
|
mat.set_shader_parameter("progress", 0.0)
|
|
|
|
var tween = create_tween()
|
|
tween.tween_method(set_progress, 0.0, 1.0, 3.0) \
|
|
.set_trans(Tween.TRANS_SINE) \
|
|
.set_ease(Tween.EASE_OUT)
|
|
|
|
await tween.finished
|
|
reveal_done.emit()
|
|
|
|
|
|
func hide_spray():
|
|
|
|
mat.set_shader_parameter("progress", 1.0)
|
|
|
|
var tween = create_tween()
|
|
tween.tween_method(set_progress, 1.0, 0.0, 3.0) \
|
|
.set_trans(Tween.TRANS_SINE) \
|
|
.set_ease(Tween.EASE_OUT)
|
|
|
|
await tween.finished
|
|
hide_done.emit()
|
|
|
|
|
|
func set_progress(value: float):
|
|
|
|
mat.set_shader_parameter("progress", value)
|