public static bool RendererVisibilityTracker_IsVisibleUsingCameraFrustum(RendererVisibilityTracker __instance, out bool __result) { __result = QSBPlayerManager.GetPlayersWithCameras() .Any(x => GeometryUtility.TestPlanesAABB(x.Camera.GetFrustumPlanes(), __instance._renderer.bounds)) && (!__instance._checkFrustumOcclusion || QSBPlayerManager.GetPlayersWithCameras() .Any(x => !__instance.IsOccludedFromPosition(x.Camera.transform.position))); return(false); }
// RendererVisibilityTracker patches - probably not needed as i don't think RendererVisibilityTracker is ever used? public static bool RenderIsVisibleUsingCameraFrustum(RendererVisibilityTracker __instance, ref bool __result, Renderer ____renderer, bool ____checkFrustumOcclusion) { __result = QSBPlayerManager.GetPlayersWithCameras() .Any(x => GeometryUtility.TestPlanesAABB(x.Camera.GetFrustumPlanes(), ____renderer.bounds)) && (!____checkFrustumOcclusion || QSBPlayerManager.GetPlayersWithCameras() .Any(x => !(bool)__instance.GetType() .GetMethod("IsOccludedFromPosition", BindingFlags.NonPublic | BindingFlags.Instance) .Invoke(__instance, new object[] { x.Camera.transform.position }))); return(false); }