66 DynamicArray<InstancedVertex> dynamicArray =
new();
67 DynamicArray<int> dynamicArray2 =
new();
68 for (
int i = 0; i < meshDrawOrders.Length; i++) {
71 _ = dynamicArray.
Count;
75 int[] indexData =
BlockMesh.GetIndexData<
int>(indexBuffer);
76 Dictionary<int, int> dictionary =
new();
77 if (vertexElements.
Count != 3
78 || vertexElements[0].Offset != 0
80 || vertexElements[1].Offset != 12
82 || vertexElements[2].Offset != 24
84 throw new InvalidOperationException(
"Unsupported vertex format.");
88 int num = indexData[j];
89 if (!dictionary.ContainsKey(num)) {
90 dictionary.Add(num, dynamicArray.
Count);
93 item.X = sourceModelVertex.
X;
94 item.Y = sourceModelVertex.
Y;
95 item.Z = sourceModelVertex.
Z;
96 item.Nx = sourceModelVertex.
Nx;
97 item.Ny = sourceModelVertex.
Ny;
98 item.Nz = sourceModelVertex.
Nz;
99 item.Tx = sourceModelVertex.
Tx;
100 item.Ty = sourceModelVertex.
Ty;
101 item.Instance = modelMesh.ParentBone.Index;
102 dynamicArray.
Add(item);
105 for (
int k = 0; k < meshPart.IndicesCount / 3; k++) {
106 dynamicArray2.
Add(dictionary[indexData[meshPart.
StartIndex + 3 * k]]);
107 dynamicArray2.
Add(dictionary[indexData[meshPart.
StartIndex + 3 * k + 1]]);
108 dynamicArray2.
Add(dictionary[indexData[meshPart.
StartIndex + 3 * k + 2]]);
118 return instancedModelData;