grunk/src/ui/hud/hold_hud.gd

50 lines
820 B
GDScript3
Raw Normal View History

2025-07-04 14:56:35 -06:00
class_name HoldHUD extends Control
enum State {
NONE,
SELECTED,
HELD,
}
var state := State.NONE
var _selected_this_frame := false
@onready var open_hand: Label = %OpenHand
@onready var closed_hand: Label = %ClosedHand
func prop_selected() -> void:
state = State.SELECTED
open_hand.visible = true
closed_hand.visible = false
func prop_held() -> void:
state = State.HELD
open_hand.visible = false
closed_hand.visible = true
func reset() -> void:
state = State.NONE
open_hand.visible = false
closed_hand.visible = false
func select_prop() -> void:
_selected_this_frame = true
if state == State.NONE:
prop_selected()
func deselect() -> void:
if state == State.SELECTED:
reset()
func _process(_delta: float) -> void:
if not _selected_this_frame:
deselect()
_selected_this_frame = false