mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2024-12-29 12:21:25 +00:00
41 lines
1001 B
C#
41 lines
1001 B
C#
|
using HarmonyLib;
|
|||
|
using QSB.Patches;
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
namespace QSB;
|
|||
|
|
|||
|
[HarmonyPatch(typeof(OWExtensions))]
|
|||
|
public class GetAttachedOWRigidbodyPatch : QSBPatch
|
|||
|
{
|
|||
|
public override QSBPatchTypes Type => QSBPatchTypes.OnModStart;
|
|||
|
|
|||
|
[HarmonyPrefix]
|
|||
|
[HarmonyPatch(nameof(OWExtensions.GetAttachedOWRigidbody), typeof(GameObject), typeof(bool))]
|
|||
|
private static bool GetAttachedOWRigidbody(GameObject obj, bool ignoreThisTransform, out OWRigidbody __result)
|
|||
|
{
|
|||
|
OWRigidbody owrigidbody = null;
|
|||
|
var transform = obj.transform;
|
|||
|
if (ignoreThisTransform)
|
|||
|
{
|
|||
|
transform = obj.transform.parent;
|
|||
|
}
|
|||
|
while (owrigidbody == null)
|
|||
|
{
|
|||
|
owrigidbody = transform.GetComponent<OWRigidbody>();
|
|||
|
/*
|
|||
|
if (owrigidbody != null && !owrigidbody.gameObject.activeInHierarchy)
|
|||
|
{
|
|||
|
owrigidbody = null;
|
|||
|
}
|
|||
|
*/
|
|||
|
if ((transform == obj.transform.root && owrigidbody == null) || owrigidbody != null)
|
|||
|
{
|
|||
|
break;
|
|||
|
}
|
|||
|
transform = transform.parent;
|
|||
|
}
|
|||
|
__result = owrigidbody;
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|