extends Camera3D

signal wall_hit(wall_id, position, cutter)

func shoot_ray() -> Dictionary:
	var mouse_position = get_viewport().get_mouse_position()
	var ray_length = 1000
	var from = project_ray_origin(mouse_position)
	var to = from + project_ray_normal(mouse_position) * ray_length
	var space = get_world_3d().direct_space_state
	var ray_query = PhysicsRayQueryParameters3D.new()
	ray_query.from = from
	ray_query.to = to
	var raycast_result = space.intersect_ray(ray_query)
	
	return raycast_result

func _input(event: InputEvent) -> void:
	if event.is_action_pressed("left_click"):
		var query_result = shoot_ray()
		if query_result:
			var cutter: PackedVector2Array = Cutter.circleCutter()
			wall_hit.emit(query_result["collider_id"], query_result["position"], cutter)
