/* ----------------------------------------------- Functions */ #region Functions public void CleanUp() { #if STORE_ANIMATIONSETUP_FULL int valueInitialInt = int.MinValue; float valueInitialFloat = float.NaN; Vector2 valueInitialVector2 = new Vector2(float.NaN, float.NaN); Vector3 valueInitialVector3 = new Vector3(float.NaN, float.NaN, float.NaN); Status = Library_SpriteStudio6.Data.Animation.Attribute.DefaultStatus; Position = valueInitialVector3; Rotation = valueInitialVector3; Scaling = valueInitialVector2; ScalingLocal = valueInitialVector2; RateOpacity = valueInitialFloat; RateOpacityLocal = valueInitialFloat; PowerMask = valueInitialInt; Priority = valueInitialInt; PartsColor.CleanUp(); /* = Library_SpriteStudio6.Data.Animation.Attribute.DefaultPartsColor; */ VertexCorrection.CleanUp(); OffsetPivot = valueInitialVector2; PositionAnchor = valueInitialVector2; SizeForce = valueInitialVector2; PositionTexture = valueInitialVector2; RotationTexture = valueInitialFloat; ScalingTexture = valueInitialVector2; RadiusCollision = valueInitialFloat; Instance = Library_SpriteStudio6.Data.Animation.Attribute.DefaultInstance; Effect = Library_SpriteStudio6.Data.Animation.Attribute.DefaultEffect; Deform = DefaultDeform; #endif UserData = Library_SpriteStudio6.Data.Animation.Attribute.DefaultUseData; }
private bool AnimationChangeInstanceMain(ref Library_SpriteStudio6.Control.Animation.Parts controlParts, Script_SpriteStudio6_Root scriptRootInstance, int indexAnimation, Library_SpriteStudio6.KindIgnoreAttribute ignoreAttribute, bool flagStartImmediate, int timesPlay, float rateTime, Library_SpriteStudio6.KindStylePlay style, string labelRangeStart, int frameRangeOffsetStart, string labelRangeEnd, int frameRangeOffsetEnd ) { if (null == TableControlTrack) { return(false); } if (0 > timesPlay) { return(false); } if (true == float.IsNaN(rateTime)) { return(false); } Library_SpriteStudio6.Data.Animation.Attribute.Instance dataInstance = new Library_SpriteStudio6.Data.Animation.Attribute.Instance(); dataInstance.Flags = Library_SpriteStudio6.Data.Animation.Attribute.Instance.FlagBit.CLEAR; switch (style) { case Library_SpriteStudio6.KindStylePlay.NO_CHANGE: return(false); case Library_SpriteStudio6.KindStylePlay.NORMAL: break; case Library_SpriteStudio6.KindStylePlay.PINGPONG: dataInstance.Flags |= Library_SpriteStudio6.Data.Animation.Attribute.Instance.FlagBit.PINGPONG; break; } controlParts.Status &= ~Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_EXCEPT_NEXTDATA; switch (ignoreAttribute) { case Library_SpriteStudio6.KindIgnoreAttribute.NON: controlParts.Status &= ~Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_ATTRIBUTE; controlParts.Status &= ~Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_NEWANIMATION; dataInstance.Flags &= ~Library_SpriteStudio6.Data.Animation.Attribute.Instance.FlagBit.INDEPENDENT; break; case Library_SpriteStudio6.KindIgnoreAttribute.NOW_ANIMATION: controlParts.Status |= Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_ATTRIBUTE; controlParts.Status &= ~Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_NEWANIMATION; dataInstance.Flags |= Library_SpriteStudio6.Data.Animation.Attribute.Instance.FlagBit.INDEPENDENT; break; case Library_SpriteStudio6.KindIgnoreAttribute.PERMANENT: controlParts.Status |= Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_ATTRIBUTE; controlParts.Status |= Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_NEWANIMATION; dataInstance.Flags |= Library_SpriteStudio6.Data.Animation.Attribute.Instance.FlagBit.INDEPENDENT; break; } dataInstance.PlayCount = timesPlay; dataInstance.RateTime = rateTime; dataInstance.LabelStart = labelRangeStart; dataInstance.OffsetStart = frameRangeOffsetStart; dataInstance.LabelEnd = labelRangeEnd; dataInstance.OffsetEnd = frameRangeOffsetEnd; if (false == flagStartImmediate) { controlParts.Status &= ~Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_EXCEPT_NEXTDATA; } else { controlParts.Status |= Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_EXCEPT_NEXTDATA; /* MEMO: When does not start immediately, necessary to always decode next data, so turn off "Independent time" status. */ controlParts.Status &= ~Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_PLAY_INDEPENDENT; controlParts.IndexAnimationUnderControl = indexAnimation; controlParts.DataInstance = dataInstance; int indexTrack = controlParts.IndexControlTrack; if (0 <= indexTrack) { float rateTimeControlTrack = TableControlTrack[indexTrack].RateTime * ((true == TableControlTrack[indexTrack].StatusIsPlayingReverse) ? -1.0f : 1.0f); return(controlParts.InstancePlayStart(this, rateTimeControlTrack)); } } return(true); }