1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- class DeveloperFreeCamera
- {
- static void OnInit();
-
- //! Enable / Disable Free camera (Fly mod) - disable of camera will teleport player at current free camera position.
- static void FreeCameraToggle(PlayerBase player, bool teleport_player = false)
- {
- if (!IsFreeCameraEnabled())
- {
- EnableFreeCamera(player);
- }
- else
- {
- DisableFreeCamera(player, teleport_player);
- }
- }
-
- static void EnableFreeCameraSceneEditor(PlayerBase player)
- {
- EnableFreeCamera(player);
- }
-
- static bool IsFreeCameraEnabled()
- {
- return FreeDebugCamera.GetInstance().IsActive();
- }
-
- static bool IsFreeCameraEnabledNoPlayerMovement()
- {
- if (FreeDebugCamera.GetInstance().IsPlayerMove())
- return false;
- return FreeDebugCamera.GetInstance().IsActive();
- }
-
- protected static void EnableFreeCamera(PlayerBase player)
- {
- if (player)
- {
- FreeDebugCamera.GetInstance().SetActive(true);
- #ifdef DEVELOPER
- GetGame().GetMission().RefreshCrosshairVisibility();
- #endif
- }
- else
- {
- Debug.LogError("EnableFreeCamera( PlayerBase player ) -> player is NULL", "DeveloperFreeCamera");
- }
- }
- static void DisableFreeCamera(PlayerBase player, bool teleport_player = false)
- {
- if (player)
- {
- if (FreeDebugCamera.GetInstance().IsActive())
- {
- if (teleport_player)
- DeveloperTeleport.TeleportAtCursorEx();
- FreeDebugCamera.GetInstance().SetActive(false);
- #ifdef DEVELOPER
- if (GetGame().GetMission())
- GetGame().GetMission().RefreshCrosshairVisibility();
- #endif
- }
- }
- else
- {
- Debug.LogError("DisableFreeCamera( PlayerBase player, bool teleport_player ) -> player is NULL", "DeveloperFreeCamera");
- }
- }
-
- static void OnSetFreeCameraEvent(PlayerBase player, FreeDebugCamera camera)
- {
- if (player)
- {
- #ifdef DEVELOPER
- if (!GetGame().IsMultiplayer())
- {
- PluginSceneManager sceneManager = PluginSceneManager.Cast(GetPlugin(PluginSceneManager));
-
- if (sceneManager.IsOpened())
- sceneManager.EditorToggle();
- }
-
- GetGame().GetMission().RefreshCrosshairVisibility();
- #endif
- }
- }
- }
|