Пример #1
0
        public override void Parse(MetaFile meta, CExtensionDefLightEffect CExtensionDefLightEffect)
        {
            this.Meta          = meta;
            this.MetaStructure = CExtensionDefLightEffect;

            this.Name           = CExtensionDefLightEffect.name;
            this.OffsetPosition = CExtensionDefLightEffect.offsetPosition;
            var instances = MetaUtils.ConvertDataArray <CLightAttrDef>(meta, CExtensionDefLightEffect.instances);

            this.Instances = instances?.Select(e => { var msw = new MCLightAttrDef(); msw.Parse(meta, e); return(msw); }).ToList();
        }
Пример #2
0
        public override void Build(MetaBuilder mb, bool isRoot = false)
        {
            this.MetaStructure.posn                   = this.Posn;
            this.MetaStructure.colour                 = this.Colour;
            this.MetaStructure.flashiness             = this.Flashiness;
            this.MetaStructure.intensity              = this.Intensity;
            this.MetaStructure.flags                  = this.Flags;
            this.MetaStructure.boneTag                = this.BoneTag;
            this.MetaStructure.lightType              = this.LightType;
            this.MetaStructure.groupId                = this.GroupId;
            this.MetaStructure.timeFlags              = this.TimeFlags;
            this.MetaStructure.falloff                = this.Falloff;
            this.MetaStructure.falloffExponent        = this.FalloffExponent;
            this.MetaStructure.cullingPlane           = this.CullingPlane;
            this.MetaStructure.shadowBlur             = this.ShadowBlur;
            this.MetaStructure.padding1               = this.Padding1;
            this.MetaStructure.padding2               = this.Padding2;
            this.MetaStructure.padding3               = this.Padding3;
            this.MetaStructure.volIntensity           = this.VolIntensity;
            this.MetaStructure.volSizeScale           = this.VolSizeScale;
            this.MetaStructure.volOuterColour         = this.VolOuterColour;
            this.MetaStructure.lightHash              = this.LightHash;
            this.MetaStructure.volOuterIntensity      = this.VolOuterIntensity;
            this.MetaStructure.coronaSize             = this.CoronaSize;
            this.MetaStructure.volOuterExponent       = this.VolOuterExponent;
            this.MetaStructure.lightFadeDistance      = this.LightFadeDistance;
            this.MetaStructure.shadowFadeDistance     = this.ShadowFadeDistance;
            this.MetaStructure.specularFadeDistance   = this.SpecularFadeDistance;
            this.MetaStructure.volumetricFadeDistance = this.VolumetricFadeDistance;
            this.MetaStructure.shadowNearClip         = this.ShadowNearClip;
            this.MetaStructure.coronaIntensity        = this.CoronaIntensity;
            this.MetaStructure.coronaZBias            = this.CoronaZBias;
            this.MetaStructure.direction              = this.Direction;
            this.MetaStructure.tangent                = this.Tangent;
            this.MetaStructure.coneInnerAngle         = this.ConeInnerAngle;
            this.MetaStructure.coneOuterAngle         = this.ConeOuterAngle;
            this.MetaStructure.extents                = this.Extents;
            this.MetaStructure.projectedTextureKey    = this.ProjectedTextureKey;

            MCLightAttrDef.AddEnumAndStructureInfo(mb);

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

                this.Meta = mb.GetMeta();
            }
        }
Пример #3
0
        public override void Build(MetaBuilder mb, bool isRoot = false)
        {
            this.MetaStructure.name           = this.Name;
            this.MetaStructure.offsetPosition = this.OffsetPosition;

            if (this.Instances != null)
            {
                this.MetaStructure.instances = mb.AddItemArrayPtr(MetaName.CLightAttrDef, this.Instances.Select(e => { e.Build(mb); return(e.MetaStructure); }).ToArray());
            }
            MCLightAttrDef.AddEnumAndStructureInfo(mb);


            MCExtensionDefLightEffect.AddEnumAndStructureInfo(mb);

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

                this.Meta = mb.GetMeta();
            }
        }