Ejemplo n.º 1
0
        public override void Parse(MetaFile meta, CLODLight CLODLight)
        {
            this.Meta          = meta;
            this.MetaStructure = CLODLight;

            var             _direction = MetaUtils.ConvertDataArray <VECTOR3>(meta, CLODLight.direction);
            List <MVECTOR3> direction  = _direction?.Select(e => { var msw = new MVECTOR3(); msw.Parse(meta, e); return(msw); }).ToList();

            float[] falloff           = MetaUtils.ConvertDataArray <float>(meta, CLODLight.falloff.Pointer, CLODLight.falloff.Count1).ToArray();
            float[] falloffExponent   = MetaUtils.ConvertDataArray <float>(meta, CLODLight.falloffExponent.Pointer, CLODLight.falloffExponent.Count1).ToArray();
            uint[]  timeAndStateFlags = MetaUtils.ConvertDataArray <uint>(meta, CLODLight.timeAndStateFlags.Pointer, CLODLight.timeAndStateFlags.Count1).ToArray();
            uint[]  hash                   = MetaUtils.ConvertDataArray <uint>(meta, CLODLight.hash.Pointer, CLODLight.hash.Count1).ToArray();
            byte[]  coneInnerAngle         = MetaUtils.ConvertDataArray <byte>(meta, CLODLight.coneInnerAngle.Pointer, CLODLight.coneInnerAngle.Count1).ToArray();
            byte[]  coneOuterAngleOrCapExt = MetaUtils.ConvertDataArray <byte>(meta, CLODLight.coneOuterAngleOrCapExt.Pointer, CLODLight.coneOuterAngleOrCapExt.Count1).ToArray();
            byte[]  coronaIntensity        = MetaUtils.ConvertDataArray <byte>(meta, CLODLight.coronaIntensity.Pointer, CLODLight.coronaIntensity.Count1).ToArray();

            Entries.Clear();

            for (int i = 0; i < hash.Length; i++)
            {
                Entries.Add(new LODLightEntry()
                {
                    Direction         = direction[i],
                    FallOff           = falloff[i],
                    FalloffExponent   = falloffExponent[i],
                    TimeAndStateFlags = timeAndStateFlags[i],
                    Hash                   = hash[i],
                    ConeInnerAngle         = coneInnerAngle[i],
                    ConeOuterAngleOrCapExt = coneOuterAngleOrCapExt[i],
                    CoronaIntensity        = coronaIntensity[i]
                });
            }
        }
Ejemplo n.º 2
0
        public override void Parse(MetaFile meta, CDistantLODLight CDistantLODLight)
        {
            this.Meta          = meta;
            this.MetaStructure = CDistantLODLight;

            var             _position = MetaUtils.ConvertDataArray <VECTOR3>(meta, CDistantLODLight.position);
            List <MVECTOR3> position  = _position?.Select(e => { var msw = new MVECTOR3(); msw.Parse(meta, e); return(msw); }).ToList();

            uint[] rgbi = MetaUtils.ConvertDataArray <uint>(meta, CDistantLODLight.RGBI.Pointer, CDistantLODLight.RGBI.Count1).ToArray();

            Entries.Clear();

            for (int i = 0; i < position.Count; i++)
            {
                Entries.Add(new DistantLODLightEntry()
                {
                    Position = position[i],
                    RGBI     = rgbi[i],
                });
            }

            this.NumStreetLights = CDistantLODLight.numStreetLights;
            this.Category        = CDistantLODLight.category;
        }