grunk/src/ui/hud/hold_hud.gd

50 lines
844 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
@onready var open_hand: Label = %OpenHand
@onready var closed_hand: Label = %ClosedHand
func _ready() -> void:
_deferred_init.call_deferred()
func _deferred_init() -> void:
Player.instance.hold_component.dropped.connect(reset)
Player.instance.hold_component.held.connect(prop_held)
2025-07-04 14:56:35 -06:00
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:
if state == State.NONE:
prop_selected()
func deselect() -> void:
if state == State.SELECTED:
reset()