Beispiel #1
0
        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);
                }
            }
        }
Beispiel #2
0
        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);
        }