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] }); } }
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; }