Files
2023-09-06 22:19:13 +02:00

398 lines
13 KiB
C#

using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000458 RID: 1112
[Token(Token = "0x2000458")]
[HelpURL("http://www.root-motion.com/finalikdox/html/page11.html")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/Grounder/Grounder Quadruped")]
public class GrounderQuadruped : Grounder
{
// Token: 0x06002765 RID: 10085 RVA: 0x0005A8D4 File Offset: 0x00058AD4
[Token(Token = "0x6002765")]
[Address(RVA = "0x16FFA80", Offset = "0x16FEA80", VA = "0x1816FFA80", Slot = "5")]
[ContextMenu("User Manual")]
protected override void OpenUserManual()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page11.html");
}
// Token: 0x06002766 RID: 10086 RVA: 0x0005A8EC File Offset: 0x00058AEC
[Token(Token = "0x6002766")]
[Address(RVA = "0x16FFA40", Offset = "0x16FEA40", VA = "0x1816FFA40", Slot = "6")]
[ContextMenu("Scrpt Reference")]
protected override void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_grounder_quadruped.html");
}
// Token: 0x06002767 RID: 10087 RVA: 0x0005A904 File Offset: 0x00058B04
[Token(Token = "0x6002767")]
[Address(RVA = "0x16FFAC0", Offset = "0x16FEAC0", VA = "0x1816FFAC0", Slot = "4")]
public override void ResetPosition()
{
this.solver.Reset();
this.forelegSolver.Reset();
}
// Token: 0x06002768 RID: 10088 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002768")]
[Address(RVA = "0x16FEAA0", Offset = "0x16FDAA0", VA = "0x1816FEAA0")]
private bool IsReadyToInitiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002769 RID: 10089 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002769")]
[Address(RVA = "0x16FE8D0", Offset = "0x16FD8D0", VA = "0x1816FE8D0")]
private bool IsReadyToInitiateLegs(IK[] ikComponents)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600276A RID: 10090 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600276A")]
[Address(RVA = "0x16FED20", Offset = "0x16FDD20", VA = "0x1816FED20")]
private void OnDisable()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600276B RID: 10091 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600276B")]
[Address(RVA = "0x1700400", Offset = "0x16FF400", VA = "0x181700400")]
private void Update()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600276C RID: 10092 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600276C")]
[Address(RVA = "0x16FE500", Offset = "0x16FD500", VA = "0x1816FE500")]
private void Initiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600276D RID: 10093 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600276D")]
[Address(RVA = "0x16FE0C0", Offset = "0x16FD0C0", VA = "0x1816FE0C0")]
private Transform[] InitiateFeet(IK[] ikComponents, ref GrounderQuadruped.Foot[] f, int indexOffset)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600276E RID: 10094 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600276E")]
[Address(RVA = "0x16FEBF0", Offset = "0x16FDBF0", VA = "0x1816FEBF0")]
private void LateUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600276F RID: 10095 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600276F")]
[Address(RVA = "0x16FFB00", Offset = "0x16FEB00", VA = "0x1816FFB00")]
private void RootRotation()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002770 RID: 10096 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002770")]
[Address(RVA = "0x16FF110", Offset = "0x16FE110", VA = "0x1816FF110")]
private void OnSolverUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002771 RID: 10097 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002771")]
[Address(RVA = "0x17000E0", Offset = "0x16FF0E0", VA = "0x1817000E0")]
private void UpdateForefeetRoot()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002772 RID: 10098 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002772")]
[Address(RVA = "0x16FFF30", Offset = "0x16FEF30", VA = "0x1816FFF30")]
private void SetFootIK(GrounderQuadruped.Foot foot, float maxOffset)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002773 RID: 10099 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002773")]
[Address(RVA = "0x16FEDA0", Offset = "0x16FDDA0", VA = "0x1816FEDA0")]
private void OnPostSolverUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002774 RID: 10100 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002774")]
[Address(RVA = "0x16FECE0", Offset = "0x16FDCE0", VA = "0x1816FECE0")]
private void OnDestroy()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002775 RID: 10101 RVA: 0x0005A930 File Offset: 0x00058B30
[Token(Token = "0x6002775")]
[Address(RVA = "0x16FDEA0", Offset = "0x16FCEA0", VA = "0x1816FDEA0")]
private void DestroyLegs(IK[] ikComponents)
{
int num = 0;
int num2 = 0;
int length = ikComponents.Length;
if (num2 < length)
{
IK ik = ikComponents[num];
int num3 = 0;
if (ik != num3)
{
IKSolver iksolver = ik.GetIKSolver();
IKSolver.UpdateDelegate updateDelegate = new IKSolver.UpdateDelegate(this.OnSolverUpdate);
Delegate @delegate = Delegate.Remove(updateDelegate, updateDelegate);
int num4 = 0;
if (@delegate != 0 && @delegate == 0)
{
throw new InvalidCastException();
}
iksolver.OnPreUpdate = num4;
IKSolver iksolver2 = ik.GetIKSolver();
IKSolver.UpdateDelegate updateDelegate2 = new IKSolver.UpdateDelegate(this.OnPostSolverUpdate);
Delegate delegate2 = Delegate.Remove(updateDelegate2, updateDelegate2);
if (delegate2 != 0 && delegate2 == 0)
{
throw new InvalidCastException();
}
iksolver2.OnPostUpdate = delegate2;
}
num++;
}
}
// Token: 0x06002776 RID: 10102 RVA: 0x0005A9E0 File Offset: 0x00058BE0
[Token(Token = "0x6002776")]
[Address(RVA = "0x1700580", Offset = "0x16FF580", VA = "0x181700580")]
public GrounderQuadruped()
{
Vector3 down = Vector3.down;
int num = 0;
float z = down.z;
this.gravity.z = z;
GrounderQuadruped.Foot[] array = new GrounderQuadruped.Foot[num];
this.feet = array;
base..ctor();
}
// Token: 0x04003130 RID: 12592
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4003130")]
[Tooltip("The Grounding solver for the forelegs.")]
public Grounding forelegSolver = new Grounding
{
maxStep = 0.5f,
footSpeed = 2.5f,
footRadius = 0.15f,
prediction = 0.05f,
footRotationWeight = 1f,
footRotationSpeed = 7f,
maxFootRotationAngle = 45f,
pelvisSpeed = 5f,
lowerPelvisWeight = 1f,
rootSphereCastRadius = 0.1f,
quality = (Grounding.Quality)((ulong)2L)
};
// Token: 0x04003131 RID: 12593
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4003131")]
[Range(0f, 1f)]
[Tooltip("The weight of rotating the character root to the ground angle (range: 0 - 1).")]
public float rootRotationWeight = 0.5f;
// Token: 0x04003132 RID: 12594
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x4003132")]
[Tooltip("The maximum angle of rotating the quadruped downwards (going downhill, range: -90 - 0).")]
[Range(-90f, 0f)]
public float minRootRotation = -25f;
// Token: 0x04003133 RID: 12595
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4003133")]
[Tooltip("The maximum angle of rotating the quadruped upwards (going uphill, range: 0 - 90).")]
[Range(0f, 90f)]
public float maxRootRotation = 45f;
// Token: 0x04003134 RID: 12596
[FieldOffset(Offset = "0x54")]
[Token(Token = "0x4003134")]
[Tooltip("The speed of interpolating the character root rotation (range: 0 - inf).")]
public float rootRotationSpeed = 5f;
// Token: 0x04003135 RID: 12597
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4003135")]
[Tooltip("The maximum IK offset for the legs (range: 0 - inf).")]
public float maxLegOffset = 0.5f;
// Token: 0x04003136 RID: 12598
[FieldOffset(Offset = "0x5C")]
[Token(Token = "0x4003136")]
[Tooltip("The maximum IK offset for the forelegs (range: 0 - inf).")]
public float maxForeLegOffset = 0.5f;
// Token: 0x04003137 RID: 12599
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4003137")]
[Tooltip("The weight of maintaining the head's rotation as it was before solving the Grounding (range: 0 - 1).")]
[Range(0f, 1f)]
public float maintainHeadRotationWeight = 0.5f;
// Token: 0x04003138 RID: 12600
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4003138")]
[Tooltip("The root Transform of the character, with the rigidbody and the collider.")]
public Transform characterRoot;
// Token: 0x04003139 RID: 12601
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4003139")]
[Tooltip("The pelvis transform. Common ancestor of both legs and the spine.")]
public Transform pelvis;
// Token: 0x0400313A RID: 12602
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x400313A")]
[Tooltip("The last bone in the spine that is the common parent for both forelegs.")]
public Transform lastSpineBone;
// Token: 0x0400313B RID: 12603
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x400313B")]
[Tooltip("The head (optional, if you intend to maintain it's rotation).")]
public Transform head;
// Token: 0x0400313C RID: 12604
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x400313C")]
public IK[] legs;
// Token: 0x0400313D RID: 12605
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x400313D")]
public IK[] forelegs;
// Token: 0x0400313E RID: 12606
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x400313E")]
[HideInInspector]
public Vector3 gravity;
// Token: 0x0400313F RID: 12607
[FieldOffset(Offset = "0xA8")]
[Token(Token = "0x400313F")]
private GrounderQuadruped.Foot[] feet;
// Token: 0x04003140 RID: 12608
[FieldOffset(Offset = "0xB0")]
[Token(Token = "0x4003140")]
private Vector3 animatedPelvisLocalPosition;
// Token: 0x04003141 RID: 12609
[FieldOffset(Offset = "0xBC")]
[Token(Token = "0x4003141")]
private Quaternion animatedPelvisLocalRotation;
// Token: 0x04003142 RID: 12610
[FieldOffset(Offset = "0xCC")]
[Token(Token = "0x4003142")]
private Quaternion animatedHeadLocalRotation;
// Token: 0x04003143 RID: 12611
[FieldOffset(Offset = "0xDC")]
[Token(Token = "0x4003143")]
private Vector3 solvedPelvisLocalPosition;
// Token: 0x04003144 RID: 12612
[FieldOffset(Offset = "0xE8")]
[Token(Token = "0x4003144")]
private Quaternion solvedPelvisLocalRotation;
// Token: 0x04003145 RID: 12613
[FieldOffset(Offset = "0xF8")]
[Token(Token = "0x4003145")]
private Quaternion solvedHeadLocalRotation;
// Token: 0x04003146 RID: 12614
[FieldOffset(Offset = "0x108")]
[Token(Token = "0x4003146")]
private int solvedFeet;
// Token: 0x04003147 RID: 12615
[FieldOffset(Offset = "0x10C")]
[Token(Token = "0x4003147")]
private bool solved;
// Token: 0x04003148 RID: 12616
[FieldOffset(Offset = "0x110")]
[Token(Token = "0x4003148")]
private float angle;
// Token: 0x04003149 RID: 12617
[FieldOffset(Offset = "0x118")]
[Token(Token = "0x4003149")]
private Transform forefeetRoot;
// Token: 0x0400314A RID: 12618
[FieldOffset(Offset = "0x120")]
[Token(Token = "0x400314A")]
private Quaternion headRotation;
// Token: 0x0400314B RID: 12619
[FieldOffset(Offset = "0x130")]
[Token(Token = "0x400314B")]
private float lastWeight;
// Token: 0x02000459 RID: 1113
[Token(Token = "0x2000459")]
public struct Foot
{
// Token: 0x06002777 RID: 10103 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002777")]
[Address(RVA = "0x16A2BF0", Offset = "0x16A1BF0", VA = "0x1816A2BF0")]
public Foot(IKSolver solver, Transform transform)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0400314C RID: 12620
[FieldOffset(Offset = "0x0")]
[Token(Token = "0x400314C")]
public IKSolver solver;
// Token: 0x0400314D RID: 12621
[FieldOffset(Offset = "0x8")]
[Token(Token = "0x400314D")]
public Transform transform;
// Token: 0x0400314E RID: 12622
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400314E")]
public Quaternion rotation;
// Token: 0x0400314F RID: 12623
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400314F")]
public Grounding.Leg leg;
}
}
}