238 lines
7.0 KiB
C#
238 lines
7.0 KiB
C#
using System;
|
|
using System.Collections;
|
|
using Cpp2IlInjected;
|
|
using UnityEngine;
|
|
|
|
namespace RootMotion.FinalIK
|
|
{
|
|
// Token: 0x02000485 RID: 1157
|
|
[Token(Token = "0x2000485")]
|
|
public abstract class OffsetModifier : MonoBehaviour
|
|
{
|
|
// Token: 0x17000294 RID: 660
|
|
// (get) Token: 0x06002910 RID: 10512 RVA: 0x0005A24C File Offset: 0x0005844C
|
|
[Token(Token = "0x17000294")]
|
|
protected float deltaTime
|
|
{
|
|
[Token(Token = "0x6002910")]
|
|
[Address(RVA = "0xE867C0", Offset = "0xE84FC0", VA = "0x180E867C0")]
|
|
get
|
|
{
|
|
return Time.time;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06002911 RID: 10513
|
|
[Token(Token = "0x6002911")]
|
|
[Address(Slot = "4")]
|
|
protected abstract void OnModifyOffset();
|
|
|
|
// Token: 0x06002912 RID: 10514 RVA: 0x0005A260 File Offset: 0x00058460
|
|
[Token(Token = "0x6002912")]
|
|
[Address(RVA = "0xE86B40", Offset = "0xE85340", VA = "0x180E86B40", Slot = "5")]
|
|
protected virtual void Start()
|
|
{
|
|
int num;
|
|
OffsetModifier.<Initiate>d__8 <Initiate>d__ = new OffsetModifier.<Initiate>d__8(num);
|
|
num = 0;
|
|
<Initiate>d__.<>4__this = this;
|
|
Coroutine coroutine = base.StartCoroutine(<Initiate>d__);
|
|
}
|
|
|
|
// Token: 0x06002913 RID: 10515 RVA: 0x000020D3 File Offset: 0x000002D3
|
|
[Token(Token = "0x6002913")]
|
|
[Address(RVA = "0xE868D0", Offset = "0xE850D0", VA = "0x180E868D0")]
|
|
private IEnumerator Initiate()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06002914 RID: 10516 RVA: 0x0005A28C File Offset: 0x0005848C
|
|
[Token(Token = "0x6002914")]
|
|
[Address(RVA = "0xE86940", Offset = "0xE85140", VA = "0x180E86940")]
|
|
private void ModifyOffset()
|
|
{
|
|
if (base.enabled)
|
|
{
|
|
int num = 0;
|
|
if (num < (int)this.weight)
|
|
{
|
|
float time = Time.time;
|
|
if (num < (int)time)
|
|
{
|
|
FullBodyBipedIK fullBodyBipedIK = this.ik;
|
|
int num2 = 0;
|
|
if (!(fullBodyBipedIK == num2))
|
|
{
|
|
float num3 = this.weight;
|
|
int num4 = 0;
|
|
float num5 = Mathf.Clamp(num3, (float)num4, 1f);
|
|
this.weight = num5;
|
|
this.OnModifyOffset();
|
|
float time2 = Time.time;
|
|
this.lastTime = time2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x06002915 RID: 10517 RVA: 0x000020D3 File Offset: 0x000002D3
|
|
[Token(Token = "0x6002915")]
|
|
[Address(RVA = "0xE867E0", Offset = "0xE84FE0", VA = "0x180E867E0")]
|
|
protected void ApplyLimits(OffsetModifier.OffsetLimits[] limits)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06002916 RID: 10518 RVA: 0x0005A30C File Offset: 0x0005850C
|
|
[Token(Token = "0x6002916")]
|
|
[Address(RVA = "0xE86A20", Offset = "0xE85220", VA = "0x180E86A20", Slot = "6")]
|
|
protected virtual void OnDestroy()
|
|
{
|
|
FullBodyBipedIK fullBodyBipedIK = this.ik;
|
|
int num = 0;
|
|
if (fullBodyBipedIK != num)
|
|
{
|
|
IKSolverFullBodyBiped solver = this.ik.solver;
|
|
IKSolver.UpdateDelegate onPreUpdate = solver.OnPreUpdate;
|
|
IKSolver.UpdateDelegate updateDelegate = new IKSolver.UpdateDelegate(this.ModifyOffset);
|
|
Delegate @delegate = Delegate.Remove(onPreUpdate, updateDelegate);
|
|
int num2 = 0;
|
|
if (@delegate != 0 && @delegate == 0)
|
|
{
|
|
throw new InvalidCastException();
|
|
}
|
|
solver.OnPreUpdate = num2;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06002917 RID: 10519 RVA: 0x0005A378 File Offset: 0x00058578
|
|
[Token(Token = "0x6002917")]
|
|
[Address(RVA = "0xCB58D0", Offset = "0xCB40D0", VA = "0x180CB58D0")]
|
|
protected OffsetModifier()
|
|
{
|
|
}
|
|
|
|
// Token: 0x04003265 RID: 12901
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4003265")]
|
|
[Tooltip("The master weight")]
|
|
public float weight = 1f;
|
|
|
|
// Token: 0x04003266 RID: 12902
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4003266")]
|
|
[Tooltip("Reference to the FBBIK component")]
|
|
public FullBodyBipedIK ik;
|
|
|
|
// Token: 0x04003267 RID: 12903
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4003267")]
|
|
protected float lastTime;
|
|
|
|
// Token: 0x02000486 RID: 1158
|
|
[Token(Token = "0x2000486")]
|
|
[Serializable]
|
|
public class OffsetLimits
|
|
{
|
|
// Token: 0x06002918 RID: 10520 RVA: 0x000020D3 File Offset: 0x000002D3
|
|
[Token(Token = "0x6002918")]
|
|
[Address(RVA = "0x697B50", Offset = "0x696350", VA = "0x180697B50")]
|
|
public void Apply(IKEffector e, Quaternion rootRotation)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06002919 RID: 10521 RVA: 0x000020D3 File Offset: 0x000002D3
|
|
[Token(Token = "0x6002919")]
|
|
[Address(RVA = "0x697D20", Offset = "0x696520", VA = "0x180697D20")]
|
|
private float SpringAxis(float value, float min, float max)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x0600291A RID: 10522 RVA: 0x000020D3 File Offset: 0x000002D3
|
|
[Token(Token = "0x600291A")]
|
|
[Address(RVA = "0x697DA0", Offset = "0x6965A0", VA = "0x180697DA0")]
|
|
private float Spring(float value, float limit, bool negative)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x0600291B RID: 10523 RVA: 0x0005A398 File Offset: 0x00058598
|
|
[Token(Token = "0x600291B")]
|
|
[Address(RVA = "0x43A830", Offset = "0x439030", VA = "0x18043A830")]
|
|
public OffsetLimits()
|
|
{
|
|
}
|
|
|
|
// Token: 0x04003268 RID: 12904
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4003268")]
|
|
[Tooltip("The effector type (this is just an enum)")]
|
|
public FullBodyBipedEffector effector;
|
|
|
|
// Token: 0x04003269 RID: 12905
|
|
[FieldOffset(Offset = "0x14")]
|
|
[Token(Token = "0x4003269")]
|
|
[Tooltip("Spring force, if zero then this is a hard limit, if not, offset can exceed the limit.")]
|
|
public float spring;
|
|
|
|
// Token: 0x0400326A RID: 12906
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x400326A")]
|
|
[Tooltip("Which axes to limit the offset on?")]
|
|
public bool x;
|
|
|
|
// Token: 0x0400326B RID: 12907
|
|
[FieldOffset(Offset = "0x19")]
|
|
[Token(Token = "0x400326B")]
|
|
[Tooltip("Which axes to limit the offset on?")]
|
|
public bool y;
|
|
|
|
// Token: 0x0400326C RID: 12908
|
|
[FieldOffset(Offset = "0x1A")]
|
|
[Token(Token = "0x400326C")]
|
|
[Tooltip("Which axes to limit the offset on?")]
|
|
public bool z;
|
|
|
|
// Token: 0x0400326D RID: 12909
|
|
[FieldOffset(Offset = "0x1C")]
|
|
[Token(Token = "0x400326D")]
|
|
[Tooltip("The limits")]
|
|
public float minX;
|
|
|
|
// Token: 0x0400326E RID: 12910
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x400326E")]
|
|
[Tooltip("The limits")]
|
|
public float maxX;
|
|
|
|
// Token: 0x0400326F RID: 12911
|
|
[FieldOffset(Offset = "0x24")]
|
|
[Token(Token = "0x400326F")]
|
|
[Tooltip("The limits")]
|
|
public float minY;
|
|
|
|
// Token: 0x04003270 RID: 12912
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4003270")]
|
|
[Tooltip("The limits")]
|
|
public float maxY;
|
|
|
|
// Token: 0x04003271 RID: 12913
|
|
[FieldOffset(Offset = "0x2C")]
|
|
[Token(Token = "0x4003271")]
|
|
[Tooltip("The limits")]
|
|
public float minZ;
|
|
|
|
// Token: 0x04003272 RID: 12914
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4003272")]
|
|
[Tooltip("The limits")]
|
|
public float maxZ;
|
|
}
|
|
}
|
|
}
|