70 lines
2.3 KiB
C#
70 lines
2.3 KiB
C#
using Robust.Client.AutoGenerated;
|
|
using Robust.Client.UserInterface;
|
|
using Robust.Client.UserInterface.Controls;
|
|
using Robust.Client.UserInterface.XAML;
|
|
using Robust.Shared;
|
|
using Robust.Shared.Configuration;
|
|
using Robust.Client.GameStates;
|
|
|
|
namespace Content.Client.EscapeMenu.UI.Tabs
|
|
{
|
|
[GenerateTypedNameReferences]
|
|
public sealed partial class NetworkTab : Control
|
|
{
|
|
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
|
[Dependency] private readonly IClientGameStateManager _stateMan = default!;
|
|
|
|
public NetworkTab()
|
|
{
|
|
RobustXamlLoader.Load(this);
|
|
IoCManager.InjectDependencies(this);
|
|
|
|
ApplyButton.OnPressed += OnApplyButtonPressed;
|
|
ResetButton.OnPressed += OnResetButtonPressed;
|
|
NetInterpRatioSlider.OnValueChanged += OnNetInterpRatioSliderChanged;
|
|
NetInterpRatioSlider.MinValue = _stateMan.MinBufferSize;
|
|
|
|
Reset();
|
|
}
|
|
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
ApplyButton.OnPressed -= OnApplyButtonPressed;
|
|
ResetButton.OnPressed -= OnResetButtonPressed;
|
|
NetInterpRatioSlider.OnValueChanged -= OnNetInterpRatioSliderChanged;
|
|
base.Dispose(disposing);
|
|
}
|
|
|
|
private void OnNetInterpRatioSliderChanged(Robust.Client.UserInterface.Controls.Range range)
|
|
{
|
|
UpdateChanges();
|
|
}
|
|
|
|
private void OnApplyButtonPressed(BaseButton.ButtonEventArgs args)
|
|
{
|
|
_cfg.SetCVar(CVars.NetBufferSize, (int) NetInterpRatioSlider.Value - _stateMan.MinBufferSize);
|
|
_cfg.SaveToFile();
|
|
UpdateChanges();
|
|
}
|
|
|
|
private void OnResetButtonPressed(BaseButton.ButtonEventArgs args)
|
|
{
|
|
Reset();
|
|
}
|
|
|
|
private void Reset()
|
|
{
|
|
NetInterpRatioSlider.Value = _cfg.GetCVar(CVars.NetBufferSize) + _stateMan.MinBufferSize;
|
|
UpdateChanges();
|
|
}
|
|
|
|
private void UpdateChanges()
|
|
{
|
|
var isEverythingSame = NetInterpRatioSlider.Value == _cfg.GetCVar(CVars.NetBufferSize) + _stateMan.MinBufferSize;
|
|
ApplyButton.Disabled = isEverythingSame;
|
|
ResetButton.Disabled = isEverythingSame;
|
|
NetInterpRatioLabel.Text = NetInterpRatioSlider.Value.ToString();
|
|
}
|
|
}
|
|
}
|