### Godot version

4.1 RC3

### System information

Windows 11 AMD Ryzen 5950x

### Issue description

Actually should be pretty simple, as of commit: https://github.com/godotengine/godot/commit/1c93606e470f0cad5f14af104ccb89a95a89931c

SurfaceTool's add_triangle_fan() maps its parameters like so:
`add_triangle_fan(p_vertices, p_uv2s, p_colors, p_uv2s, p_normals, Variant(p_tangents));`

As you can see its using **p_uv2s** as the 2nd _and_ 4th parameters, and isn't using **p_uvs** at all which ought to be the 2nd parameter. The 2nd parameter at the moment does nothing at all.

As a result I had to change my code from:
`surface_tool.add_triangle_fan(vertices, [uvs[0], uvs[1], uvs[2], uvs[1], uvs[3], uvs[2]])`
To:
`surface_tool.add_triangle_fan(vertices, [], [], [uvs[0], uvs[1], uvs[2], uvs[1], uvs[3], uvs[2]])`

### Steps to reproduce

Use add_triangle_fan and place your UVs as the 2nd parameter, your mesh will be black. When you change your uvs to the 4th parameter, it correctly maps.

### Minimal reproduction project

Should be trivial to reproduce (and to see why it's broken in this commit)
ERR_FAIL_COND_MSG(!generate_remap_func || !remap_vertex_func || !remap_index_func, "Meshoptimizer library is not initialized.");
	Vector<uint32_t> remap;
	remap.resize(r_vertices.size());
	uint32_t new_vertex_count = generate_remap_func(remap.ptrw(), (unsigned int *)r_indices.ptr(), r_indices.size(), r_vertices.ptr(), r_vertices.size(), sizeof(Vector3));
	remap_vertex_func(r_vertices.ptrw(), r_vertices.ptr(), r_vertices.size(), sizeof(Vector3), remap.ptr());
	r_vertices.resize(new_vertex_count);
	remap_index_func((unsigned int *)r_indices.ptrw(), (unsigned int *)r_indices.ptr(), r_indices.size(), remap.ptr());
	HashMap<const int *, bool, TriangleHasher, TriangleHasher> found_triangles;
	int *idx_ptr = r_indices.ptrw();
	int filtered_indices_count = 0;
	for (int i = 0; i < r_indices.size() / 3; i++) {
		const int *tri = idx_ptr + (i * 3);
		if (tri[0] == tri[1] || tri[1] == tri[2] || tri[2] == tri[0]) {
			continue;
		}
		if (found_triangles.has(tri)) {
			continue;
		}
		if (i != filtered_indices_count) {
			memcpy(idx_ptr + (filtered_indices_count * 3), tri, sizeof(int) * 3);
		}
		found_triangles[tri] = true;
		filtered_indices_count++;
	}
	r_indices.resize(filtered_indices_count * 3);
}
bool SurfaceTool::Vertex::operator==(const Vertex &p_vertex) const {