class_name SpawnSystem
extends System

func query():
	# Find all entities that have both transform and velocity
	return q.with_all([C_SpawnPoint]).enabled()

func process(entities: Array[Entity], _components: Array, delta: float):
	for entity in entities:
		var spawn_point = entity.get_component(C_SpawnPoint) as C_SpawnPoint
		
		if not spawn_point.should_spawn():
			spawn_point.spawn_cooldown -= delta
			continue
			
		var spawned = spawn_point.spawn_prefab.instantiate() as Entity
		get_tree().current_scene.add_child(spawned)
		ECS.world.add_entity(spawned)
		
		spawned.global_position = entity.global_position
		spawn_point.start_spawn_cooldown()
