diff options
Diffstat (limited to '_ActiveRagdoll/Handlers/FootHandler.cs')
| -rw-r--r-- | _ActiveRagdoll/Handlers/FootHandler.cs | 75 | 
1 files changed, 75 insertions, 0 deletions
diff --git a/_ActiveRagdoll/Handlers/FootHandler.cs b/_ActiveRagdoll/Handlers/FootHandler.cs new file mode 100644 index 0000000..7343e21 --- /dev/null +++ b/_ActiveRagdoll/Handlers/FootHandler.cs @@ -0,0 +1,75 @@ +using UnityEngine; + +public class FootHandler : MonoBehaviour +{ +	private AnimationHandler animHandler; + +	private Collider collider; + +	public PhysicMaterial slippery; + +	private PhysicMaterial footMaterial; + +	private Transform torso; + +	private MovementDataHandler moveData; + +	private Rigidbody rig; + +	private RotationHandler rot; + +	private Vector3 rotationDif; + +	private AnimationObject anim; + +	private StepHandler handler; + +	private void Start() +	{ +		animHandler = base.transform.root.GetComponent<AnimationHandler>(); +		moveData = base.transform.root.GetComponent<MovementDataHandler>(); +		collider = GetComponentInChildren<Collider>(); +		rig = GetComponent<Rigidbody>(); +		footMaterial = collider.material; +		torso = base.transform.root.GetComponentInChildren<Torso>().transform; +		rot = base.transform.root.GetComponent<RotationHandler>(); +		handler = base.transform.root.GetComponent<StepHandler>(); +		anim = GetComponentInChildren<AnimationObject>(); +	} + +	private void Update() +	{ +		float num = Mathf.Abs(torso.position.x - base.transform.position.x) + Mathf.Abs(torso.position.z - base.transform.position.z); +		if (rot.hipCorrectionAmount > 30f || ((bool)anim && anim.isLeft != handler.isLeft)) +		{ +			SetFoot(active: false); +		} +		else if (animHandler.animationState == 0) +		{ +			if (num > 0.1f || rotationDif.magnitude > 15f) +			{ +				SetFoot(active: false); +			} +			else +			{ +				SetFoot(active: true); +			} +		} +		else +		{ +			SetFoot(active: true); +		} +	} + +	private void FixedUpdate() +	{ +	} + +	private void SetFoot(bool active) +	{ +		if (active) +		{ +			collider.material = footMaterial; +		} +	} +}  | 
