public static void Serialize(this SerializingContainer2 sc, ref StaticMeshComponentLODInfo lod) { if (sc.IsLoading) { lod = new StaticMeshComponentLODInfo(); } sc.Serialize(ref lod.ShadowMaps, Serialize); sc.Serialize(ref lod.ShadowVertexBuffers, Serialize); sc.Serialize(ref lod.LightMap); if (sc.Game >= MEGame.ME3) { sc.Serialize(ref lod.bLoadVertexColorData); if (lod.bLoadVertexColorData > 0) { sc.Serialize(ref lod.OverrideVertexColors); } if (sc.Game == MEGame.UDK) { int dummy = 0; sc.Serialize(ref dummy); } } }
public override List <(UIndex, string)> GetUIndexes(MEGame game) { var uIndexes = new List <(UIndex, string)>(); for (int i = 0; i < LODData.Length; i++) { StaticMeshComponentLODInfo lodInfo = LODData[i]; uIndexes.AddRange(lodInfo.ShadowMaps.Select((uIndex, j) => (uIndex, $"LODData[{i}].ShadowMaps[{j}]"))); uIndexes.AddRange(lodInfo.ShadowVertexBuffers.Select((uIndex, j) => (uIndex, $"LODData[{i}].ShadowVertexBuffers[{j}]"))); uIndexes.AddRange(lodInfo.LightMap.GetUIndexes(game, $"LODData[{i}].")); } return(uIndexes); }