Files
2025-09-29 00:52:08 +02:00

48 lines
1.2 KiB
Plaintext
Executable File

struct SOData
(
fn CollectData InputSO =
(
ReturnSOData = DotNetObject "StatedAnim.SOData" InputSO.GUID
ReturnSOData.FaceCount = InputSO.GetFaceCount()
ReturnSOData.VertCount = InputSO.GetVertCount()
ReturnSOData.BoneCount = InputSO.BoneCount()
SourceMesh = InputSO.MeshNode
SourceMaterial = SourceMesh.Material
case ClassOf SourceMaterial of
(
Rage_Shader:
(
CurrentMaterialHash = GetMaterialHash SourceMaterial
ReturnSOData.Append CurrentMaterialHash ReturnSOData.FaceCount
)
MultiMaterial:
(
--Get all the material IDs on object
MatIDArray = RSMesh_GetMaterialIDArray SourceMesh
for MatID in MatIDArray do
(
--Get the current material.
CurrentMaterialHash = GetMaterialHash SourceMaterial[MatID]
--Get the faces this material is applied to
FaceBitArray = RSMesh_GetFaceBitArrayByMaterialID SourceMesh MatID
--Add collected data to our SOData
ReturnSOData.Append CurrentMaterialHash FaceBitArray.Count
)
)
Default:
(
--Invalid material.
CurrentMaterialHash = GetMaterialHash SourceMaterial
ReturnSOData.Append CurrentMaterialHash ReturnSOData.FaceCount
)
)
return ReturnSOData
)
)