extends NodeState @export_category("nodes") @export var player: Player @export var animatedSprite2D: AnimatedSprite2D @export var ledgeGrabBox: CollisionShape2D @export var wallCheck: ShapeCast2D @export var floorCheck: RayCast2D const GRAVITY = player.GRAVITY @warning_ignore("unused_parameter") func on_process(delta: float) -> void: pass @warning_ignore("unused_parameter") func on_phyisics_process(delta: float) -> void: var collision = wallCheck.get_collision_normal(0) if collision.x == -1: animatedSprite2D.flip_h = false if collision.x == 1: animatedSprite2D.flip_h = true transition_states() func enter() -> void: player.velocity.x = 0 ledgeGrabBox.disabled = false animatedSprite2D.play("Ledge Grab") func exit() -> void: ledgeGrabBox.disabled = true animatedSprite2D.stop() func transition_states() -> void: if GameInputEvents.jump_input(): transition.emit("jump") if floorCheck.is_colliding(): transition.emit("idle") if GameInputEvents.crouch_input(): ledgeGrabBox.disabled = true transition.emit("fall")