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) 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()