Example #1
0
        public override void Build(MetaBuilder mb, bool isRoot = false)
        {
            if (this.Direction != null)
            {
                this.MetaStructure.direction = mb.AddItemArrayPtr(MetaName.VECTOR3, this.Direction.Select(e => { e.Build(mb); return(e.MetaStructure); }).ToArray());
            }

            MVECTOR3.AddEnumAndStructureInfo(mb);

            this.MetaStructure.falloff           = mb.AddFloatArrayPtr(this.Falloff.ToArray());
            this.MetaStructure.falloffExponent   = mb.AddFloatArrayPtr(this.FalloffExponent.ToArray());
            this.MetaStructure.timeAndStateFlags = mb.AddUintArrayPtr(this.TimeAndStateFlags.ToArray());
            this.MetaStructure.hash                   = mb.AddUintArrayPtr(this.Hash.ToArray());
            this.MetaStructure.coneInnerAngle         = mb.AddByteArrayPtr(this.ConeInnerAngle.ToArray());
            this.MetaStructure.coneOuterAngleOrCapExt = mb.AddByteArrayPtr(this.ConeOuterAngleOrCapExt.ToArray());
            this.MetaStructure.coronaIntensity        = mb.AddByteArrayPtr(this.CoronaIntensity.ToArray());

            MCLODLight.AddEnumAndStructureInfo(mb);

            if (isRoot)
            {
                mb.AddItem(this.MetaName, this.MetaStructure);

                this.Meta = mb.GetMeta();
            }
        }
Example #2
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]
                });
            }
        }
Example #3
0
        public override void Build(MetaBuilder mb, bool isRoot = false)
        {
            this.MetaStructure.x = this.X;
            this.MetaStructure.y = this.Y;
            this.MetaStructure.z = this.Z;

            MVECTOR3.AddEnumAndStructureInfo(mb);

            if (isRoot)
            {
                mb.AddItem(this.MetaName, this.MetaStructure);

                this.Meta = mb.GetMeta();
            }
        }
Example #4
0
        public override void Build(MetaBuilder mb, bool isRoot = false)
        {
            if (this.Position != null)
            {
                this.MetaStructure.position = mb.AddItemArrayPtr(MetaName.VECTOR3, this.Position.Select(e => { e.Build(mb); return(e.MetaStructure); }).ToArray());
            }
            MVECTOR3.AddEnumAndStructureInfo(mb);

            this.MetaStructure.RGBI            = mb.AddUintArrayPtr(this.RGBI.ToArray());
            this.MetaStructure.numStreetLights = this.NumStreetLights;
            this.MetaStructure.category        = this.Category;

            MCDistantLODLight.AddEnumAndStructureInfo(mb);

            if (isRoot)
            {
                mb.AddItem(this.MetaName, this.MetaStructure);

                this.Meta = mb.GetMeta();
            }
        }
Example #5
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;
        }