Exemplo n.º 1
0
        /// <summary>
        /// Updates values of this instance to values taken from parameter instance.
        /// </summary>
        /// <param name="Model"></param>
        /// <param name="RaiseChangedEvent"></param>
        public override void UpdateFromModel(ObjectBase Model, bool RaiseChangedEvent)
        {
            base.UpdateFromModel(Model, RaiseChangedEvent);

            if (RaiseChangedEvent)
            {
                OverlayFileRID = Model.OverlayFileRID;
                NameRID        = Model.NameRID;
                Flags.UpdateFromModel(Model.Flags, RaiseChangedEvent);
                LightingInfo.UpdateFromModel(Model.LightingInfo, RaiseChangedEvent);
                FirstAnimationType = Model.FirstAnimationType;
                ColorTranslation   = Model.ColorTranslation;
                Effect             = Model.Effect;

                if (Animation != null)
                {
                    Animation.PropertyChanged -= OnAnimationPropertyChanged;
                }

                Animation = Model.Animation;
                Animation.PropertyChanged += OnAnimationPropertyChanged;

                subOverlays.Clear();
                subOverlays.AddRange(Model.SubOverlays);

                Name        = Model.Name;
                OverlayFile = Model.OverlayFile;
                Resource    = Model.Resource;
            }
            else
            {
                overlayFileRID = Model.OverlayFileRID;
                nameRID        = Model.NameRID;
                Flags.UpdateFromModel(Model.Flags, RaiseChangedEvent);
                LightingInfo.UpdateFromModel(Model.LightingInfo, RaiseChangedEvent);
                firstAnimationType = Model.FirstAnimationType;
                colorTranslation   = Model.ColorTranslation;
                effect             = Model.Effect;

                if (animation != null)
                {
                    animation.PropertyChanged -= OnAnimationPropertyChanged;
                }

                animation = Model.Animation;
                animation.PropertyChanged += OnAnimationPropertyChanged;

                subOverlays.Clear();
                subOverlays.AddRange(Model.SubOverlays);

                name        = Model.Name;
                overlayFile = Model.OverlayFile;
                resource    = Model.Resource;
            }

            // appearance update
            ProcessAppearance(true);
        }