summaryrefslogtreecommitdiff
path: root/player/player.gd
diff options
context:
space:
mode:
authorDaniel Weipert <git@mail.dweipert.de>2025-03-10 18:22:09 +0100
committerDaniel Weipert <git@mail.dweipert.de>2025-03-10 18:22:09 +0100
commit440020e642f539079867577435a9f8b02075699b (patch)
tree99acccfc1574a8ffc656d6f64ff934949edb1f52 /player/player.gd
initial commitHEADmain
Diffstat (limited to 'player/player.gd')
-rw-r--r--player/player.gd41
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