public static bool Prefix(PlayerManager __instance, ref Collider __result) { BetterPlacing.AddNpcToPhysicalCollisionMask(); var gameObject = __instance.GetObjectToPlace(); if (!BetterPlacing.IsPlaceableFurniture(gameObject)) { return(true); } Collider[] colliders = gameObject.GetComponentsInChildren <Collider>(); foreach (var eachCollider in colliders) { Collider[] otherColliders = Physics.OverlapSphere(eachCollider.bounds.center, eachCollider.bounds.size.magnitude / 2, 918016); foreach (var eachOtherCollider in otherColliders) { if (!eachOtherCollider.gameObject.activeInHierarchy) { continue; } if (eachOtherCollider.transform.IsChildOf(gameObject.transform)) { continue; } Vector3 direction; float distance; if (Physics.ComputePenetration(eachCollider, eachCollider.transform.position, eachCollider.transform.rotation, eachOtherCollider, eachOtherCollider.transform.position, eachOtherCollider.transform.rotation, out direction, out distance)) { __result = eachOtherCollider; return(false); } } } __result = null; return(false); }