51 lines
1.2 KiB
GDScript
51 lines
1.2 KiB
GDScript
class_name MovementComponent
|
|
extends Node
|
|
|
|
export var debug_component: bool = false
|
|
|
|
onready var desired_movement_vector: Vector2 = Vector2(0,0)
|
|
var current_movement_state:String
|
|
|
|
#Can't use floats here, switched to constants.
|
|
#enum directions {UP = -1, DOWN = 1, LEFT, RIGHT}
|
|
|
|
const UP = -1.0
|
|
const DOWN = 1.0
|
|
const LEFT = -1.0
|
|
const RIGHT = 1.0
|
|
|
|
func process_physics(delta):
|
|
pass
|
|
|
|
func process(delta):
|
|
pass
|
|
|
|
func process_input(event: InputEvent):
|
|
pass
|
|
|
|
# A Series of helper functions
|
|
func go_up():
|
|
desired_movement_vector.y = UP
|
|
func go_down():
|
|
desired_movement_vector.y = DOWN
|
|
func go_left():
|
|
desired_movement_vector.x = LEFT
|
|
func go_right():
|
|
desired_movement_vector.x = RIGHT
|
|
func stop():
|
|
desired_movement_vector = Vector2(0,0)
|
|
|
|
# Return the desired direction of movement for the character
|
|
# in the range [-1, 1], where positive values indicate a desire
|
|
# to move to the right and negative values to the left.
|
|
func get_movement_direction() -> float:
|
|
return desired_movement_vector.x
|
|
|
|
# Return a boolean indicating if the character wants to jump
|
|
func wants_jump() -> bool:
|
|
return false
|
|
|
|
# Return a boolean indicating if the character wants to attack
|
|
func wants_shoot() -> bool:
|
|
return false
|