48 lines
1.2 KiB
Plaintext
Executable File
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
|
|
)
|
|
)
|