Beispiel #1
0
        public VMAvatarMarshal Save()
        {
            var anims = new VMAnimationStateMarshal[Animations.Count];
            int i     = 0;

            foreach (var anim in Animations)
            {
                anims[i++] = anim.Save();
            }
            var gameObj = new VMAvatarMarshal
            {
                Animations          = anims,
                CarryAnimationState = (CarryAnimationState == null) ? null : CarryAnimationState.Save(), //NULLable

                Name    = Name,
                Message = Message,

                MessageTimeout = MessageTimeout,

                MotiveChanges   = MotiveChanges,
                PersonData      = PersonData,
                MotiveData      = MotiveData,
                HandObject      = (HandObject == null) ? (short)0 : HandObject.ObjectID,
                RadianDirection = RadianDirection,
                DefaultSuits    = DefaultSuits,

                BoundAppearances = BoundAppearances.ToArray(),
                BodyOutfit       = BodyOutfit,
                HeadOutfit       = HeadOutfit,
                SkinTone         = SkinTone
            };

            SaveEnt(gameObj);
            return(gameObj);
        }
 public virtual void Load(VMAnimationStateMarshal input)
 {
     Anim             = FSO.Content.Content.Get().AvatarAnimations.Get(input.Anim + ".anim");
     CurrentFrame     = input.CurrentFrame;
     EventQueue       = new List <short>(input.EventQueue);
     EventsRun        = input.EventsRun;
     EndReached       = input.EndReached;
     PlayingBackwards = input.PlayingBackwards;
     Speed            = input.Speed;
     Weight           = input.Weight;
     Loop             = input.Loop;
 }
        public virtual void Load(VMAnimationStateMarshal input)
        {
            Anim             = Content.GameContent.Get.AvatarAnimations.Get(input.Anim + ".anim");
            CurrentFrame     = input.CurrentFrame;
            EventQueue       = new List <short>(input.EventQueue);
            EventsRun        = input.EventsRun;
            EndReached       = input.EndReached;
            PlayingBackwards = input.PlayingBackwards;
            Speed            = input.Speed;
            Weight           = input.Weight;
            Loop             = input.Loop;
            GetTimeProps();

            var currentFrame = CurrentFrame;
            var currentTime  = (currentFrame * 1000) / 30;
            var timeProps    = TimePropertyLists;

            if (!PlayingBackwards)
            {
                for (var i = 0; i < timeProps.Count; i++)
                {
                    var tp = timeProps[i];
                    if (tp.ID > currentTime)
                    {
                        break;
                    }

                    timeProps.RemoveAt(0);
                    i--;
                }
            }
            else
            {
                for (var i = timeProps.Count - 1; i >= 0; i--)
                {
                    var tp = timeProps[i];
                    if (tp.ID < currentTime)
                    {
                        break;
                    }

                    timeProps.RemoveAt(timeProps.Count - 1);
                }
            }
        }
 public VMAnimationState(VMAnimationStateMarshal input)
 {
     Load(input);
 }