frame-of-mind/src/logic-scenes/misc/skip_control.gd

51 lines
1.3 KiB
GDScript3
Raw Normal View History

2023-08-01 08:52:08 +00:00
extends Control
signal skip
@export var skip_delay: float = 0.5
@export var costum_owner: NodePath
var time_pressed: float = 0
@onready var button: Button = $"Skip Button"
@onready var progress: ProgressBar = $ProgressBar
var pressed: bool
func _ready():
2024-10-06 09:31:47 +00:00
if costum_owner != NodePath(""):
owner = get_node(costum_owner)
2024-09-15 09:30:31 +00:00
if owner == null:
owner = get_parent().get_parent()
owner.connect("visibility_changed", Callable(self, "owner_visibility_changed"))
visible = owner.visible
2023-08-01 08:52:08 +00:00
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
2024-09-15 09:30:31 +00:00
if pressed and visible:
time_pressed += delta
progress.value = time_pressed / skip_delay
if time_pressed >= skip_delay:
emit_signal("skip")
pressed = false
time_pressed = 0
2024-09-19 10:29:35 +00:00
if get_parent().get_parent().name == "draeven":
await(get_tree().create_timer(0.1).timeout)
get_parent().get_parent().get_parent().queue("intro")
2024-09-15 09:30:31 +00:00
2023-08-01 08:52:08 +00:00
func _input(event):
2024-09-15 09:30:31 +00:00
if visible:
if event.is_action_pressed("skip"):
pressed = true
elif event.is_action_released("skip"):
pressed = false
time_pressed = 0
2023-08-01 08:52:08 +00:00
func owner_visibility_changed():
2024-09-15 09:30:31 +00:00
visible = owner.visible
2023-08-01 08:52:08 +00:00
func _on_skip_button_toggled(button_pressed):
2024-09-15 09:30:31 +00:00
if button_pressed:
pressed = true
else:
pressed = false
time_pressed = 0