diff --git a/project/Terkoiz.Freecam/FreecamController.cs b/project/Terkoiz.Freecam/FreecamController.cs index ba884df..f8e0e2b 100644 --- a/project/Terkoiz.Freecam/FreecamController.cs +++ b/project/Terkoiz.Freecam/FreecamController.cs @@ -60,6 +60,11 @@ namespace Terkoiz.Freecam ToggleCamera(); } + if (FreecamPlugin.ToggleFreecamControls.Value.IsDown()) + { + ToggleCameraControls(); + } + if (FreecamPlugin.TeleportToCamera.Value.IsDown()) { MovePlayerToCamera(); @@ -196,6 +201,25 @@ namespace Terkoiz.Freecam localPlayer.PointOfView = EPointOfView.FirstPerson; } + /// + /// A helper method to toggle the Freecam Camera Controls + /// + private void ToggleCameraControls() + { + if (_freeCamScript.IsActive) + { + _freeCamScript.IsActive = false; + _gamePlayerOwner.enabled = true; + } + else + { + _freeCamScript.IsActive = true; + _gamePlayerOwner.enabled = false; + } + + } + + /// /// Gets the current instance if it's available /// diff --git a/project/Terkoiz.Freecam/FreecamPlugin.cs b/project/Terkoiz.Freecam/FreecamPlugin.cs index 68e5867..2e8434f 100644 --- a/project/Terkoiz.Freecam/FreecamPlugin.cs +++ b/project/Terkoiz.Freecam/FreecamPlugin.cs @@ -20,6 +20,7 @@ namespace Terkoiz.Freecam // Keyboard shortcut config entries private const string KeybindSectionName = "Keybinds"; internal static ConfigEntry ToggleFreecamMode; + internal static ConfigEntry ToggleFreecamControls; internal static ConfigEntry TeleportToCamera; internal static ConfigEntry ToggleUi; @@ -67,6 +68,12 @@ namespace Terkoiz.Freecam new KeyboardShortcut(KeyCode.KeypadPlus), "The keyboard shortcut that toggles Freecam"); + ToggleFreecamControls = Config.Bind( + KeybindSectionName, + "Toggle Freecam Controls", + new KeyboardShortcut(KeyCode.KeypadPeriod), + "The keyboard shortcut that toggles Freecam Controls"); + TeleportToCamera = Config.Bind( KeybindSectionName, "Teleport To Camera",