using System; using System.Runtime.CompilerServices; using Cpp2IlInjected; using UnityEngine; namespace RootMotion.FinalIK { // Token: 0x0200049F RID: 1183 [Token(Token = "0x200049F")] [AddComponentMenu("Scripts/RootMotion.FinalIK/Interaction System/Interaction Object")] [HelpURL("https://www.youtube.com/watch?v=r5jiZnsDH3M")] public class InteractionObject : MonoBehaviour { // Token: 0x06002A58 RID: 10840 RVA: 0x0005EC3C File Offset: 0x0005CE3C [Token(Token = "0x6002A58")] [Address(RVA = "0x1046D60", Offset = "0x1045D60", VA = "0x181046D60")] [ContextMenu("TUTORIAL VIDEO (PART 1: BASICS)")] private void OpenTutorial1() { Application.OpenURL("https://www.youtube.com/watch?v=r5jiZnsDH3M"); } // Token: 0x06002A59 RID: 10841 RVA: 0x0005EC54 File Offset: 0x0005CE54 [Token(Token = "0x6002A59")] [Address(RVA = "0x1046DA0", Offset = "0x1045DA0", VA = "0x181046DA0")] [ContextMenu("TUTORIAL VIDEO (PART 2: PICKING UP...)")] private void OpenTutorial2() { Application.OpenURL("https://www.youtube.com/watch?v=eP9-zycoHLk"); } // Token: 0x06002A5A RID: 10842 RVA: 0x0005EC6C File Offset: 0x0005CE6C [Token(Token = "0x6002A5A")] [Address(RVA = "0x1046DE0", Offset = "0x1045DE0", VA = "0x181046DE0")] [ContextMenu("TUTORIAL VIDEO (PART 3: ANIMATION)")] private void OpenTutorial3() { Application.OpenURL("https://www.youtube.com/watch?v=sQfB2RcT1T4&index=14&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6"); } // Token: 0x06002A5B RID: 10843 RVA: 0x0005EC84 File Offset: 0x0005CE84 [Token(Token = "0x6002A5B")] [Address(RVA = "0x1046E20", Offset = "0x1045E20", VA = "0x181046E20")] [ContextMenu("TUTORIAL VIDEO (PART 4: TRIGGERS)")] private void OpenTutorial4() { Application.OpenURL("https://www.youtube.com/watch?v=-TDZpNjt2mk&index=15&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6"); } // Token: 0x06002A5C RID: 10844 RVA: 0x0005EC9C File Offset: 0x0005CE9C [Token(Token = "0x6002A5C")] [Address(RVA = "0x1046EA0", Offset = "0x1045EA0", VA = "0x181046EA0")] [ContextMenu("Support Group")] private void SupportGroup() { Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik"); } // Token: 0x06002A5D RID: 10845 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002A5D")] [Address(RVA = "0x1045670", Offset = "0x1044670", VA = "0x181045670")] [ContextMenu("Asset Store Thread")] private void ASThread() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x170002A1 RID: 673 // (get) Token: 0x06002A5E RID: 10846 RVA: 0x0005ECB4 File Offset: 0x0005CEB4 // (set) Token: 0x06002A5F RID: 10847 RVA: 0x0005ECC8 File Offset: 0x0005CEC8 [Token(Token = "0x170002A1")] public float length { [Token(Token = "0x6002A5E")] [Address(RVA = "0x3F6700", Offset = "0x3F5700", VA = "0x1803F6700")] get; [Token(Token = "0x6002A5F")] [Address(RVA = "0x3F6770", Offset = "0x3F5770", VA = "0x1803F6770")] private set; } // Token: 0x170002A2 RID: 674 // (get) Token: 0x06002A60 RID: 10848 RVA: 0x0005ECDC File Offset: 0x0005CEDC // (set) Token: 0x06002A61 RID: 10849 RVA: 0x0005ECF0 File Offset: 0x0005CEF0 [Token(Token = "0x170002A2")] public InteractionSystem lastUsedInteractionSystem { [Token(Token = "0x6002A60")] [Address(RVA = "0x3701D0", Offset = "0x36F1D0", VA = "0x1803701D0")] [CompilerGenerated] get { return this.k__BackingField; } [Token(Token = "0x6002A61")] [Address(RVA = "0x3662A0", Offset = "0x3652A0", VA = "0x1803662A0")] [CompilerGenerated] private set { /* An exception occurred when decompiling this method (06002A61) 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: 0x06002A62 RID: 10850 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002A62")] [Address(RVA = "0x1046A60", Offset = "0x1045A60", VA = "0x181046A60")] public void Initiate() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x170002A3 RID: 675 // (get) Token: 0x06002A63 RID: 10851 RVA: 0x0005ED04 File Offset: 0x0005CF04 [Token(Token = "0x170002A3")] public Transform lookAtTarget { [Token(Token = "0x6002A63")] [Address(RVA = "0x1046F40", Offset = "0x1045F40", VA = "0x181046F40")] get { Transform transform = this.otherLookAtTarget; int num = 0; if (!(transform != num)) { return base.transform; } return this.otherLookAtTarget; } } // Token: 0x06002A64 RID: 10852 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002A64")] [Address(RVA = "0x10463E0", Offset = "0x10453E0", VA = "0x1810463E0")] public InteractionTarget GetTarget(FullBodyBipedEffector effectorType, InteractionSystem interactionSystem) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002A65 RID: 10853 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002A65")] [Address(RVA = "0x1046230", Offset = "0x1045230", VA = "0x181046230")] public bool CurveUsed(InteractionObject.WeightCurve.Type type) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002A66 RID: 10854 RVA: 0x0005ED34 File Offset: 0x0005CF34 [Token(Token = "0x6002A66")] [Address(RVA = "0x33F1C0", Offset = "0x33E1C0", VA = "0x18033F1C0")] public InteractionTarget[] GetTargets() { return this.targets; } // Token: 0x06002A67 RID: 10855 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002A67")] [Address(RVA = "0x1046570", Offset = "0x1045570", VA = "0x181046570")] public Transform GetTarget(FullBodyBipedEffector effectorType, string tag) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002A68 RID: 10856 RVA: 0x0005ED48 File Offset: 0x0005CF48 [Token(Token = "0x6002A68")] [Address(RVA = "0x3662A0", Offset = "0x3652A0", VA = "0x1803662A0")] public void OnStartInteraction(InteractionSystem interactionSystem) { /* An exception occurred when decompiling this method (06002A68) 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: 0x06002A69 RID: 10857 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002A69")] [Address(RVA = "0x1045C90", Offset = "0x1044C90", VA = "0x181045C90")] 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: 0x06002A6A RID: 10858 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002A6A")] [Address(RVA = "0x1046720", Offset = "0x1045720", VA = "0x181046720")] 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: 0x170002A4 RID: 676 // (get) Token: 0x06002A6B RID: 10859 RVA: 0x0005ED5C File Offset: 0x0005CF5C [Token(Token = "0x170002A4")] public Transform targetsRoot { [Token(Token = "0x6002A6B")] [Address(RVA = "0x1046FC0", Offset = "0x1045FC0", VA = "0x181046FC0")] get { Transform transform = this.otherTargetsRoot; int num = 0; if (!(transform != num)) { return base.transform; } return this.otherTargetsRoot; } } // Token: 0x06002A6C RID: 10860 RVA: 0x0005ED8C File Offset: 0x0005CF8C [Token(Token = "0x6002A6C")] [Address(RVA = "0x1046220", Offset = "0x1045220", VA = "0x181046220")] private void Awake() { this.Initiate(); } // Token: 0x06002A6D RID: 10861 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002A6D")] [Address(RVA = "0x10456B0", Offset = "0x10446B0", VA = "0x1810456B0")] 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: 0x06002A6E RID: 10862 RVA: 0x0005EDA0 File Offset: 0x0005CFA0 [Token(Token = "0x6002A6E")] [Address(RVA = "0x1046360", Offset = "0x1045360", VA = "0x181046360")] 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: 0x06002A6F RID: 10863 RVA: 0x0005EDEC File Offset: 0x0005CFEC [Token(Token = "0x6002A6F")] [Address(RVA = "0x10469F0", Offset = "0x10459F0", VA = "0x1810469F0")] 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: 0x06002A70 RID: 10864 RVA: 0x0005EE2C File Offset: 0x0005D02C [Token(Token = "0x6002A70")] [Address(RVA = "0x10462F0", Offset = "0x10452F0", VA = "0x1810462F0")] 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: 0x06002A71 RID: 10865 RVA: 0x0005EE6C File Offset: 0x0005D06C [Token(Token = "0x6002A71")] [Address(RVA = "0x1046E60", Offset = "0x1045E60", VA = "0x181046E60")] [ContextMenu("User Manual")] private void OpenUserManual() { Application.OpenURL("http://www.root-motion.com/finalikdox/html/page10.html"); } // Token: 0x06002A72 RID: 10866 RVA: 0x0005EE84 File Offset: 0x0005D084 [Token(Token = "0x6002A72")] [Address(RVA = "0x1046D20", Offset = "0x1045D20", VA = "0x181046D20")] [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: 0x06002A73 RID: 10867 RVA: 0x0005EE9C File Offset: 0x0005D09C [Token(Token = "0x6002A73")] [Address(RVA = "0x1046EE0", Offset = "0x1045EE0", VA = "0x181046EE0")] public InteractionObject() { InteractionTarget[] array = new InteractionTarget[0]; this.targets = array; base..ctor(); } // Token: 0x04003404 RID: 13316 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4003404")] [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: 0x04003405 RID: 13317 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4003405")] [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: 0x04003406 RID: 13318 [FieldOffset(Offset = "0x28")] [Token(Token = "0x4003406")] [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: 0x04003407 RID: 13319 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4003407")] public InteractionObject.WeightCurve[] weightCurves; // Token: 0x04003408 RID: 13320 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4003408")] public InteractionObject.Multiplier[] multipliers; // Token: 0x04003409 RID: 13321 [FieldOffset(Offset = "0x40")] [Token(Token = "0x4003409")] public InteractionObject.InteractionEvent[] events; // Token: 0x0400340C RID: 13324 [FieldOffset(Offset = "0x58")] [Token(Token = "0x400340C")] private InteractionTarget[] targets; // Token: 0x020004A0 RID: 1184 [Token(Token = "0x20004A0")] [Serializable] public class InteractionEvent { // Token: 0x06002A74 RID: 10868 RVA: 0x0005EEC0 File Offset: 0x0005D0C0 [Token(Token = "0x6002A74")] [Address(RVA = "0x16A4140", Offset = "0x16A3140", VA = "0x1816A4140")] 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: 0x06002A75 RID: 10869 RVA: 0x0005EF94 File Offset: 0x0005D194 [Token(Token = "0x6002A75")] [Address(RVA = "0x36ABD0", Offset = "0x369BD0", VA = "0x18036ABD0")] public InteractionEvent() { } // Token: 0x0400340D RID: 13325 [FieldOffset(Offset = "0x10")] [Token(Token = "0x400340D")] [Tooltip("The time of the event since interaction start.")] public float time; // Token: 0x0400340E RID: 13326 [FieldOffset(Offset = "0x14")] [Token(Token = "0x400340E")] [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: 0x0400340F RID: 13327 [FieldOffset(Offset = "0x15")] [Token(Token = "0x400340F")] [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: 0x04003410 RID: 13328 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4003410")] [Tooltip("The animations called on this event.")] public InteractionObject.AnimatorEvent[] animations; // Token: 0x04003411 RID: 13329 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4003411")] [Tooltip("The messages sent on this event using GameObject.SendMessage().")] public InteractionObject.Message[] messages; } // Token: 0x020004A1 RID: 1185 [Token(Token = "0x20004A1")] [Serializable] public class Message { // Token: 0x06002A76 RID: 10870 RVA: 0x0005EFA8 File Offset: 0x0005D1A8 [Token(Token = "0x6002A76")] [Address(RVA = "0x16AC750", Offset = "0x16AB750", VA = "0x1816AC750")] 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: 0x06002A77 RID: 10871 RVA: 0x0005F018 File Offset: 0x0005D218 [Token(Token = "0x6002A77")] [Address(RVA = "0x36ABD0", Offset = "0x369BD0", VA = "0x18036ABD0")] public Message() { } // Token: 0x04003412 RID: 13330 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4003412")] [Tooltip("The name of the function called.")] public string function; // Token: 0x04003413 RID: 13331 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4003413")] [Tooltip("The recipient game object.")] public GameObject recipient; // Token: 0x04003414 RID: 13332 [Token(Token = "0x4003414")] private const string empty = ""; } // Token: 0x020004A2 RID: 1186 [Token(Token = "0x20004A2")] [Serializable] public class AnimatorEvent { // Token: 0x06002A78 RID: 10872 RVA: 0x0005F02C File Offset: 0x0005D22C [Token(Token = "0x6002A78")] [Address(RVA = "0x169B600", Offset = "0x169A600", VA = "0x18169B600")] 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: 0x06002A79 RID: 10873 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002A79")] [Address(RVA = "0x169B7F0", Offset = "0x169A7F0", VA = "0x18169B7F0")] private void Activate(Animator animator) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002A7A RID: 10874 RVA: 0x0005F16C File Offset: 0x0005D36C [Token(Token = "0x6002A7A")] [Address(RVA = "0x169B540", Offset = "0x169A540", VA = "0x18169B540")] 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: 0x06002A7B RID: 10875 RVA: 0x0005F1F4 File Offset: 0x0005D3F4 [Token(Token = "0x6002A7B")] [Address(RVA = "0x169B890", Offset = "0x169A890", VA = "0x18169B890")] public AnimatorEvent() { } // Token: 0x04003415 RID: 13333 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4003415")] [Tooltip("The Animator component that will receive the AnimatorEvents.")] public Animator animator; // Token: 0x04003416 RID: 13334 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4003416")] [Tooltip("The Animation component that will receive the AnimatorEvents (Legacy).")] public Animation animation; // Token: 0x04003417 RID: 13335 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4003417")] [Tooltip("The name of the animation state.")] public string animationState; // Token: 0x04003418 RID: 13336 [FieldOffset(Offset = "0x28")] [Token(Token = "0x4003418")] [Tooltip("The crossfading time.")] public float crossfadeTime = 0.3f; // Token: 0x04003419 RID: 13337 [FieldOffset(Offset = "0x2C")] [Token(Token = "0x4003419")] [Tooltip("The layer of the animation state (if using Legacy, the animation state will be forced to this layer).")] public int layer; // Token: 0x0400341A RID: 13338 [FieldOffset(Offset = "0x30")] [Token(Token = "0x400341A")] [Tooltip("Should the animation always start from 0 normalized time?")] public bool resetNormalizedTime; // Token: 0x0400341B RID: 13339 [Token(Token = "0x400341B")] private const string empty = ""; } // Token: 0x020004A3 RID: 1187 [Token(Token = "0x20004A3")] [Serializable] public class WeightCurve { // Token: 0x06002A7C RID: 10876 RVA: 0x0005F214 File Offset: 0x0005D414 [Token(Token = "0x6002A7C")] [Address(RVA = "0x16B52B0", Offset = "0x16B42B0", VA = "0x1816B52B0")] public float GetValue(float timer) { return this.curve.Evaluate(timer); } // Token: 0x06002A7D RID: 10877 RVA: 0x0005F234 File Offset: 0x0005D434 [Token(Token = "0x6002A7D")] [Address(RVA = "0x36ABD0", Offset = "0x369BD0", VA = "0x18036ABD0")] public WeightCurve() { } // Token: 0x0400341C RID: 13340 [FieldOffset(Offset = "0x10")] [Token(Token = "0x400341C")] [Tooltip("The type of the curve (InteractionObject.WeightCurve.Type).")] public InteractionObject.WeightCurve.Type type; // Token: 0x0400341D RID: 13341 [FieldOffset(Offset = "0x18")] [Token(Token = "0x400341D")] [Tooltip("The weight curve.")] public AnimationCurve curve; // Token: 0x020004A4 RID: 1188 [Token(Token = "0x20004A4")] [Serializable] public enum Type { // Token: 0x0400341F RID: 13343 [Token(Token = "0x400341F")] PositionWeight, // Token: 0x04003420 RID: 13344 [Token(Token = "0x4003420")] RotationWeight, // Token: 0x04003421 RID: 13345 [Token(Token = "0x4003421")] PositionOffsetX, // Token: 0x04003422 RID: 13346 [Token(Token = "0x4003422")] PositionOffsetY, // Token: 0x04003423 RID: 13347 [Token(Token = "0x4003423")] PositionOffsetZ, // Token: 0x04003424 RID: 13348 [Token(Token = "0x4003424")] Pull, // Token: 0x04003425 RID: 13349 [Token(Token = "0x4003425")] Reach, // Token: 0x04003426 RID: 13350 [Token(Token = "0x4003426")] RotateBoneWeight, // Token: 0x04003427 RID: 13351 [Token(Token = "0x4003427")] Push, // Token: 0x04003428 RID: 13352 [Token(Token = "0x4003428")] PushParent, // Token: 0x04003429 RID: 13353 [Token(Token = "0x4003429")] PoserWeight } } // Token: 0x020004A5 RID: 1189 [Token(Token = "0x20004A5")] [Serializable] public class Multiplier { // Token: 0x06002A7E RID: 10878 RVA: 0x0005F248 File Offset: 0x0005D448 [Token(Token = "0x6002A7E")] [Address(RVA = "0x16AC840", Offset = "0x16AB840", VA = "0x1816AC840")] public float GetValue(InteractionObject.WeightCurve weightCurve, float timer) { /* An exception occurred when decompiling this method (06002A7E) 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: 0x06002A7F RID: 10879 RVA: 0x0005F270 File Offset: 0x0005D470 [Token(Token = "0x6002A7F")] [Address(RVA = "0x696BE0", Offset = "0x695BE0", VA = "0x180696BE0")] public Multiplier() { } // Token: 0x0400342A RID: 13354 [FieldOffset(Offset = "0x10")] [Token(Token = "0x400342A")] [Tooltip("The curve type to multiply.")] public InteractionObject.WeightCurve.Type curve; // Token: 0x0400342B RID: 13355 [FieldOffset(Offset = "0x14")] [Token(Token = "0x400342B")] [Tooltip("The multiplier of the curve's value.")] public float multiplier = 1f; // Token: 0x0400342C RID: 13356 [FieldOffset(Offset = "0x18")] [Token(Token = "0x400342C")] [Tooltip("The resulting value will be applied to this channel.")] public InteractionObject.WeightCurve.Type result; } } }