void SetMode(CockpitMode mode) { if (gameNotRunning) { gameNotRunning.SetActive(mode.HasFlag(CockpitMode.GameNotRunning)); } if (map) { map.SetActive(mode.HasFlag(CockpitMode.Map)); } if (cockpit) { cockpit.SetActive(mode.HasFlag(CockpitMode.Cockpit)); } if (shipOnlyCockpit) { shipOnlyCockpit.SetActive(mode.HasFlag(CockpitMode.Cockpit) && mode.HasFlag(CockpitMode.InShip)); } if (mainShipOnlyCockpit) { mainShipOnlyCockpit.SetActive(mode.HasFlag(CockpitMode.Cockpit) && mode.HasFlag(CockpitMode.InMainShip)); } if (fighterOnlyCockpit) { fighterOnlyCockpit.SetActive(mode.HasFlag(CockpitMode.Cockpit) && mode.HasFlag(CockpitMode.InFighter)); } if (srvOnlyCockpit) { srvOnlyCockpit.SetActive(mode.HasFlag(CockpitMode.Cockpit) && mode.HasFlag(CockpitMode.InSRV)); } Mode = mode; ModeChanged.Send(Mode); }
// Trigger a refresh event protected void TriggerRefresh() { if (refreshEvent != null) { refreshEvent.Send(); } }
//------------------------------------------------- private void TeleportPlayer() { teleporting = false; PlayerPre.Send(pointedAtTeleportMarker); SteamVR_Fade.Start(Color.clear, currentFadeTime); TeleportPoint teleportPoint = teleportingToMarker as TeleportPoint; Vector3 teleportPosition = pointedAtPosition; if (teleportPoint != null) { teleportPosition = teleportPoint.transform.position; //Teleport to a new scene if (teleportPoint.teleportType == TeleportPoint.TeleportPointType.SwitchToNewScene) { teleportPoint.TeleportToScene(); return; } } // Find the actual floor position below the navigation mesh TeleportArea teleportArea = teleportingToMarker as TeleportArea; if (teleportArea != null) { if (floorFixupMaximumTraceDistance > 0.0f) { RaycastHit raycastHit; if (Physics.Raycast(teleportPosition + 0.05f * Vector3.down, Vector3.down, out raycastHit, floorFixupMaximumTraceDistance, floorFixupTraceLayerMask)) { teleportPosition = raycastHit.point; } } } if (teleportingToMarker.ShouldMovePlayer()) { Vector3 playerFeetOffset = player.trackingOriginTransform.position - player.feetPositionGuess; player.trackingOriginTransform.position = teleportPosition + playerFeetOffset; if (player.leftHand.currentAttachedObjectInfo.HasValue) { player.leftHand.ResetAttachedTransform(player.leftHand.currentAttachedObjectInfo.Value); } if (player.rightHand.currentAttachedObjectInfo.HasValue) { player.rightHand.ResetAttachedTransform(player.rightHand.currentAttachedObjectInfo.Value); } } else { teleportingToMarker.TeleportPlayer(pointedAtPosition); } Player.Send(pointedAtTeleportMarker); }
//------------------------------------------------- private void TeleportPlayer() { teleporting = false; PlayerPre.Send(pointedAtTeleportMarker); SteamVR_Fade.Start(Color.clear, currentFadeTime); TeleportPoint_NVR teleportPoint = teleportingToMarker as TeleportPoint_NVR; Vector3 teleportPosition = pointedAtPosition; if (teleportPoint != null) { teleportPosition = teleportPoint.transform.position; //Teleport to a new scene if (teleportPoint.teleportType == TeleportPoint_NVR.TeleportPointType.SwitchToNewScene) { teleportPoint.TeleportToScene(); return; } } // Find the actual floor position below the navigation mesh TeleportArea_NVR teleportArea = teleportingToMarker as TeleportArea_NVR; if (teleportArea != null) { if (floorFixupMaximumTraceDistance > 0.0f) { RaycastHit raycastHit; if (Physics.Raycast(teleportPosition + 0.05f * Vector3.down, Vector3.down, out raycastHit, floorFixupMaximumTraceDistance, floorFixupTraceLayerMask)) { teleportPosition = raycastHit.point; } } } if (teleportingToMarker.ShouldMovePlayer()) { Vector3 playerFeetOffset = player.transform.position - FeetPositionEstimate(); player.transform.position = teleportPosition + playerFeetOffset; } else { teleportingToMarker.TeleportPlayer(pointedAtPosition); } Player.Send(pointedAtTeleportMarker); }
private static void UpdateForegroundWindow(IntPtr hWnd) { uint pid = 0; if (hWnd != IntPtr.Zero) { GetWindowThreadProcessId(hWnd, out pid); } if (pid != ForegroundWindowPid) { ForegroundWindowPid = pid; ForegroundWindowProcessChanged.Send(ForegroundWindowPid); } }
void SetMode(CockpitMode mode) { gameNotRunning?.SetActive(mode.HasFlag(CockpitMode.GameNotRunning)); menuMode?.SetActive(mode.HasFlag(CockpitMode.MenuMode)); map?.SetActive(mode.HasFlag(CockpitMode.Map)); stationServices?.SetActive(mode.HasFlag(CockpitMode.StationServices)); cockpit?.SetActive(mode.HasFlag(CockpitMode.Cockpit)); shipOnlyCockpit?.SetActive(mode.HasFlag(CockpitMode.Cockpit) && mode.HasFlag(CockpitMode.InShip)); mainShipOnlyCockpit?.SetActive(mode.HasFlag(CockpitMode.Cockpit) && mode.HasFlag(CockpitMode.InMainShip)); fighterOnlyCockpit?.SetActive(mode.HasFlag(CockpitMode.Cockpit) && mode.HasFlag(CockpitMode.InFighter)); srvOnlyCockpit?.SetActive(mode.HasFlag(CockpitMode.Cockpit) && mode.HasFlag(CockpitMode.InSRV)); fssMode?.SetActive(mode.HasFlag(CockpitMode.FSSMode)); dssMode?.SetActive(mode.HasFlag(CockpitMode.DSSMode)); Mode = mode; ModeChanged.Send(Mode); }
//------------------------------------------------- private IEnumerator Start() { // Uncomment for roomscale testing //_instance.initialized = true; //_instance.playAreaSizeX = UnityEngine.Random.Range( 1.0f, 4.0f ); //_instance.playAreaSizeZ = UnityEngine.Random.Range( 1.0f, _instance.playAreaSizeX ); //_instance.roomscale = true; //ChaperoneInfo.Initialized.Send(); //yield break; // Get interface pointer var chaperone = OpenVR.Chaperone; if (chaperone == null) { Debug.LogWarning("Failed to get IVRChaperone interface."); initialized = true; yield break; } // Get play area size while (true) { float px = 0.0f, pz = 0.0f; if (chaperone.GetPlayAreaSize(ref px, ref pz)) { initialized = true; playAreaSizeX = px; playAreaSizeZ = pz; roomscale = Mathf.Max(px, pz) > 1.01f; Debug.LogFormat("ChaperoneInfo initialized. {2} play area {0:0.00}m x {1:0.00}m", px, pz, roomscale ? "Roomscale" : "Standing"); Initialized.Send(); yield break; } yield return(null); } }
//------------------------------------------------- private void InitiateTeleportFade() { teleporting = true; currentFadeTime = teleportFadeTime; TeleportPoint teleportPoint = teleportingToMarker as TeleportPoint; if (teleportPoint != null && teleportPoint.teleportType == TeleportPoint.TeleportPointType.SwitchToNewScene) { currentFadeTime *= 3.0f; ChangeScene.Send(currentFadeTime); } SteamVR_Fade.Start(Color.clear, 0); SteamVR_Fade.Start(Color.black, currentFadeTime); headAudioSource.transform.SetParent(player.hmdTransform); headAudioSource.transform.localPosition = Vector3.zero; PlayAudioClip(headAudioSource, teleportSound); Invoke("TeleportPlayer", currentFadeTime); }
void SetStatus(VJoyStatus status) { vJoyStatus = status; VJoyStatusChange.Send(status); }