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",