extends PlayerComponent class_name StateHints #affiche dans le HUD les hints de l'etat courant du joueur (PlayerState.get_hints). La StateMachine, generique, ne connait pas le HUD : #ce composant ecoute ses changements d'etat et les hints_changed des etats. #composant a ajouter sous le PlayerCharacter (le nom du node est libre, voir PlayerComponent). func register_with_player() -> void: player.state_hints = self func _ready() -> void: var machine : StateMachine = player.state_machine machine.state_changed.connect(_on_state_changed) for child in machine.get_children(): if child is PlayerState: child.hints_changed.connect(_on_hints_changed.bind(child)) func _exit_tree() -> void: Hints.clear_hints(self) func _on_state_changed(_from : State, _to : State) -> void: publish() func _on_hints_changed(state : PlayerState) -> void: if state == player.state_machine.curr_state: publish() func publish() -> void: var state := player.state_machine.curr_state as PlayerState if state and !state.keep_previous_hints: Hints.show_hints(self, state.get_hints())