generated from krampus/template-godot4
50 lines
844 B
GDScript
50 lines
844 B
GDScript
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()
|