extends Node2D

@export var projectile_prefab : Resource
@onready var projectilePrefab : PackedScene = load(projectile_prefab.resource_path)

func _process(_delta):
	rotate_to_pointer()
	
	if Input.is_action_just_pressed("attack") or Input.is_action_just_pressed("attack_controller"):
		spawn_projectile(self.global_position, self.rotation, 350.0, 1)
	pass
	
func get_aim_pos() -> Vector2:
	var aim_dir_controller = Input.get_vector("aim_left_controller", "aim_right_controller", "aim_up_controller", "aim_down_controller").normalized()
	return get_global_mouse_position() if aim_dir_controller.length() == 0 else self.global_position + aim_dir_controller
	
func rotate_to_pointer():
	look_at(get_aim_pos())

func spawn_projectile(pos : Vector2, dir : float, speed: float, damage : int):
	var projectile = projectilePrefab.instantiate()
	projectile.global_position = pos
	projectile.dir = dir
	projectile.speed = speed
	projectile.damage = damage
	projectile.is_displayed_folded()
	get_tree().root.add_child(projectile)
	pass
