Files
NobetaSource/Cpp2IL/Assembly-CSharp/RootMotion/FinalIK/HitReaction.cs
2023-09-06 22:09:22 +02:00

532 lines
16 KiB
C#

using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000476 RID: 1142
[Token(Token = "0x2000476")]
public class HitReaction : OffsetModifier
{
// Token: 0x1700028A RID: 650
// (get) Token: 0x060028C9 RID: 10441 RVA: 0x00059AAC File Offset: 0x00057CAC
[Token(Token = "0x1700028A")]
public bool inProgress
{
[Token(Token = "0x60028C9")]
[Address(RVA = "0x11E1950", Offset = "0x11E0150", VA = "0x1811E1950")]
get
{
HitReaction.HitPointEffector[] array = this.effectorHitPoints;
int num = 0;
int length = array.Length;
if (num < length)
{
if (array[num].inProgress)
{
return true;
}
num++;
}
HitReaction.HitPointBone[] array2 = this.boneHitPoints;
int length2 = array2.Length;
if (num >= length2)
{
throw new NullReferenceException();
}
if (!array2[num].inProgress)
{
num++;
}
return true;
}
}
// Token: 0x060028CA RID: 10442 RVA: 0x00059B10 File Offset: 0x00057D10
[Token(Token = "0x60028CA")]
[Address(RVA = "0x11E1850", Offset = "0x11E0050", VA = "0x1811E1850", Slot = "4")]
protected override void OnModifyOffset()
{
HitReaction.HitPointEffector[] array = this.effectorHitPoints;
int num = 0;
int length = array.Length;
if (num < length)
{
FullBodyBipedIK ik = this.ik;
HitReaction.HitPointEffector hitPointEffector = array[num];
float weight = this.weight;
IKSolverFullBodyBiped solver = ik.solver;
hitPointEffector.Apply(solver, weight);
num++;
}
HitReaction.HitPointBone[] array2 = this.boneHitPoints;
int length2 = array2.Length;
if (num < length2)
{
FullBodyBipedIK ik2 = this.ik;
HitReaction.HitPointBone hitPointBone = array2[num];
float weight2 = this.weight;
IKSolverFullBodyBiped solver2 = ik2.solver;
hitPointBone.Apply(solver2, weight2);
num++;
}
}
// Token: 0x060028CB RID: 10443 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028CB")]
[Address(RVA = "0x11E15C0", Offset = "0x11DFDC0", VA = "0x1811E15C0")]
public void Hit(Collider collider, Vector3 force, Vector3 point)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028CC RID: 10444 RVA: 0x00059BB0 File Offset: 0x00057DB0
[Token(Token = "0x60028CC")]
[Address(RVA = "0xA91CB0", Offset = "0xA904B0", VA = "0x180A91CB0")]
public HitReaction()
{
}
// Token: 0x04003221 RID: 12833
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4003221")]
[Tooltip("Hit points for the FBBIK effectors")]
public HitReaction.HitPointEffector[] effectorHitPoints;
// Token: 0x04003222 RID: 12834
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4003222")]
[Tooltip(" Hit points for bones without an effector, such as the head")]
public HitReaction.HitPointBone[] boneHitPoints;
// Token: 0x02000477 RID: 1143
[Token(Token = "0x2000477")]
[Serializable]
public abstract class HitPoint
{
// Token: 0x1700028B RID: 651
// (get) Token: 0x060028CD RID: 10445 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x1700028B")]
public bool inProgress
{
[Token(Token = "0x60028CD")]
[Address(RVA = "0x1584E60", Offset = "0x1583660", VA = "0x181584E60")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x1700028C RID: 652
// (get) Token: 0x060028CE RID: 10446 RVA: 0x00059BC4 File Offset: 0x00057DC4
// (set) Token: 0x060028CF RID: 10447 RVA: 0x00059BD8 File Offset: 0x00057DD8
[Token(Token = "0x1700028C")]
private protected float crossFader
{
[Token(Token = "0x60028CE")]
[Address(RVA = "0x5ACB40", Offset = "0x5AB340", VA = "0x1805ACB40")]
protected get;
[Token(Token = "0x60028CF")]
[Address(RVA = "0x5ACBD0", Offset = "0x5AB3D0", VA = "0x1805ACBD0")]
private set;
}
// Token: 0x1700028D RID: 653
// (get) Token: 0x060028D0 RID: 10448 RVA: 0x00059BEC File Offset: 0x00057DEC
// (set) Token: 0x060028D1 RID: 10449 RVA: 0x00059C00 File Offset: 0x00057E00
[Token(Token = "0x1700028D")]
private protected float timer
{
[Token(Token = "0x60028D0")]
[Address(RVA = "0x66CA40", Offset = "0x66B240", VA = "0x18066CA40")]
protected get;
[Token(Token = "0x60028D1")]
[Address(RVA = "0x66CA50", Offset = "0x66B250", VA = "0x18066CA50")]
private set;
}
// Token: 0x1700028E RID: 654
// (get) Token: 0x060028D2 RID: 10450 RVA: 0x000020D3 File Offset: 0x000002D3
// (set) Token: 0x060028D3 RID: 10451 RVA: 0x00059C14 File Offset: 0x00057E14
[Token(Token = "0x1700028E")]
private protected Vector3 force
{
[Token(Token = "0x60028D2")]
[Address(RVA = "0x13017D0", Offset = "0x12FFFD0", VA = "0x1813017D0")]
[CompilerGenerated]
protected get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
[Token(Token = "0x60028D3")]
[Address(RVA = "0x13018C0", Offset = "0x13000C0", VA = "0x1813018C0")]
[CompilerGenerated]
private set
{
float z = value.z;
this.<force>k__BackingField.z = z;
}
}
// Token: 0x1700028F RID: 655
// (get) Token: 0x060028D4 RID: 10452 RVA: 0x000020D3 File Offset: 0x000002D3
// (set) Token: 0x060028D5 RID: 10453 RVA: 0x00059C34 File Offset: 0x00057E34
[Token(Token = "0x1700028F")]
private protected Vector3 point
{
[Token(Token = "0x60028D4")]
[Address(RVA = "0x3D4860", Offset = "0x3D3060", VA = "0x1803D4860")]
[CompilerGenerated]
protected get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
[Token(Token = "0x60028D5")]
[Address(RVA = "0x3D48E0", Offset = "0x3D30E0", VA = "0x1803D48E0")]
[CompilerGenerated]
private set
{
float z = value.z;
this.<point>k__BackingField.z = z;
}
}
// Token: 0x060028D6 RID: 10454 RVA: 0x00059C54 File Offset: 0x00057E54
[Token(Token = "0x60028D6")]
[Address(RVA = "0x1584D40", Offset = "0x1583540", VA = "0x181584D40")]
public void Hit(Vector3 force, Vector3 point)
{
int num = 0;
float num2 = this.GetLength();
this.length = num2;
if (num < (int)num2)
{
this.<crossFader>k__BackingField = 0f;
if (this.crossFadeTime > (float)num)
{
}
int num3 = 0;
this.crossFadeSpeed = (float)num3;
this.CrossFadeStart();
float z = force.z;
this.<force>k__BackingField.z = z;
float z2 = point.z;
this.<point>k__BackingField.z = z2;
this.<timer>k__BackingField = 0f;
}
Debug.LogError("Hit Point WeightCurve length is zero.");
}
// Token: 0x060028D7 RID: 10455 RVA: 0x00059CD8 File Offset: 0x00057ED8
[Token(Token = "0x60028D7")]
[Address(RVA = "0x1584C70", Offset = "0x1583470", VA = "0x181584C70")]
public void Apply(IKSolverFullBodyBiped solver, float weight)
{
float time = Time.time;
float time2 = Time.time;
float num = this.length;
this.lastTime = time2;
float num2 = this.<timer>k__BackingField;
if (num2 < num)
{
int num3 = 0;
int num4 = 0;
float num5 = Mathf.Clamp(num2, (float)num3, num);
this.<timer>k__BackingField = num5;
float num6 = this.crossFadeSpeed;
if (num6 <= (float)num4)
{
}
int num7 = 0;
float num8 = Mathf.Clamp(num6, (float)num7, 1f);
this.<crossFader>k__BackingField = num8;
this.OnApply(solver, weight);
}
}
// Token: 0x060028D8 RID: 10456
[Token(Token = "0x60028D8")]
[Address(Slot = "4")]
protected abstract float GetLength();
// Token: 0x060028D9 RID: 10457
[Token(Token = "0x60028D9")]
[Address(Slot = "5")]
protected abstract void CrossFadeStart();
// Token: 0x060028DA RID: 10458
[Token(Token = "0x60028DA")]
[Address(Slot = "6")]
protected abstract void OnApply(IKSolverFullBodyBiped solver, float weight);
// Token: 0x060028DB RID: 10459 RVA: 0x00059D60 File Offset: 0x00057F60
[Token(Token = "0x60028DB")]
[Address(RVA = "0x1584890", Offset = "0x1583090", VA = "0x181584890")]
protected HitPoint()
{
}
// Token: 0x04003223 RID: 12835
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003223")]
[Tooltip("Just for visual clarity, not used at all")]
public string name;
// Token: 0x04003224 RID: 12836
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003224")]
[Tooltip("Linking this hit point to a collider")]
public Collider collider;
// Token: 0x04003225 RID: 12837
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4003225")]
[SerializeField]
[Tooltip("Only used if this hit point gets hit when already processing another hit")]
private float crossFadeTime = 0.1f;
// Token: 0x0400322A RID: 12842
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x400322A")]
private float length;
// Token: 0x0400322B RID: 12843
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x400322B")]
private float crossFadeSpeed;
// Token: 0x0400322C RID: 12844
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x400322C")]
private float lastTime;
}
// Token: 0x02000478 RID: 1144
[Token(Token = "0x2000478")]
[Serializable]
public class HitPointEffector : HitReaction.HitPoint
{
// Token: 0x060028DC RID: 10460 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028DC")]
[Address(RVA = "0x1584900", Offset = "0x1583100", VA = "0x181584900", Slot = "4")]
protected override float GetLength()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028DD RID: 10461 RVA: 0x00059D80 File Offset: 0x00057F80
[Token(Token = "0x60028DD")]
[Address(RVA = "0x15848A0", Offset = "0x15830A0", VA = "0x1815848A0", Slot = "5")]
protected override void CrossFadeStart()
{
HitReaction.HitPointEffector.EffectorLink[] array = this.effectorLinks;
int num = 0;
int length = array.Length;
if (num < length)
{
array[num].CrossFadeStart();
num++;
}
}
// Token: 0x060028DE RID: 10462 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028DE")]
[Address(RVA = "0x1584A50", Offset = "0x1583250", VA = "0x181584A50", Slot = "6")]
protected override void OnApply(IKSolverFullBodyBiped solver, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028DF RID: 10463 RVA: 0x00059DB8 File Offset: 0x00057FB8
[Token(Token = "0x60028DF")]
[Address(RVA = "0x1584890", Offset = "0x1583090", VA = "0x181584890")]
public HitPointEffector()
{
this.crossFadeTime = 0.1f;
base..ctor();
}
// Token: 0x0400322D RID: 12845
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x400322D")]
[Tooltip("Offset magnitude in the direction of the hit force")]
public AnimationCurve offsetInForceDirection;
// Token: 0x0400322E RID: 12846
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x400322E")]
[Tooltip("Offset magnitude in the direction of character.up")]
public AnimationCurve offsetInUpDirection;
// Token: 0x0400322F RID: 12847
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x400322F")]
[Tooltip("Linking this offset to the FBBIK effectors")]
public HitReaction.HitPointEffector.EffectorLink[] effectorLinks;
// Token: 0x02000479 RID: 1145
[Token(Token = "0x2000479")]
[Serializable]
public class EffectorLink
{
// Token: 0x060028E0 RID: 10464 RVA: 0x00038FC3 File Offset: 0x000371C3
[Token(Token = "0x60028E0")]
[Address(RVA = "0x12DC280", Offset = "0x12DAA80", VA = "0x1812DC280")]
public void Apply(IKSolverFullBodyBiped solver, Vector3 offset, float crossFader)
{
}
// Token: 0x060028E1 RID: 10465 RVA: 0x00038FC3 File Offset: 0x000371C3
[Token(Token = "0x60028E1")]
[Address(RVA = "0x12DC3F0", Offset = "0x12DABF0", VA = "0x1812DC3F0")]
public void CrossFadeStart()
{
}
// Token: 0x060028E2 RID: 10466 RVA: 0x00038FC3 File Offset: 0x000371C3
[Token(Token = "0x60028E2")]
[Address(RVA = "0x43A830", Offset = "0x439030", VA = "0x18043A830")]
public EffectorLink()
{
}
// Token: 0x04003230 RID: 12848
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003230")]
[Tooltip("The FBBIK effector type")]
public FullBodyBipedEffector effector;
// Token: 0x04003231 RID: 12849
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4003231")]
[Tooltip("The weight of this effector (could also be negative)")]
public float weight;
// Token: 0x04003232 RID: 12850
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003232")]
private Vector3 lastValue;
// Token: 0x04003233 RID: 12851
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x4003233")]
private Vector3 current;
}
}
// Token: 0x0200047A RID: 1146
[Token(Token = "0x200047A")]
[Serializable]
public class HitPointBone : HitReaction.HitPoint
{
// Token: 0x060028E3 RID: 10467 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028E3")]
[Address(RVA = "0x1584590", Offset = "0x1582D90", VA = "0x181584590", Slot = "4")]
protected override float GetLength()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028E4 RID: 10468 RVA: 0x00059DD8 File Offset: 0x00057FD8
[Token(Token = "0x60028E4")]
[Address(RVA = "0x1584530", Offset = "0x1582D30", VA = "0x181584530", Slot = "5")]
protected override void CrossFadeStart()
{
HitReaction.HitPointBone.BoneLink[] array = this.boneLinks;
int num = 0;
int length = array.Length;
if (num < length)
{
array[num].CrossFadeStart();
num++;
}
}
// Token: 0x060028E5 RID: 10469 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028E5")]
[Address(RVA = "0x1584630", Offset = "0x1582E30", VA = "0x181584630", Slot = "6")]
protected override void OnApply(IKSolverFullBodyBiped solver, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028E6 RID: 10470 RVA: 0x00059E10 File Offset: 0x00058010
[Token(Token = "0x60028E6")]
[Address(RVA = "0x1584890", Offset = "0x1583090", VA = "0x181584890")]
public HitPointBone()
{
this.crossFadeTime = 0.1f;
base..ctor();
}
// Token: 0x04003234 RID: 12852
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4003234")]
[Tooltip("The angle to rotate the bone around it's rigidbody's world center of mass")]
public AnimationCurve aroundCenterOfMass;
// Token: 0x04003235 RID: 12853
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4003235")]
[Tooltip("Linking this hit point to bone(s)")]
public HitReaction.HitPointBone.BoneLink[] boneLinks;
// Token: 0x04003236 RID: 12854
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4003236")]
private Rigidbody rigidbody;
// Token: 0x0200047B RID: 1147
[Token(Token = "0x200047B")]
[Serializable]
public class BoneLink
{
// Token: 0x060028E7 RID: 10471 RVA: 0x00038FC3 File Offset: 0x000371C3
[Token(Token = "0x60028E7")]
[Address(RVA = "0x12DC110", Offset = "0x12DA910", VA = "0x1812DC110")]
public void Apply(IKSolverFullBodyBiped solver, Quaternion offset, float crossFader)
{
}
// Token: 0x060028E8 RID: 10472 RVA: 0x00038FC3 File Offset: 0x000371C3
[Token(Token = "0x60028E8")]
[Address(RVA = "0x12DC230", Offset = "0x12DAA30", VA = "0x1812DC230")]
public void CrossFadeStart()
{
}
// Token: 0x060028E9 RID: 10473 RVA: 0x00038FC3 File Offset: 0x000371C3
[Token(Token = "0x60028E9")]
[Address(RVA = "0x12DC240", Offset = "0x12DAA40", VA = "0x1812DC240")]
public BoneLink()
{
}
// Token: 0x04003237 RID: 12855
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003237")]
[Tooltip("Reference to the bone that this hit point rotates")]
public Transform bone;
// Token: 0x04003238 RID: 12856
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003238")]
[Tooltip("Weight of rotating the bone")]
[Range(0f, 1f)]
public float weight;
// Token: 0x04003239 RID: 12857
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4003239")]
private Quaternion lastValue;
// Token: 0x0400323A RID: 12858
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x400323A")]
private Quaternion current;
}
}
}
}