class_name Player extends Area2D @onready var input_component: InputComponent = %InputComponent @onready var movement_component: MovementComponent = %MovementComponent @onready var shoot_component: ShootComponent = %ShootComponent @onready var weapon_component: WeaponComponent = %WeaponComponent @export var can_shoot: bool = true @export var is_shooting: bool = false var previous_position: Vector2 var ship_displacement: float var travel: float = 0 func _process(delta) -> void: # Read Controls input_component.update() # Read Movement Component movement_component.input = input_component.move_dir movement_component.tick(delta) # Set up shooting if input_component.shooting: is_shooting = true if travel > weapon_component.bullet_data.projectile_spacing: shoot_component.shoot() travel -= weapon_component.bullet_data.projectile_spacing else: is_shooting = false