diff options
author | Daniel Weipert <git@mail.dweipert.de> | 2025-03-10 18:22:09 +0100 |
---|---|---|
committer | Daniel Weipert <git@mail.dweipert.de> | 2025-03-10 18:22:09 +0100 |
commit | 440020e642f539079867577435a9f8b02075699b (patch) | |
tree | 99acccfc1574a8ffc656d6f64ff934949edb1f52 /player/player.gd |
Diffstat (limited to 'player/player.gd')
-rw-r--r-- | player/player.gd | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/player/player.gd b/player/player.gd new file mode 100644 index 0000000..93920c6 --- /dev/null +++ b/player/player.gd @@ -0,0 +1,41 @@ +class_name Player +extends CharacterBody2D + + +var current_state: PlayerState: + set = set_state + +var current_direction: Vector2: + set = set_direction + +var current_speed := 150.0 + +@onready var state_idle: PlayerStateIdle = %StateIdle +@onready var state_moving: PlayerStateMoving = %StateMoving + +@onready var sprite: AnimatedSprite2D = $AnimatedSprite2D + +@onready var ray_cast_up: RayCast2D = $RayCastUp +@onready var ray_cast_down: RayCast2D = $RayCastDown +@onready var ray_cast_left: RayCast2D = $RayCastLeft +@onready var ray_cast_right: RayCast2D = $RayCastRight + + +func _ready() -> void: + current_state = $States/StateIdle + + +func set_state(value: PlayerState) -> void: + if current_state: + current_state._state_exit() + current_state.process_mode = Node.PROCESS_MODE_DISABLED + + current_state = value + + current_state.process_mode = Node.PROCESS_MODE_INHERIT + current_state._state_enter() + + +func set_direction(value: Vector2) -> void: + current_direction = value + Game.current_direction = value |