Skip to content

Commit f5adb44

Browse files
committed
function to retrieve all materials
1 parent 2fe565a commit f5adb44

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

source/Settings.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,34 @@ public readonly Material GetDropShadowMaterial(Camera camera)
238238
return new Entity(world, dropShadowMaterialEntity).As<Material>();
239239
}
240240

241+
/// <summary>
242+
/// Copies the material entities to the <paramref name="destination"/>.
243+
/// </summary>
244+
/// <returns>Amount of materials.</returns>
245+
public readonly int GetMaterials(Span<uint> destination)
246+
{
247+
ReadOnlySpan<MaterialSettings> settings = GetArray<MaterialSettings>();
248+
int count = 0;
249+
for (int i = 0; i < settings.Length; i++)
250+
{
251+
MaterialSettings materialSettings = settings[i];
252+
rint squareMaterialReference = materialSettings.squareMaterialReference;
253+
uint squareMaterialEntity = GetReference(squareMaterialReference);
254+
destination[count++] = squareMaterialEntity;
255+
rint triangleMaterialReference = materialSettings.triangleMaterialReference;
256+
uint triangleMaterialEntity = GetReference(triangleMaterialReference);
257+
destination[count++] = triangleMaterialEntity;
258+
rint textMaterialReference = materialSettings.textMaterialReference;
259+
uint textMaterialEntity = GetReference(textMaterialReference);
260+
destination[count++] = textMaterialEntity;
261+
rint dropShadowMaterialReference = materialSettings.dropShadowMaterialReference;
262+
uint dropShadowMaterialEntity = GetReference(dropShadowMaterialReference);
263+
destination[count++] = dropShadowMaterialEntity;
264+
}
265+
266+
return count;
267+
}
268+
241269
public readonly bool IsUIMaterial(uint materialEntity)
242270
{
243271
ReadOnlySpan<MaterialSettings> settings = GetArray<MaterialSettings>();

0 commit comments

Comments
 (0)