Add checkbox for toggle walking (#20926)
Co-authored-by: onoira <onoira@psiko.zone> LGTM!
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System.Numerics;
|
||||
using Content.Client.Stylesheets;
|
||||
using Content.Shared.CCVar;
|
||||
using Content.Shared.Input;
|
||||
using Robust.Client.AutoGenerated;
|
||||
using Robust.Client.Input;
|
||||
@@ -41,6 +42,61 @@ namespace Content.Client.Options.UI.Tabs
|
||||
_cfg.SaveToFile();
|
||||
}
|
||||
|
||||
private void InitToggleWalk()
|
||||
{
|
||||
if (_cfg.GetCVar(CCVars.ToggleWalk))
|
||||
{
|
||||
ToggleFunctions.Add(EngineKeyFunctions.Walk);
|
||||
}
|
||||
else
|
||||
{
|
||||
ToggleFunctions.Remove(EngineKeyFunctions.Walk);
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleToggleWalk(BaseButton.ButtonToggledEventArgs args)
|
||||
{
|
||||
_cfg.SetCVar(CCVars.ToggleWalk, args.Pressed);
|
||||
_cfg.SaveToFile();
|
||||
InitToggleWalk();
|
||||
|
||||
if (!_keyControls.TryGetValue(EngineKeyFunctions.Walk, out var keyControl))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var bindingType = args.Pressed ? KeyBindingType.Toggle : KeyBindingType.State;
|
||||
for (var i = 0; i <= 1; i++)
|
||||
{
|
||||
var binding = (i == 0 ? keyControl.BindButton1 : keyControl.BindButton2).Binding;
|
||||
if (binding == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var registration = new KeyBindingRegistration
|
||||
{
|
||||
Function = EngineKeyFunctions.Walk,
|
||||
BaseKey = binding.BaseKey,
|
||||
Mod1 = binding.Mod1,
|
||||
Mod2 = binding.Mod2,
|
||||
Mod3 = binding.Mod3,
|
||||
Priority = binding.Priority,
|
||||
Type = bindingType,
|
||||
CanFocus = binding.CanFocus,
|
||||
CanRepeat = binding.CanRepeat,
|
||||
};
|
||||
|
||||
_deferCommands.Add(() =>
|
||||
{
|
||||
_inputManager.RemoveBinding(binding);
|
||||
_inputManager.RegisterBinding(registration);
|
||||
});
|
||||
}
|
||||
|
||||
_deferCommands.Add(_inputManager.SaveToUserData);
|
||||
}
|
||||
|
||||
public KeyRebindTab()
|
||||
{
|
||||
IoCManager.InjectDependencies(this);
|
||||
@@ -98,6 +154,8 @@ namespace Content.Client.Options.UI.Tabs
|
||||
AddButton(EngineKeyFunctions.MoveDown);
|
||||
AddButton(EngineKeyFunctions.MoveRight);
|
||||
AddButton(EngineKeyFunctions.Walk);
|
||||
AddCheckBox("ui-options-hotkey-toggle-walk", _cfg.GetCVar(CCVars.ToggleWalk), HandleToggleWalk);
|
||||
InitToggleWalk();
|
||||
|
||||
AddHeader("ui-options-header-camera");
|
||||
AddButton(EngineKeyFunctions.CameraRotateLeft);
|
||||
|
||||
Reference in New Issue
Block a user