64 lines
1.3 KiB
GDScript
64 lines
1.3 KiB
GDScript
extends TextureRect
|
|
|
|
@onready var mat := material as ShaderMaterial
|
|
|
|
signal reveal_done
|
|
signal hide_done
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready() -> void:
|
|
|
|
#Hiding
|
|
hide()
|
|
|
|
#Setting up shader
|
|
randomize()
|
|
#Noise setup
|
|
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 = 1920
|
|
noise_tex.height = 1080
|
|
noise_tex.seamless = true
|
|
|
|
mat.set_shader_parameter("noise_tex", noise_tex)
|
|
|
|
|
|
#Revealing game over in a noise spray
|
|
func reveal_spray():
|
|
|
|
show()
|
|
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()
|
|
|
|
|
|
#hiding game over in a hiding spray
|
|
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()
|
|
hide_done.emit()
|
|
|
|
|
|
#Progressing the reveal/hide
|
|
func set_progress(value: float):
|
|
mat.set_shader_parameter("progress", value)
|