### 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)
Vector<int> b;
			b.resize(wcount);
			for (int j = 0; j < wcount; j++) {
				b.write[j] = barr[i * wcount + j];
			}
			v.bones = b;
		}
		if (lformat & RS::ARRAY_FORMAT_WEIGHTS) {
			Vector<float> w;
			w.resize(wcount);
			for (int j = 0; j < wcount; j++) {
				w.write[j] = warr[i * wcount + j];
			}
			v.weights = w;
		}
		for (int j = 0; j < RS::ARRAY_CUSTOM_COUNT; j++) {
			if (lformat & custom_mask[j]) {
				int cc = custom_float[j].size() / varr.size();
				for (int k = 0; k < cc; k++) {
					v.custom[j][k] = custom_float[j][i * cc + k];
				}
			}
		}
		ret.push_back(v);
	}
	if (r_format) {
		*r_format = lformat;
	}
}
void SurfaceTool::_create_list_from_arrays(Array arr, LocalVector<Vertex> *r_vertex, LocalVector<int> *r_index, uint32_t &lformat) {