diff --git a/src/StarterPlayer/StarterPlayerScripts/Aero/Controllers/UserInput.Gamepad.modulescript.lua b/src/StarterPlayer/StarterPlayerScripts/Aero/Controllers/UserInput.Gamepad.modulescript.lua index e3bb299..3a4b4e4 100644 --- a/src/StarterPlayer/StarterPlayerScripts/Aero/Controllers/UserInput.Gamepad.modulescript.lua +++ b/src/StarterPlayer/StarterPlayerScripts/Aero/Controllers/UserInput.Gamepad.modulescript.lua @@ -15,6 +15,7 @@ Boolean gamepad:IsMotorSupported(motor) Boolean gamepad:IsVibrationSupported() Float gamepad:GetMotorValue(motor) + Float gamepad:ApplyDeadzone(value, deadzoneThreshold) gamepad.ButtonDown(keyCode) gamepad.ButtonUp(keyCode) @@ -33,6 +34,7 @@ local gamepadsByInputType = {} local userInput = game:GetService("UserInputService") local hapticService = game:GetService("HapticService") +local abs = math.abs function Gamepad.new(gamepad) @@ -169,6 +171,17 @@ function Gamepad:StopAllMotors() end +function Gamepad:ApplyDeadzone(value, deadzoneThreshold) + if (abs(value) < deadzoneThreshold) then + return 0 + elseif (value > 0) then + return ((value - deadzoneThreshold) / (1 - deadzoneThreshold)) + else + return ((value + deadzoneThreshold) / (1 - deadzoneThreshold)) + end +end + + function Gamepad:Start() end @@ -179,4 +192,4 @@ function Gamepad:Init() end -return Gamepad +return Gamepad \ No newline at end of file