248 lines
7.5 KiB
C#
248 lines
7.5 KiB
C#
using System;
|
|
using Cpp2IlInjected;
|
|
using UnityEngine;
|
|
|
|
namespace RootMotion.FinalIK
|
|
{
|
|
// Token: 0x02000449 RID: 1097
|
|
[Token(Token = "0x2000449")]
|
|
[Serializable]
|
|
public class BipedIKSolvers
|
|
{
|
|
// Token: 0x17000230 RID: 560
|
|
// (get) Token: 0x06002701 RID: 9985 RVA: 0x00059D38 File Offset: 0x00057F38
|
|
[Token(Token = "0x17000230")]
|
|
public IKSolverLimb[] limbs
|
|
{
|
|
[Token(Token = "0x6002701")]
|
|
[Address(RVA = "0x7A0C80", Offset = "0x79FC80", VA = "0x1807A0C80")]
|
|
get
|
|
{
|
|
IKSolverLimb[] limbs;
|
|
IKSolverLimb[] array;
|
|
IKSolverLimb iksolverLimb4;
|
|
for (;;)
|
|
{
|
|
limbs = this._limbs;
|
|
if (limbs != 0 && limbs.Length == 4)
|
|
{
|
|
return limbs;
|
|
}
|
|
array = new IKSolverLimb[4];
|
|
IKSolverLimb iksolverLimb = this.leftFoot;
|
|
if (iksolverLimb == 0 || array != 0)
|
|
{
|
|
array[0] = iksolverLimb;
|
|
IKSolverLimb iksolverLimb2 = this.rightFoot;
|
|
if (iksolverLimb2 == 0 || array != 0)
|
|
{
|
|
array[1] = iksolverLimb2;
|
|
IKSolverLimb iksolverLimb3 = this.leftHand;
|
|
if (iksolverLimb3 == 0 || array != 0)
|
|
{
|
|
array[2] = iksolverLimb3;
|
|
iksolverLimb4 = this.rightHand;
|
|
if (iksolverLimb4 == 0 || array != 0)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
array[3] = iksolverLimb4;
|
|
this._limbs = array;
|
|
return limbs;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000231 RID: 561
|
|
// (get) Token: 0x06002702 RID: 9986 RVA: 0x00059DD4 File Offset: 0x00057FD4
|
|
[Token(Token = "0x17000231")]
|
|
public IKSolver[] ikSolvers
|
|
{
|
|
[Token(Token = "0x6002702")]
|
|
[Address(RVA = "0x7A0970", Offset = "0x79F970", VA = "0x1807A0970")]
|
|
get
|
|
{
|
|
IKSolver[] ikSolvers;
|
|
IKSolver[] array;
|
|
IKSolverAim iksolverAim;
|
|
for (;;)
|
|
{
|
|
ikSolvers = this._ikSolvers;
|
|
if (ikSolvers != 0 && ikSolvers.Length == 7)
|
|
{
|
|
return ikSolvers;
|
|
}
|
|
array = new IKSolver[7];
|
|
IKSolverLimb iksolverLimb = this.leftFoot;
|
|
if (iksolverLimb == 0 || array != 0)
|
|
{
|
|
array[0] = iksolverLimb;
|
|
IKSolverLimb iksolverLimb2 = this.rightFoot;
|
|
if (iksolverLimb2 == 0 || array != 0)
|
|
{
|
|
array[1] = iksolverLimb2;
|
|
IKSolverLimb iksolverLimb3 = this.leftHand;
|
|
if (iksolverLimb3 == 0 || array != 0)
|
|
{
|
|
array[2] = iksolverLimb3;
|
|
IKSolverLimb iksolverLimb4 = this.rightHand;
|
|
if (iksolverLimb4 == 0 || array != 0)
|
|
{
|
|
array[3] = iksolverLimb4;
|
|
IKSolverFABRIK iksolverFABRIK = this.spine;
|
|
if (iksolverFABRIK == 0 || array != 0)
|
|
{
|
|
array[4] = iksolverFABRIK;
|
|
IKSolverLookAt iksolverLookAt = this.lookAt;
|
|
if (iksolverLookAt == 0 || array != 0)
|
|
{
|
|
array[5] = iksolverLookAt;
|
|
iksolverAim = this.aim;
|
|
if (iksolverAim == 0 || array != 0)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
array[6] = iksolverAim;
|
|
this._ikSolvers = array;
|
|
return ikSolvers;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06002703 RID: 9987 RVA: 0x00059EC8 File Offset: 0x000580C8
|
|
[Token(Token = "0x6002703")]
|
|
[Address(RVA = "0x7A0610", Offset = "0x79F610", VA = "0x1807A0610")]
|
|
public void AssignReferences(BipedReferences references)
|
|
{
|
|
IKSolverLimb iksolverLimb = this.leftHand;
|
|
Transform root = references.root;
|
|
int num = 0;
|
|
Transform transform = references.leftHand;
|
|
Transform leftForearm = references.leftForearm;
|
|
Transform leftUpperArm = references.leftUpperArm;
|
|
bool flag = iksolverLimb.SetChain(leftUpperArm, leftForearm, transform, root);
|
|
IKSolverLimb iksolverLimb2 = this.rightHand;
|
|
Transform root2 = references.root;
|
|
Transform transform2 = references.rightHand;
|
|
Transform rightForearm = references.rightForearm;
|
|
Transform rightUpperArm = references.rightUpperArm;
|
|
bool flag2 = iksolverLimb2.SetChain(rightUpperArm, rightForearm, transform2, root2);
|
|
IKSolverLimb iksolverLimb3 = this.leftFoot;
|
|
Transform root3 = references.root;
|
|
Transform transform3 = references.leftFoot;
|
|
Transform leftCalf = references.leftCalf;
|
|
Transform leftThigh = references.leftThigh;
|
|
bool flag3 = iksolverLimb3.SetChain(leftThigh, leftCalf, transform3, root3);
|
|
IKSolverLimb iksolverLimb4 = this.rightFoot;
|
|
Transform root4 = references.root;
|
|
Transform transform4 = references.rightFoot;
|
|
Transform rightCalf = references.rightCalf;
|
|
Transform rightThigh = references.rightThigh;
|
|
bool flag4 = iksolverLimb4.SetChain(rightThigh, rightCalf, transform4, root4);
|
|
IKSolverFABRIK iksolverFABRIK = this.spine;
|
|
Transform root5 = references.root;
|
|
Transform[] array = references.spine;
|
|
bool flag5 = iksolverFABRIK.SetChain(array, root5);
|
|
IKSolverLookAt iksolverLookAt = this.lookAt;
|
|
Transform root6 = references.root;
|
|
Transform[] eyes = references.eyes;
|
|
Transform head = references.head;
|
|
Transform[] array2 = references.spine;
|
|
bool flag6 = iksolverLookAt.SetChain(array2, head, eyes, root6);
|
|
IKSolverAim iksolverAim = this.aim;
|
|
Transform root7 = references.root;
|
|
Transform[] array3 = references.spine;
|
|
bool flag7 = iksolverAim.SetChain(array3, root7);
|
|
this.leftFoot.goal = (AvatarIKGoal)num;
|
|
this.rightFoot.goal = (AvatarIKGoal)((ulong)1L);
|
|
this.leftHand.goal = (AvatarIKGoal)((ulong)2L);
|
|
this.rightHand.goal = (AvatarIKGoal)((ulong)3L);
|
|
}
|
|
|
|
// Token: 0x06002704 RID: 9988 RVA: 0x0005A074 File Offset: 0x00058274
|
|
[Token(Token = "0x6002704")]
|
|
[Address(RVA = "0x7A07B0", Offset = "0x79F7B0", VA = "0x1807A07B0")]
|
|
public BipedIKSolvers()
|
|
{
|
|
int num;
|
|
IKSolverLimb iksolverLimb = new IKSolverLimb((AvatarIKGoal)num);
|
|
num = 0;
|
|
this.leftFoot = iksolverLimb;
|
|
IKSolverLimb iksolverLimb2 = new IKSolverLimb(AvatarIKGoal.RightFoot);
|
|
this.rightFoot = iksolverLimb2;
|
|
IKSolverLimb iksolverLimb3 = new IKSolverLimb(AvatarIKGoal.LeftHand);
|
|
this.leftHand = iksolverLimb3;
|
|
IKSolverLimb iksolverLimb4 = new IKSolverLimb(AvatarIKGoal.RightHand);
|
|
this.rightHand = iksolverLimb4;
|
|
IKSolverFABRIK iksolverFABRIK = new IKSolverFABRIK();
|
|
this.spine = iksolverFABRIK;
|
|
IKSolverLookAt iksolverLookAt = new IKSolverLookAt();
|
|
this.lookAt = iksolverLookAt;
|
|
IKSolverAim iksolverAim = new IKSolverAim();
|
|
this.aim = iksolverAim;
|
|
Constraints constraints = new Constraints();
|
|
this.pelvis = constraints;
|
|
base..ctor();
|
|
}
|
|
|
|
// Token: 0x040030DD RID: 12509
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x40030DD")]
|
|
public IKSolverLimb leftFoot;
|
|
|
|
// Token: 0x040030DE RID: 12510
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x40030DE")]
|
|
public IKSolverLimb rightFoot;
|
|
|
|
// Token: 0x040030DF RID: 12511
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x40030DF")]
|
|
public IKSolverLimb leftHand;
|
|
|
|
// Token: 0x040030E0 RID: 12512
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x40030E0")]
|
|
public IKSolverLimb rightHand;
|
|
|
|
// Token: 0x040030E1 RID: 12513
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x40030E1")]
|
|
public IKSolverFABRIK spine;
|
|
|
|
// Token: 0x040030E2 RID: 12514
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x40030E2")]
|
|
public IKSolverLookAt lookAt;
|
|
|
|
// Token: 0x040030E3 RID: 12515
|
|
[FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x40030E3")]
|
|
public IKSolverAim aim;
|
|
|
|
// Token: 0x040030E4 RID: 12516
|
|
[FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x40030E4")]
|
|
public Constraints pelvis;
|
|
|
|
// Token: 0x040030E5 RID: 12517
|
|
[FieldOffset(Offset = "0x50")]
|
|
[Token(Token = "0x40030E5")]
|
|
private IKSolverLimb[] _limbs;
|
|
|
|
// Token: 0x040030E6 RID: 12518
|
|
[FieldOffset(Offset = "0x58")]
|
|
[Token(Token = "0x40030E6")]
|
|
private IKSolver[] _ikSolvers;
|
|
}
|
|
}
|