private static bool InTrigger(Frame f, TriggerSphere region) { Player clientPlayer = f.GetPlayer(f.client_name); Vector3 pos = clientPlayer.head.Position; #if DEBUG if (clientPlayer.team_color == Team.TeamColor.spectator) { (pos, _) = f.GetCameraTransform(); } #endif (pos.X, pos.Z) = (pos.Z, pos.X); float distance = Vector3.Distance(region.position, pos); return(distance < region.radius / 2f); }
private void ReferencesEqualityTest() { Debug.Log(LogLevel.Display, "Starting " + MethodBase.GetCurrentMethod().Name + "..."); TriggerBox actorLeft = new TriggerBox(); TriggerSphere actorRight = new TriggerSphere(); SceneComponent sceneComponentLeft = new SceneComponent(actorLeft); SceneComponent sceneComponentRight = new SceneComponent(actorRight); if (sceneComponentLeft.Equals(sceneComponentRight) || !sceneComponentLeft.Equals(sceneComponentLeft)) { Debug.Log(LogLevel.Error, "Scene components equality check failed!"); return; } if (actorLeft.Equals(sceneComponentRight.GetActor <TriggerSphere>()) || !actorLeft.Equals(sceneComponentLeft.GetActor <TriggerBox>())) { Debug.Log(LogLevel.Error, "Scene components owners equality check failed!"); return; } sceneComponentLeft.Destroy(); if (sceneComponentRight.Equals(sceneComponentLeft)) { Debug.Log(LogLevel.Error, "Scene components equality check after destruction failed!"); return; } sceneComponentRight.Destroy(); if (sceneComponentRight.Equals(sceneComponentRight)) { Debug.Log(LogLevel.Error, "Scene components equality check with null failed!"); return; } if (actorLeft.Equals(actorRight) || !actorLeft.Equals(actorLeft)) { Debug.Log(LogLevel.Error, "Actors equality check failed!"); return; } actorLeft.Destroy(); if (actorRight.Equals(actorLeft)) { Debug.Log(LogLevel.Error, "Actors equality check after destruction failed!"); return; } actorRight.Destroy(); if (actorRight.Equals(actorRight)) { Debug.Log(LogLevel.Error, "Actors equality check with null failed!"); return; } Debug.Log(LogLevel.Display, "Test passed successfully"); }