using System; using System.Runtime.CompilerServices; using Cpp2IlInjected; using UnityEngine; namespace RootMotion.FinalIK { // Token: 0x02000447 RID: 1095 [Token(Token = "0x2000447")] [HelpURL("https://www.youtube.com/watch?v=r5jiZnsDH3M")] [AddComponentMenu("Scripts/RootMotion.FinalIK/Interaction System/Interaction Object")] public class InteractionObject : MonoBehaviour { // Token: 0x0600278F RID: 10127 RVA: 0x000577F8 File Offset: 0x000559F8 [Token(Token = "0x600278F")] [Address(RVA = "0x10D77E0", Offset = "0x10D65E0", VA = "0x1810D77E0")] [ContextMenu("TUTORIAL VIDEO (PART 1: BASICS)")] private void OpenTutorial1() { Application.OpenURL("https://www.youtube.com/watch?v=r5jiZnsDH3M"); } // Token: 0x06002790 RID: 10128 RVA: 0x00057810 File Offset: 0x00055A10 [Token(Token = "0x6002790")] [Address(RVA = "0x10D7820", Offset = "0x10D6620", VA = "0x1810D7820")] [ContextMenu("TUTORIAL VIDEO (PART 2: PICKING UP...)")] private void OpenTutorial2() { Application.OpenURL("https://www.youtube.com/watch?v=eP9-zycoHLk"); } // Token: 0x06002791 RID: 10129 RVA: 0x00057828 File Offset: 0x00055A28 [Token(Token = "0x6002791")] [Address(RVA = "0x10D7860", Offset = "0x10D6660", VA = "0x1810D7860")] [ContextMenu("TUTORIAL VIDEO (PART 3: ANIMATION)")] private void OpenTutorial3() { Application.OpenURL("https://www.youtube.com/watch?v=sQfB2RcT1T4&index=14&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6"); } // Token: 0x06002792 RID: 10130 RVA: 0x00057840 File Offset: 0x00055A40 [Token(Token = "0x6002792")] [Address(RVA = "0x10D78A0", Offset = "0x10D66A0", VA = "0x1810D78A0")] [ContextMenu("TUTORIAL VIDEO (PART 4: TRIGGERS)")] private void OpenTutorial4() { Application.OpenURL("https://www.youtube.com/watch?v=-TDZpNjt2mk&index=15&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6"); } // Token: 0x06002793 RID: 10131 RVA: 0x00057858 File Offset: 0x00055A58 [Token(Token = "0x6002793")] [Address(RVA = "0x10D7920", Offset = "0x10D6720", VA = "0x1810D7920")] [ContextMenu("Support Group")] private void SupportGroup() { Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik"); } // Token: 0x06002794 RID: 10132 RVA: 0x00057870 File Offset: 0x00055A70 [Token(Token = "0x6002794")] [Address(RVA = "0x10D60F0", Offset = "0x10D4EF0", VA = "0x1810D60F0")] [ContextMenu("Asset Store Thread")] private void ASThread() { Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/"); } // Token: 0x1700027C RID: 636 // (get) Token: 0x06002795 RID: 10133 RVA: 0x00057888 File Offset: 0x00055A88 // (set) Token: 0x06002796 RID: 10134 RVA: 0x0005789C File Offset: 0x00055A9C [Token(Token = "0x1700027C")] public float length { [Token(Token = "0x6002795")] [Address(RVA = "0x38DB30", Offset = "0x38C930", VA = "0x18038DB30")] get; [Token(Token = "0x6002796")] [Address(RVA = "0x38DBA0", Offset = "0x38C9A0", VA = "0x18038DBA0")] private set; } // Token: 0x1700027D RID: 637 // (get) Token: 0x06002797 RID: 10135 RVA: 0x000578B0 File Offset: 0x00055AB0 // (set) Token: 0x06002798 RID: 10136 RVA: 0x000578C4 File Offset: 0x00055AC4 [Token(Token = "0x1700027D")] public InteractionSystem lastUsedInteractionSystem { [Token(Token = "0x6002797")] [Address(RVA = "0x517700", Offset = "0x516500", VA = "0x180517700")] [CompilerGenerated] get { return this.k__BackingField; } [Token(Token = "0x6002798")] [Address(RVA = "0x4C0FD0", Offset = "0x4BFDD0", VA = "0x1804C0FD0")] [CompilerGenerated] private set { /* An exception occurred when decompiling this method (06002798) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.InteractionObject::set_lastUsedInteractionSystem(RootMotion.FinalIK.InteractionSystem) ---> System.Exception: Basic block has to end with unconditional control flow. {; Block_0:; stfld:InteractionSystem(InteractionObject::k__BackingField, ldloc:InteractionObject(this), ldloc:InteractionSystem(value)); }; at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618 */; } } // Token: 0x06002799 RID: 10137 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002799")] [Address(RVA = "0x10D74E0", Offset = "0x10D62E0", VA = "0x1810D74E0")] public void Initiate() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x1700027E RID: 638 // (get) Token: 0x0600279A RID: 10138 RVA: 0x000578D8 File Offset: 0x00055AD8 [Token(Token = "0x1700027E")] public Transform lookAtTarget { [Token(Token = "0x600279A")] [Address(RVA = "0x10D79C0", Offset = "0x10D67C0", VA = "0x1810D79C0")] get { Transform transform = this.otherLookAtTarget; int num = 0; if (!(transform != num)) { return base.transform; } return this.otherLookAtTarget; } } // Token: 0x0600279B RID: 10139 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x600279B")] [Address(RVA = "0x10D6E60", Offset = "0x10D5C60", VA = "0x1810D6E60")] public InteractionTarget GetTarget(FullBodyBipedEffector effectorType, InteractionSystem interactionSystem) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600279C RID: 10140 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x600279C")] [Address(RVA = "0x10D6CB0", Offset = "0x10D5AB0", VA = "0x1810D6CB0")] public bool CurveUsed(InteractionObject.WeightCurve.Type type) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600279D RID: 10141 RVA: 0x00057908 File Offset: 0x00055B08 [Token(Token = "0x600279D")] [Address(RVA = "0x31E360", Offset = "0x31D160", VA = "0x18031E360")] public InteractionTarget[] GetTargets() { return this.targets; } // Token: 0x0600279E RID: 10142 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x600279E")] [Address(RVA = "0x10D6FF0", Offset = "0x10D5DF0", VA = "0x1810D6FF0")] public Transform GetTarget(FullBodyBipedEffector effectorType, string tag) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600279F RID: 10143 RVA: 0x0005791C File Offset: 0x00055B1C [Token(Token = "0x600279F")] [Address(RVA = "0x4C0FD0", Offset = "0x4BFDD0", VA = "0x1804C0FD0")] public void OnStartInteraction(InteractionSystem interactionSystem) { /* An exception occurred when decompiling this method (0600279F) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.InteractionObject::OnStartInteraction(RootMotion.FinalIK.InteractionSystem) ---> System.Exception: Basic block has to end with unconditional control flow. {; Block_0:; stfld:InteractionSystem(InteractionObject::k__BackingField, ldloc:InteractionObject(this), ldloc:InteractionSystem(interactionSystem)); }; at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618 */; } // Token: 0x060027A0 RID: 10144 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60027A0")] [Address(RVA = "0x10D6710", Offset = "0x10D5510", VA = "0x1810D6710")] public void Apply(IKSolverFullBodyBiped solver, FullBodyBipedEffector effector, InteractionTarget target, float timer, float weight) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060027A1 RID: 10145 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60027A1")] [Address(RVA = "0x10D71A0", Offset = "0x10D5FA0", VA = "0x1810D71A0")] public float GetValue(InteractionObject.WeightCurve.Type weightCurveType, InteractionTarget target, float timer) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x1700027F RID: 639 // (get) Token: 0x060027A2 RID: 10146 RVA: 0x00057930 File Offset: 0x00055B30 [Token(Token = "0x1700027F")] public Transform targetsRoot { [Token(Token = "0x60027A2")] [Address(RVA = "0x10D7A40", Offset = "0x10D6840", VA = "0x1810D7A40")] get { Transform transform = this.otherTargetsRoot; int num = 0; if (!(transform != num)) { return base.transform; } return this.otherTargetsRoot; } } // Token: 0x060027A3 RID: 10147 RVA: 0x00057960 File Offset: 0x00055B60 [Token(Token = "0x60027A3")] [Address(RVA = "0x10D6CA0", Offset = "0x10D5AA0", VA = "0x1810D6CA0")] private void Awake() { this.Initiate(); } // Token: 0x060027A4 RID: 10148 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60027A4")] [Address(RVA = "0x10D6130", Offset = "0x10D4F30", VA = "0x1810D6130")] private void Apply(IKSolverFullBodyBiped solver, FullBodyBipedEffector effector, InteractionObject.WeightCurve.Type type, float value, float weight) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060027A5 RID: 10149 RVA: 0x00057974 File Offset: 0x00055B74 [Token(Token = "0x60027A5")] [Address(RVA = "0x10D6DE0", Offset = "0x10D5BE0", VA = "0x1810D6DE0")] private Transform GetTarget(FullBodyBipedEffector effectorType) { InteractionTarget[] array = this.targets; int num = 0; int length = array.Length; if (num < length) { InteractionTarget interactionTarget = array[num]; if (interactionTarget.effectorType != effectorType) { num++; } return interactionTarget.transform; } return base.transform; } // Token: 0x060027A6 RID: 10150 RVA: 0x000579C0 File Offset: 0x00055BC0 [Token(Token = "0x60027A6")] [Address(RVA = "0x10D7470", Offset = "0x10D6270", VA = "0x1810D7470")] private int GetWeightCurveIndex(InteractionObject.WeightCurve.Type weightCurveType) { InteractionObject.WeightCurve[] array = this.weightCurves; int num = 0; int length = array.Length; if (num < length && array[num].type != weightCurveType) { num++; } return -1; } // Token: 0x060027A7 RID: 10151 RVA: 0x00057A00 File Offset: 0x00055C00 [Token(Token = "0x60027A7")] [Address(RVA = "0x10D6D70", Offset = "0x10D5B70", VA = "0x1810D6D70")] private int GetMultiplierIndex(InteractionObject.WeightCurve.Type weightCurveType) { InteractionObject.Multiplier[] array = this.multipliers; int num = 0; int length = array.Length; if (num < length && array[num].result != weightCurveType) { num++; } return -1; } // Token: 0x060027A8 RID: 10152 RVA: 0x00057A40 File Offset: 0x00055C40 [Token(Token = "0x60027A8")] [Address(RVA = "0x10D78E0", Offset = "0x10D66E0", VA = "0x1810D78E0")] [ContextMenu("User Manual")] private void OpenUserManual() { Application.OpenURL("http://www.root-motion.com/finalikdox/html/page10.html"); } // Token: 0x060027A9 RID: 10153 RVA: 0x00057A58 File Offset: 0x00055C58 [Token(Token = "0x60027A9")] [Address(RVA = "0x10D77A0", Offset = "0x10D65A0", VA = "0x1810D77A0")] [ContextMenu("Scrpt Reference")] private void OpenScriptReference() { Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_interaction_object.html"); } // Token: 0x060027AA RID: 10154 RVA: 0x00057A70 File Offset: 0x00055C70 [Token(Token = "0x60027AA")] [Address(RVA = "0x10D7960", Offset = "0x10D6760", VA = "0x1810D7960")] public InteractionObject() { InteractionTarget[] array = new InteractionTarget[0]; this.targets = array; base..ctor(); } // Token: 0x0400311A RID: 12570 [FieldOffset(Offset = "0x18")] [Token(Token = "0x400311A")] [Tooltip("If the Interaction System has a 'Look At' LookAtIK component assigned, will use it to make the character look at the specified Transform. If unassigned, will look at this GameObject.")] public Transform otherLookAtTarget; // Token: 0x0400311B RID: 12571 [FieldOffset(Offset = "0x20")] [Token(Token = "0x400311B")] [Tooltip("The root Transform of the InteractionTargets. If null, will use this GameObject. GetComponentsInChildren() will be used at initiation to find all InteractionTargets associated with this InteractionObject.")] public Transform otherTargetsRoot; // Token: 0x0400311C RID: 12572 [FieldOffset(Offset = "0x28")] [Token(Token = "0x400311C")] [Tooltip("If assigned, all PositionOffset channels will be applied in the rotation space of this Transform. If not, they will be in the rotation space of the character.")] public Transform positionOffsetSpace; // Token: 0x0400311D RID: 12573 [FieldOffset(Offset = "0x30")] [Token(Token = "0x400311D")] public InteractionObject.WeightCurve[] weightCurves; // Token: 0x0400311E RID: 12574 [FieldOffset(Offset = "0x38")] [Token(Token = "0x400311E")] public InteractionObject.Multiplier[] multipliers; // Token: 0x0400311F RID: 12575 [FieldOffset(Offset = "0x40")] [Token(Token = "0x400311F")] public InteractionObject.InteractionEvent[] events; // Token: 0x04003122 RID: 12578 [FieldOffset(Offset = "0x58")] [Token(Token = "0x4003122")] private InteractionTarget[] targets; // Token: 0x02000448 RID: 1096 [Token(Token = "0x2000448")] [Serializable] public class InteractionEvent { // Token: 0x060027AB RID: 10155 RVA: 0x00057A94 File Offset: 0x00055C94 [Token(Token = "0x60027AB")] [Address(RVA = "0x14EB2F0", Offset = "0x14EA0F0", VA = "0x1814EB2F0")] public void Activate(Transform t) { InteractionObject.AnimatorEvent[] array = this.animations; int num = 0; int length = array.Length; if (num < length) { InteractionObject.AnimatorEvent animatorEvent = array[num]; bool flag = this.pickUp; animatorEvent.Activate(flag); num++; } InteractionObject.Message[] array2 = this.messages; int length2 = array2.Length; if (num < length2) { InteractionObject.Message message = array2[num]; GameObject recipient = message.recipient; int num2 = 0; if (!(recipient == num2)) { string function = message.function; string empty = string.Empty; if (!string.Equals(function, empty) && !string.Equals(message.function, "")) { GameObject recipient2 = message.recipient; string function2 = message.function; int num3 = 0; recipient2.SendMessage(function2, t, (SendMessageOptions)num3); } } num++; } } // Token: 0x060027AC RID: 10156 RVA: 0x00057B68 File Offset: 0x00055D68 [Token(Token = "0x60027AC")] [Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")] public InteractionEvent() { } // Token: 0x04003123 RID: 12579 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4003123")] [Tooltip("The time of the event since interaction start.")] public float time; // Token: 0x04003124 RID: 12580 [FieldOffset(Offset = "0x14")] [Token(Token = "0x4003124")] [Tooltip("If true, the interaction will be paused on this event. The interaction can be resumed by InteractionSystem.ResumeInteraction() or InteractionSystem.ResumeAll;")] public bool pause; // Token: 0x04003125 RID: 12581 [FieldOffset(Offset = "0x15")] [Token(Token = "0x4003125")] [Tooltip("If true, the object will be parented to the effector bone on this event. Note that picking up like this can be done by only a single effector at a time. If you wish to pick up an object with both hands, see the Interaction PickUp2Handed demo scene.")] public bool pickUp; // Token: 0x04003126 RID: 12582 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4003126")] [Tooltip("The animations called on this event.")] public InteractionObject.AnimatorEvent[] animations; // Token: 0x04003127 RID: 12583 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4003127")] [Tooltip("The messages sent on this event using GameObject.SendMessage().")] public InteractionObject.Message[] messages; } // Token: 0x02000449 RID: 1097 [Token(Token = "0x2000449")] [Serializable] public class Message { // Token: 0x060027AD RID: 10157 RVA: 0x00057B7C File Offset: 0x00055D7C [Token(Token = "0x60027AD")] [Address(RVA = "0x14F15A0", Offset = "0x14F03A0", VA = "0x1814F15A0")] public void Send(Transform t) { GameObject gameObject = this.recipient; int num = 0; if (!(gameObject == num)) { string text = this.function; string text2 = string.Empty; if (!string.Equals(text, text2) && !string.Equals(this.function, "")) { GameObject gameObject2 = this.recipient; string text3 = this.function; int num2 = 0; gameObject2.SendMessage(text3, t, (SendMessageOptions)num2); } } } // Token: 0x060027AE RID: 10158 RVA: 0x00057BEC File Offset: 0x00055DEC [Token(Token = "0x60027AE")] [Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")] public Message() { } // Token: 0x04003128 RID: 12584 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4003128")] [Tooltip("The name of the function called.")] public string function; // Token: 0x04003129 RID: 12585 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4003129")] [Tooltip("The recipient game object.")] public GameObject recipient; // Token: 0x0400312A RID: 12586 [Token(Token = "0x400312A")] private const string empty = ""; } // Token: 0x0200044A RID: 1098 [Token(Token = "0x200044A")] [Serializable] public class AnimatorEvent { // Token: 0x060027AF RID: 10159 RVA: 0x00057C00 File Offset: 0x00055E00 [Token(Token = "0x60027AF")] [Address(RVA = "0x14E2000", Offset = "0x14E0E00", VA = "0x1814E2000")] public void Activate(bool pickUp) { Animator animator = this.animator; int num = 0; bool flag = animator != num; int num2 = 0; if (flag) { if (pickUp) { Animator animator2 = this.animator; int num3 = 0; animator2.applyRootMotion = num3 != 0; } Animator animator3 = this.animator; bool flag2 = string.Equals(this.animationState, ""); if (!flag2) { int num4 = this.layer; float num5 = this.crossfadeTime; string text = this.animationState; if (this.resetNormalizedTime == flag2) { animator3.CrossFade(text, num5, num4); } animator3.CrossFade(text, num5, num4, (float)num2); } } Animation animation = this.animation; int num6 = 0; if (animation != num6) { Animation animation2 = this.animation; bool flag3 = string.Equals(this.animationState, ""); if (!flag3) { if (this.resetNormalizedTime != flag3) { string text2 = this.animationState; AnimationState animationState = animation2[text2]; int num7 = 0; animationState.normalizedTime = (float)num7; } string text3 = this.animationState; AnimationState animationState2 = animation2[text3]; int num8 = this.layer; animationState2.layer = num8; float num9 = this.crossfadeTime; string text4 = this.animationState; animation2.CrossFade(text4, num9); } } } // Token: 0x060027B0 RID: 10160 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60027B0")] [Address(RVA = "0x14E21F0", Offset = "0x14E0FF0", VA = "0x1814E21F0")] private void Activate(Animator animator) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060027B1 RID: 10161 RVA: 0x00057D40 File Offset: 0x00055F40 [Token(Token = "0x60027B1")] [Address(RVA = "0x14E1F40", Offset = "0x14E0D40", VA = "0x1814E1F40")] private void Activate(Animation animation) { bool flag = string.Equals(this.animationState, ""); if (!flag) { if (this.resetNormalizedTime != flag) { string text = this.animationState; AnimationState animationState = animation[text]; int num = 0; animationState.normalizedTime = (float)num; } string text2 = this.animationState; AnimationState animationState2 = animation[text2]; int num2 = this.layer; animationState2.layer = num2; float num3 = this.crossfadeTime; string text3 = this.animationState; animation.CrossFade(text3, num3); } } // Token: 0x060027B2 RID: 10162 RVA: 0x00057DC8 File Offset: 0x00055FC8 [Token(Token = "0x60027B2")] [Address(RVA = "0x14E2290", Offset = "0x14E1090", VA = "0x1814E2290")] public AnimatorEvent() { } // Token: 0x0400312B RID: 12587 [FieldOffset(Offset = "0x10")] [Token(Token = "0x400312B")] [Tooltip("The Animator component that will receive the AnimatorEvents.")] public Animator animator; // Token: 0x0400312C RID: 12588 [FieldOffset(Offset = "0x18")] [Token(Token = "0x400312C")] [Tooltip("The Animation component that will receive the AnimatorEvents (Legacy).")] public Animation animation; // Token: 0x0400312D RID: 12589 [FieldOffset(Offset = "0x20")] [Token(Token = "0x400312D")] [Tooltip("The name of the animation state.")] public string animationState; // Token: 0x0400312E RID: 12590 [FieldOffset(Offset = "0x28")] [Token(Token = "0x400312E")] [Tooltip("The crossfading time.")] public float crossfadeTime = 0.3f; // Token: 0x0400312F RID: 12591 [FieldOffset(Offset = "0x2C")] [Token(Token = "0x400312F")] [Tooltip("The layer of the animation state (if using Legacy, the animation state will be forced to this layer).")] public int layer; // Token: 0x04003130 RID: 12592 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4003130")] [Tooltip("Should the animation always start from 0 normalized time?")] public bool resetNormalizedTime; // Token: 0x04003131 RID: 12593 [Token(Token = "0x4003131")] private const string empty = ""; } // Token: 0x0200044B RID: 1099 [Token(Token = "0x200044B")] [Serializable] public class WeightCurve { // Token: 0x060027B3 RID: 10163 RVA: 0x00057DE8 File Offset: 0x00055FE8 [Token(Token = "0x60027B3")] [Address(RVA = "0x14FB840", Offset = "0x14FA640", VA = "0x1814FB840")] public float GetValue(float timer) { return this.curve.Evaluate(timer); } // Token: 0x060027B4 RID: 10164 RVA: 0x00057E08 File Offset: 0x00056008 [Token(Token = "0x60027B4")] [Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")] public WeightCurve() { } // Token: 0x04003132 RID: 12594 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4003132")] [Tooltip("The type of the curve (InteractionObject.WeightCurve.Type).")] public InteractionObject.WeightCurve.Type type; // Token: 0x04003133 RID: 12595 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4003133")] [Tooltip("The weight curve.")] public AnimationCurve curve; // Token: 0x0200044C RID: 1100 [Token(Token = "0x200044C")] [Serializable] public enum Type { // Token: 0x04003135 RID: 12597 [Token(Token = "0x4003135")] PositionWeight, // Token: 0x04003136 RID: 12598 [Token(Token = "0x4003136")] RotationWeight, // Token: 0x04003137 RID: 12599 [Token(Token = "0x4003137")] PositionOffsetX, // Token: 0x04003138 RID: 12600 [Token(Token = "0x4003138")] PositionOffsetY, // Token: 0x04003139 RID: 12601 [Token(Token = "0x4003139")] PositionOffsetZ, // Token: 0x0400313A RID: 12602 [Token(Token = "0x400313A")] Pull, // Token: 0x0400313B RID: 12603 [Token(Token = "0x400313B")] Reach, // Token: 0x0400313C RID: 12604 [Token(Token = "0x400313C")] RotateBoneWeight, // Token: 0x0400313D RID: 12605 [Token(Token = "0x400313D")] Push, // Token: 0x0400313E RID: 12606 [Token(Token = "0x400313E")] PushParent, // Token: 0x0400313F RID: 12607 [Token(Token = "0x400313F")] PoserWeight } } // Token: 0x0200044D RID: 1101 [Token(Token = "0x200044D")] [Serializable] public class Multiplier { // Token: 0x060027B5 RID: 10165 RVA: 0x00057E1C File Offset: 0x0005601C [Token(Token = "0x60027B5")] [Address(RVA = "0x14F1690", Offset = "0x14F0490", VA = "0x1814F1690")] public float GetValue(InteractionObject.WeightCurve weightCurve, float timer) { /* An exception occurred when decompiling this method (060027B5) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Single RootMotion.FinalIK.InteractionObject/Multiplier::GetValue(RootMotion.FinalIK.InteractionObject/WeightCurve,System.Single) ---> System.ArgumentOutOfRangeException: Non-negative number required. (Parameter 'length') at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable) at System.Array.Copy(Array sourceArray, Array destinationArray, Int32 length) at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 51 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 401 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 276 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 112 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618 */; } // Token: 0x060027B6 RID: 10166 RVA: 0x00057E44 File Offset: 0x00056044 [Token(Token = "0x60027B6")] [Address(RVA = "0x5FD950", Offset = "0x5FC750", VA = "0x1805FD950")] public Multiplier() { } // Token: 0x04003140 RID: 12608 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4003140")] [Tooltip("The curve type to multiply.")] public InteractionObject.WeightCurve.Type curve; // Token: 0x04003141 RID: 12609 [FieldOffset(Offset = "0x14")] [Token(Token = "0x4003141")] [Tooltip("The multiplier of the curve's value.")] public float multiplier = 1f; // Token: 0x04003142 RID: 12610 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4003142")] [Tooltip("The resulting value will be applied to this channel.")] public InteractionObject.WeightCurve.Type result; } } }