mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-21 09:39:56 +00:00
make debug text nicer
This commit is contained in:
parent
f37e71798d
commit
324e02d2b1
@ -99,12 +99,12 @@ namespace QSB.Player
|
||||
PlayerSyncObjects.Any(x => x != null && x.AttachedNetId == id && x.IsLocalPlayer);
|
||||
}
|
||||
|
||||
public static List<OWCamera> GetPlayerCameras(bool includeLocalCamera = true)
|
||||
public static List<PlayerInfo> GetPlayersWithCameras(bool includeLocalCamera = true)
|
||||
{
|
||||
var cameraList = PlayerList.Where(x => x.Camera != null && x.PlayerId != LocalPlayerId).Select(x => x.Camera).ToList();
|
||||
var cameraList = PlayerList.Where(x => x.Camera != null && x.PlayerId != LocalPlayerId).ToList();
|
||||
if (includeLocalCamera)
|
||||
{
|
||||
cameraList.Add(Locator.GetActiveCamera());
|
||||
cameraList.Add(LocalPlayer);
|
||||
}
|
||||
return cameraList;
|
||||
}
|
||||
|
@ -132,9 +132,9 @@ namespace QSB
|
||||
GUI.Label(new Rect(220, offset, 200f, 20f), $"QM Visible by :");
|
||||
offset += _debugLineSpacing;
|
||||
var tracker = Locator.GetQuantumMoon().GetValue<ShapeVisibilityTracker>("_visibilityTracker");
|
||||
foreach (var camera in QSBPlayerManager.GetPlayerCameras())
|
||||
foreach (var player in QSBPlayerManager.GetPlayersWithCameras())
|
||||
{
|
||||
GUI.Label(new Rect(220, offset, 200f, 20f), $" - {camera.name} : {tracker.GetType().GetMethod("IsInFrustum", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(tracker, new object[] { camera.GetFrustumPlanes() })}");
|
||||
GUI.Label(new Rect(220, offset, 200f, 20f), $" - {player.PlayerId} : {tracker.GetType().GetMethod("IsInFrustum", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(tracker, new object[] { player.Camera.GetFrustumPlanes() })}");
|
||||
offset += _debugLineSpacing;
|
||||
}
|
||||
|
||||
@ -173,9 +173,16 @@ namespace QSB
|
||||
}
|
||||
GUI.Label(new Rect(220, offset, 200f, 20f), $"Visible by :");
|
||||
offset += _debugLineSpacing;
|
||||
foreach (var camera in QSBPlayerManager.GetPlayerCameras())
|
||||
foreach (var player in QSBPlayerManager.GetPlayersWithCameras())
|
||||
{
|
||||
GUI.Label(new Rect(220, offset, 200f, 20f), $" - {camera.name} : {socketedTrackers.Any(x => (bool)x.GetType().GetMethod("IsInFrustum", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(x, new object[] { camera.GetFrustumPlanes() }))}");
|
||||
GUI.Label(new Rect(220, offset, 200f, 20f), $" - {player.PlayerId} : {socketedTrackers.Any(x => (bool)x.GetType().GetMethod("IsInFrustum", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(x, new object[] { player.Camera.GetFrustumPlanes() }))}");
|
||||
offset += _debugLineSpacing;
|
||||
}
|
||||
GUI.Label(new Rect(220, offset, 200f, 20f), $"Entangled Players :");
|
||||
offset += _debugLineSpacing;
|
||||
foreach (var player in QuantumManager.GetEntangledPlayers(socketedObject.AttachedObject))
|
||||
{
|
||||
GUI.Label(new Rect(220, offset, 200f, 20f), $" - {player.PlayerId}");
|
||||
offset += _debugLineSpacing;
|
||||
}
|
||||
var sockets = socketedObject.AttachedObject.GetValue<List<QuantumSocket>>("_socketList");
|
||||
|
@ -44,12 +44,12 @@ namespace QSB.QuantumSync.Patches
|
||||
|
||||
public static bool RenderIsVisibleUsingCameraFrustum(RendererVisibilityTracker __instance, ref bool __result, Renderer ____renderer, bool ____checkFrustumOcclusion)
|
||||
{
|
||||
__result = QSBPlayerManager.GetPlayerCameras()
|
||||
.Any(x => GeometryUtility.TestPlanesAABB(x.GetFrustumPlanes(), ____renderer.bounds))
|
||||
&& (!____checkFrustumOcclusion || QSBPlayerManager.GetPlayerCameras()
|
||||
__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.transform.position })));
|
||||
.Invoke(__instance, new object[] { x.Camera.transform.position })));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -70,18 +70,18 @@ namespace QSB.QuantumSync
|
||||
public static bool IsVisibleUsingCameraFrustum(ShapeVisibilityTracker tracker, bool ignoreLocalCamera)
|
||||
{
|
||||
return tracker.gameObject.activeInHierarchy
|
||||
&& QSBPlayerManager.GetPlayerCameras(!ignoreLocalCamera)
|
||||
&& QSBPlayerManager.GetPlayersWithCameras(!ignoreLocalCamera)
|
||||
.Any(x => (bool)tracker.GetType()
|
||||
.GetMethod("IsInFrustum", BindingFlags.NonPublic | BindingFlags.Instance)
|
||||
.Invoke(tracker, new object[] { x.GetFrustumPlanes() }));
|
||||
.Invoke(tracker, new object[] { x.Camera.GetFrustumPlanes() }));
|
||||
}
|
||||
|
||||
public static bool IsVisible(ShapeVisibilityTracker tracker, bool ignoreLocalCamera)
|
||||
{
|
||||
return tracker.gameObject.activeInHierarchy
|
||||
&& IsVisibleUsingCameraFrustum(tracker, ignoreLocalCamera)
|
||||
&& QSBPlayerManager.GetPlayerCameras(!ignoreLocalCamera)
|
||||
.Any(x => VisibilityOccluder.CanYouSee(tracker, x.mainCamera.transform.position));
|
||||
&& QSBPlayerManager.GetPlayersWithCameras(!ignoreLocalCamera)
|
||||
.Any(x => VisibilityOccluder.CanYouSee(tracker, x.Camera.mainCamera.transform.position));
|
||||
}
|
||||
|
||||
public static IEnumerable<PlayerInfo> GetEntangledPlayers(QuantumObject obj)
|
||||
|
Loading…
x
Reference in New Issue
Block a user