summaryrefslogtreecommitdiff
path: root/player/player.gd
blob: 93920c647789bd995e2f572b79f8b16b83a71a5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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