42 lines
870 B
GDScript
42 lines
870 B
GDScript
extends NodeState
|
|
|
|
@export var character: CharacterBody2D
|
|
@export var animated_sprite_2d: AnimatedSprite2D
|
|
@export var idle_state_time_interval: float = 5.0
|
|
|
|
@onready var idle_state_timer: Timer = Timer.new()
|
|
|
|
var idle_state_timeout: bool = false
|
|
|
|
func _ready() -> void:
|
|
idle_state_timer.wait_time = idle_state_time_interval
|
|
idle_state_timer.timeout.connect(on_idle_state_timeout)
|
|
add_child(idle_state_timer)
|
|
|
|
func _on_process(_delta : float) -> void:
|
|
pass
|
|
|
|
|
|
func _on_physics_process(_delta : float) -> void:
|
|
pass
|
|
|
|
|
|
func _on_next_transitions() -> void:
|
|
if idle_state_timeout:
|
|
transition.emit("Walk")
|
|
|
|
|
|
func _on_enter() -> void:
|
|
animated_sprite_2d.play("idle")
|
|
|
|
idle_state_timeout = false
|
|
idle_state_timer.start()
|
|
|
|
|
|
func _on_exit() -> void:
|
|
animated_sprite_2d.stop()
|
|
idle_state_timer.stop()
|
|
|
|
func on_idle_state_timeout() -> void:
|
|
idle_state_timeout = true
|