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