Move HUD options to general options tab (#22884)
This commit is contained in:
@@ -15,11 +15,6 @@
|
|||||||
<Control MinSize="4 0" />
|
<Control MinSize="4 0" />
|
||||||
<OptionButton Name="UIScaleOption" />
|
<OptionButton Name="UIScaleOption" />
|
||||||
</BoxContainer>
|
</BoxContainer>
|
||||||
<BoxContainer Orientation="Horizontal">
|
|
||||||
<Label Text="{Loc 'ui-options-hud-theme'}" />
|
|
||||||
<Control MinSize="4 0" />
|
|
||||||
<OptionButton Name="HudThemeOption" />
|
|
||||||
</BoxContainer>
|
|
||||||
<BoxContainer Orientation="Horizontal">
|
<BoxContainer Orientation="Horizontal">
|
||||||
<CheckBox Name="ViewportStretchCheckBox" Text="{Loc 'ui-options-vp-stretch'}" />
|
<CheckBox Name="ViewportStretchCheckBox" Text="{Loc 'ui-options-vp-stretch'}" />
|
||||||
<BoxContainer Name="ViewportScaleBox" Orientation="Horizontal">
|
<BoxContainer Name="ViewportScaleBox" Orientation="Horizontal">
|
||||||
@@ -38,11 +33,6 @@
|
|||||||
Rounded="True"
|
Rounded="True"
|
||||||
MinWidth="200" />
|
MinWidth="200" />
|
||||||
</BoxContainer>
|
</BoxContainer>
|
||||||
<BoxContainer Orientation="Horizontal">
|
|
||||||
<Label Text="{Loc 'ui-options-hud-layout'}" />
|
|
||||||
<Control MinSize="4 0" />
|
|
||||||
<OptionButton Name="HudLayoutOption" />
|
|
||||||
</BoxContainer>
|
|
||||||
<CheckBox Name="IntegerScalingCheckBox"
|
<CheckBox Name="IntegerScalingCheckBox"
|
||||||
Text="{Loc 'ui-options-vp-integer-scaling'}"
|
Text="{Loc 'ui-options-vp-integer-scaling'}"
|
||||||
ToolTip="{Loc 'ui-options-vp-integer-scaling-tooltip'}" />
|
ToolTip="{Loc 'ui-options-vp-integer-scaling-tooltip'}" />
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
using Content.Client.UserInterface.Screens;
|
|
||||||
using Content.Shared.CCVar;
|
using Content.Shared.CCVar;
|
||||||
using Content.Shared.HUD;
|
|
||||||
using Robust.Client.AutoGenerated;
|
using Robust.Client.AutoGenerated;
|
||||||
using Robust.Client.Graphics;
|
using Robust.Client.Graphics;
|
||||||
using Robust.Client.UserInterface;
|
using Robust.Client.UserInterface;
|
||||||
@@ -8,7 +6,6 @@ using Robust.Client.UserInterface.Controls;
|
|||||||
using Robust.Client.UserInterface.XAML;
|
using Robust.Client.UserInterface.XAML;
|
||||||
using Robust.Shared;
|
using Robust.Shared;
|
||||||
using Robust.Shared.Configuration;
|
using Robust.Shared.Configuration;
|
||||||
using Robust.Shared.Prototypes;
|
|
||||||
|
|
||||||
namespace Content.Client.Options.UI.Tabs
|
namespace Content.Client.Options.UI.Tabs
|
||||||
{
|
{
|
||||||
@@ -26,10 +23,7 @@ namespace Content.Client.Options.UI.Tabs
|
|||||||
2f
|
2f
|
||||||
};
|
};
|
||||||
|
|
||||||
private Dictionary<string, int> hudThemeIdToIndex = new();
|
|
||||||
|
|
||||||
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
||||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
|
||||||
|
|
||||||
public GraphicsTab()
|
public GraphicsTab()
|
||||||
{
|
{
|
||||||
@@ -55,34 +49,6 @@ namespace Content.Client.Options.UI.Tabs
|
|||||||
UIScaleOption.AddItem(Loc.GetString("ui-options-scale-200"));
|
UIScaleOption.AddItem(Loc.GetString("ui-options-scale-200"));
|
||||||
UIScaleOption.OnItemSelected += OnUIScaleChanged;
|
UIScaleOption.OnItemSelected += OnUIScaleChanged;
|
||||||
|
|
||||||
foreach (var gear in _prototypeManager.EnumeratePrototypes<HudThemePrototype>())
|
|
||||||
{
|
|
||||||
HudThemeOption.AddItem(Loc.GetString(gear.Name));
|
|
||||||
hudThemeIdToIndex.Add(gear.ID, HudThemeOption.GetItemId(HudThemeOption.ItemCount - 1));
|
|
||||||
}
|
|
||||||
HudThemeOption.OnItemSelected += OnHudThemeChanged;
|
|
||||||
|
|
||||||
var hudLayout = _cfg.GetCVar(CCVars.UILayout);
|
|
||||||
var id = 0;
|
|
||||||
foreach (var layout in Enum.GetValues(typeof(ScreenType)))
|
|
||||||
{
|
|
||||||
var name = layout.ToString()!;
|
|
||||||
HudLayoutOption.AddItem(name, id);
|
|
||||||
if (name == hudLayout)
|
|
||||||
{
|
|
||||||
HudLayoutOption.SelectId(id);
|
|
||||||
}
|
|
||||||
HudLayoutOption.SetItemMetadata(id, name);
|
|
||||||
|
|
||||||
id++;
|
|
||||||
}
|
|
||||||
|
|
||||||
HudLayoutOption.OnItemSelected += args =>
|
|
||||||
{
|
|
||||||
HudLayoutOption.SelectId(args.Id);
|
|
||||||
UpdateApplyButton();
|
|
||||||
};
|
|
||||||
|
|
||||||
ViewportStretchCheckBox.OnToggled += _ =>
|
ViewportStretchCheckBox.OnToggled += _ =>
|
||||||
{
|
{
|
||||||
UpdateViewportScale();
|
UpdateViewportScale();
|
||||||
@@ -110,7 +76,6 @@ namespace Content.Client.Options.UI.Tabs
|
|||||||
FullscreenCheckBox.Pressed = ConfigIsFullscreen;
|
FullscreenCheckBox.Pressed = ConfigIsFullscreen;
|
||||||
LightingPresetOption.SelectId(GetConfigLightingQuality());
|
LightingPresetOption.SelectId(GetConfigLightingQuality());
|
||||||
UIScaleOption.SelectId(GetConfigUIScalePreset(ConfigUIScale));
|
UIScaleOption.SelectId(GetConfigUIScalePreset(ConfigUIScale));
|
||||||
HudThemeOption.SelectId(hudThemeIdToIndex.GetValueOrDefault(_cfg.GetCVar(CVars.InterfaceTheme), 0));
|
|
||||||
ViewportScaleSlider.Value = _cfg.GetCVar(CCVars.ViewportFixedScaleFactor);
|
ViewportScaleSlider.Value = _cfg.GetCVar(CCVars.ViewportFixedScaleFactor);
|
||||||
ViewportStretchCheckBox.Pressed = _cfg.GetCVar(CCVars.ViewportStretch);
|
ViewportStretchCheckBox.Pressed = _cfg.GetCVar(CCVars.ViewportStretch);
|
||||||
IntegerScalingCheckBox.Pressed = _cfg.GetCVar(CCVars.ViewportSnapToleranceMargin) != 0;
|
IntegerScalingCheckBox.Pressed = _cfg.GetCVar(CCVars.ViewportSnapToleranceMargin) != 0;
|
||||||
@@ -134,25 +99,11 @@ namespace Content.Client.Options.UI.Tabs
|
|||||||
UpdateApplyButton();
|
UpdateApplyButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnHudThemeChanged(OptionButton.ItemSelectedEventArgs args)
|
|
||||||
{
|
|
||||||
HudThemeOption.SelectId(args.Id);
|
|
||||||
UpdateApplyButton();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnApplyButtonPressed(BaseButton.ButtonEventArgs args)
|
private void OnApplyButtonPressed(BaseButton.ButtonEventArgs args)
|
||||||
{
|
{
|
||||||
_cfg.SetCVar(CVars.DisplayVSync, VSyncCheckBox.Pressed);
|
_cfg.SetCVar(CVars.DisplayVSync, VSyncCheckBox.Pressed);
|
||||||
SetConfigLightingQuality(LightingPresetOption.SelectedId);
|
SetConfigLightingQuality(LightingPresetOption.SelectedId);
|
||||||
|
|
||||||
foreach (var theme in _prototypeManager.EnumeratePrototypes<HudThemePrototype>())
|
|
||||||
{
|
|
||||||
if (hudThemeIdToIndex[theme.ID] != HudThemeOption.SelectedId)
|
|
||||||
continue;
|
|
||||||
_cfg.SetCVar(CVars.InterfaceTheme, theme.ID);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
_cfg.SetCVar(CVars.DisplayWindowMode,
|
_cfg.SetCVar(CVars.DisplayWindowMode,
|
||||||
(int) (FullscreenCheckBox.Pressed ? WindowMode.Fullscreen : WindowMode.Windowed));
|
(int) (FullscreenCheckBox.Pressed ? WindowMode.Fullscreen : WindowMode.Windowed));
|
||||||
_cfg.SetCVar(CVars.DisplayUIScale, UIScaleOptions[UIScaleOption.SelectedId]);
|
_cfg.SetCVar(CVars.DisplayUIScale, UIScaleOptions[UIScaleOption.SelectedId]);
|
||||||
@@ -165,11 +116,6 @@ namespace Content.Client.Options.UI.Tabs
|
|||||||
_cfg.SetCVar(CCVars.HudFpsCounterVisible, FpsCounterCheckBox.Pressed);
|
_cfg.SetCVar(CCVars.HudFpsCounterVisible, FpsCounterCheckBox.Pressed);
|
||||||
_cfg.SetCVar(CCVars.ViewportWidth, (int) ViewportWidthSlider.Value);
|
_cfg.SetCVar(CCVars.ViewportWidth, (int) ViewportWidthSlider.Value);
|
||||||
|
|
||||||
if (HudLayoutOption.SelectedMetadata is string opt)
|
|
||||||
{
|
|
||||||
_cfg.SetCVar(CCVars.UILayout, opt);
|
|
||||||
}
|
|
||||||
|
|
||||||
_cfg.SaveToFile();
|
_cfg.SaveToFile();
|
||||||
UpdateApplyButton();
|
UpdateApplyButton();
|
||||||
}
|
}
|
||||||
@@ -190,7 +136,6 @@ namespace Content.Client.Options.UI.Tabs
|
|||||||
var isVSyncSame = VSyncCheckBox.Pressed == _cfg.GetCVar(CVars.DisplayVSync);
|
var isVSyncSame = VSyncCheckBox.Pressed == _cfg.GetCVar(CVars.DisplayVSync);
|
||||||
var isFullscreenSame = FullscreenCheckBox.Pressed == ConfigIsFullscreen;
|
var isFullscreenSame = FullscreenCheckBox.Pressed == ConfigIsFullscreen;
|
||||||
var isLightingQualitySame = LightingPresetOption.SelectedId == GetConfigLightingQuality();
|
var isLightingQualitySame = LightingPresetOption.SelectedId == GetConfigLightingQuality();
|
||||||
var isHudThemeSame = HudThemeOption.SelectedId == hudThemeIdToIndex.GetValueOrDefault(_cfg.GetCVar(CVars.InterfaceTheme), 0);
|
|
||||||
var isUIScaleSame = MathHelper.CloseToPercent(UIScaleOptions[UIScaleOption.SelectedId], ConfigUIScale);
|
var isUIScaleSame = MathHelper.CloseToPercent(UIScaleOptions[UIScaleOption.SelectedId], ConfigUIScale);
|
||||||
var isVPStretchSame = ViewportStretchCheckBox.Pressed == _cfg.GetCVar(CCVars.ViewportStretch);
|
var isVPStretchSame = ViewportStretchCheckBox.Pressed == _cfg.GetCVar(CCVars.ViewportStretch);
|
||||||
var isVPScaleSame = (int) ViewportScaleSlider.Value == _cfg.GetCVar(CCVars.ViewportFixedScaleFactor);
|
var isVPScaleSame = (int) ViewportScaleSlider.Value == _cfg.GetCVar(CCVars.ViewportFixedScaleFactor);
|
||||||
@@ -199,7 +144,6 @@ namespace Content.Client.Options.UI.Tabs
|
|||||||
var isPLQSame = ParallaxLowQualityCheckBox.Pressed == _cfg.GetCVar(CCVars.ParallaxLowQuality);
|
var isPLQSame = ParallaxLowQualityCheckBox.Pressed == _cfg.GetCVar(CCVars.ParallaxLowQuality);
|
||||||
var isFpsCounterVisibleSame = FpsCounterCheckBox.Pressed == _cfg.GetCVar(CCVars.HudFpsCounterVisible);
|
var isFpsCounterVisibleSame = FpsCounterCheckBox.Pressed == _cfg.GetCVar(CCVars.HudFpsCounterVisible);
|
||||||
var isWidthSame = (int) ViewportWidthSlider.Value == _cfg.GetCVar(CCVars.ViewportWidth);
|
var isWidthSame = (int) ViewportWidthSlider.Value == _cfg.GetCVar(CCVars.ViewportWidth);
|
||||||
var isLayoutSame = HudLayoutOption.SelectedMetadata is string opt && opt == _cfg.GetCVar(CCVars.UILayout);
|
|
||||||
|
|
||||||
ApplyButton.Disabled = isVSyncSame &&
|
ApplyButton.Disabled = isVSyncSame &&
|
||||||
isFullscreenSame &&
|
isFullscreenSame &&
|
||||||
@@ -210,10 +154,8 @@ namespace Content.Client.Options.UI.Tabs
|
|||||||
isIntegerScalingSame &&
|
isIntegerScalingSame &&
|
||||||
isVPResSame &&
|
isVPResSame &&
|
||||||
isPLQSame &&
|
isPLQSame &&
|
||||||
isHudThemeSame &&
|
|
||||||
isFpsCounterVisibleSame &&
|
isFpsCounterVisibleSame &&
|
||||||
isWidthSame &&
|
isWidthSame;
|
||||||
isLayoutSame;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool ConfigIsFullscreen =>
|
private bool ConfigIsFullscreen =>
|
||||||
|
|||||||
@@ -5,6 +5,19 @@
|
|||||||
xmlns:s="clr-namespace:Content.Client.Stylesheets">
|
xmlns:s="clr-namespace:Content.Client.Stylesheets">
|
||||||
<BoxContainer Orientation="Vertical">
|
<BoxContainer Orientation="Vertical">
|
||||||
<BoxContainer Orientation="Vertical" Margin="8 8 8 8" VerticalExpand="True">
|
<BoxContainer Orientation="Vertical" Margin="8 8 8 8" VerticalExpand="True">
|
||||||
|
<Label Text="{Loc 'ui-options-general-ui-style'}"
|
||||||
|
FontColorOverride="{xNamespace:Static s:StyleNano.NanoGold}"
|
||||||
|
StyleClasses="LabelKeyText"/>
|
||||||
|
<BoxContainer Orientation="Horizontal">
|
||||||
|
<Label Text="{Loc 'ui-options-hud-theme'}" />
|
||||||
|
<Control MinSize="4 0" />
|
||||||
|
<OptionButton Name="HudThemeOption" />
|
||||||
|
</BoxContainer>
|
||||||
|
<BoxContainer Orientation="Horizontal">
|
||||||
|
<Label Text="{Loc 'ui-options-hud-layout'}" />
|
||||||
|
<Control MinSize="4 0" />
|
||||||
|
<OptionButton Name="HudLayoutOption" />
|
||||||
|
</BoxContainer>
|
||||||
<Label Text="{Loc 'ui-options-general-discord'}"
|
<Label Text="{Loc 'ui-options-general-discord'}"
|
||||||
FontColorOverride="{xNamespace:Static s:StyleNano.NanoGold}"
|
FontColorOverride="{xNamespace:Static s:StyleNano.NanoGold}"
|
||||||
StyleClasses="LabelKeyText"/>
|
StyleClasses="LabelKeyText"/>
|
||||||
|
|||||||
@@ -1,25 +1,60 @@
|
|||||||
using Content.Shared.CCVar;
|
using System.Linq;
|
||||||
|
using Content.Client.UserInterface.Screens;
|
||||||
|
using Content.Shared.CCVar;
|
||||||
|
using Content.Shared.HUD;
|
||||||
using Robust.Client.AutoGenerated;
|
using Robust.Client.AutoGenerated;
|
||||||
using Robust.Client.UserInterface;
|
using Robust.Client.UserInterface;
|
||||||
using Robust.Client.UserInterface.Controls;
|
using Robust.Client.UserInterface.Controls;
|
||||||
using Robust.Client.UserInterface.XAML;
|
using Robust.Client.UserInterface.XAML;
|
||||||
using Robust.Shared;
|
using Robust.Shared;
|
||||||
using Robust.Shared.Configuration;
|
using Robust.Shared.Configuration;
|
||||||
using Robust.Shared.Input;
|
using Robust.Shared.Prototypes;
|
||||||
|
|
||||||
namespace Content.Client.Options.UI.Tabs
|
namespace Content.Client.Options.UI.Tabs
|
||||||
{
|
{
|
||||||
[GenerateTypedNameReferences]
|
[GenerateTypedNameReferences]
|
||||||
public sealed partial class MiscTab : Control
|
public sealed partial class MiscTab : Control
|
||||||
{
|
{
|
||||||
|
|
||||||
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
||||||
|
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||||
|
|
||||||
|
private readonly Dictionary<string, int> _hudThemeIdToIndex = new();
|
||||||
|
|
||||||
public MiscTab()
|
public MiscTab()
|
||||||
{
|
{
|
||||||
RobustXamlLoader.Load(this);
|
RobustXamlLoader.Load(this);
|
||||||
IoCManager.InjectDependencies(this);
|
IoCManager.InjectDependencies(this);
|
||||||
|
|
||||||
|
var themes = _prototypeManager.EnumeratePrototypes<HudThemePrototype>().ToList();
|
||||||
|
themes.Sort();
|
||||||
|
foreach (var gear in themes)
|
||||||
|
{
|
||||||
|
HudThemeOption.AddItem(Loc.GetString(gear.Name));
|
||||||
|
_hudThemeIdToIndex.Add(gear.ID, HudThemeOption.GetItemId(HudThemeOption.ItemCount - 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
var hudLayout = _cfg.GetCVar(CCVars.UILayout);
|
||||||
|
var id = 0;
|
||||||
|
foreach (var layout in Enum.GetValues(typeof(ScreenType)))
|
||||||
|
{
|
||||||
|
var name = layout.ToString()!;
|
||||||
|
HudLayoutOption.AddItem(name, id);
|
||||||
|
if (name == hudLayout)
|
||||||
|
{
|
||||||
|
HudLayoutOption.SelectId(id);
|
||||||
|
}
|
||||||
|
HudLayoutOption.SetItemMetadata(id, name);
|
||||||
|
|
||||||
|
id++;
|
||||||
|
}
|
||||||
|
|
||||||
|
HudLayoutOption.OnItemSelected += args =>
|
||||||
|
{
|
||||||
|
HudLayoutOption.SelectId(args.Id);
|
||||||
|
UpdateApplyButton();
|
||||||
|
};
|
||||||
|
|
||||||
|
HudThemeOption.OnItemSelected += OnHudThemeChanged;
|
||||||
DiscordRich.OnToggled += OnCheckBoxToggled;
|
DiscordRich.OnToggled += OnCheckBoxToggled;
|
||||||
ShowLoocAboveHeadCheckBox.OnToggled += OnCheckBoxToggled;
|
ShowLoocAboveHeadCheckBox.OnToggled += OnCheckBoxToggled;
|
||||||
ShowHeldItemCheckBox.OnToggled += OnCheckBoxToggled;
|
ShowHeldItemCheckBox.OnToggled += OnCheckBoxToggled;
|
||||||
@@ -30,6 +65,7 @@ namespace Content.Client.Options.UI.Tabs
|
|||||||
// ToggleWalk.OnToggled += OnCheckBoxToggled;
|
// ToggleWalk.OnToggled += OnCheckBoxToggled;
|
||||||
StaticStorageUI.OnToggled += OnCheckBoxToggled;
|
StaticStorageUI.OnToggled += OnCheckBoxToggled;
|
||||||
|
|
||||||
|
HudThemeOption.SelectId(_hudThemeIdToIndex.GetValueOrDefault(_cfg.GetCVar(CVars.InterfaceTheme), 0));
|
||||||
DiscordRich.Pressed = _cfg.GetCVar(CVars.DiscordEnabled);
|
DiscordRich.Pressed = _cfg.GetCVar(CVars.DiscordEnabled);
|
||||||
ShowLoocAboveHeadCheckBox.Pressed = _cfg.GetCVar(CCVars.LoocAboveHeadShow);
|
ShowLoocAboveHeadCheckBox.Pressed = _cfg.GetCVar(CCVars.LoocAboveHeadShow);
|
||||||
ShowHeldItemCheckBox.Pressed = _cfg.GetCVar(CCVars.HudHeldItemShow);
|
ShowHeldItemCheckBox.Pressed = _cfg.GetCVar(CCVars.HudHeldItemShow);
|
||||||
@@ -50,8 +86,22 @@ namespace Content.Client.Options.UI.Tabs
|
|||||||
UpdateApplyButton();
|
UpdateApplyButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnHudThemeChanged(OptionButton.ItemSelectedEventArgs args)
|
||||||
|
{
|
||||||
|
HudThemeOption.SelectId(args.Id);
|
||||||
|
UpdateApplyButton();
|
||||||
|
}
|
||||||
|
|
||||||
private void OnApplyButtonPressed(BaseButton.ButtonEventArgs args)
|
private void OnApplyButtonPressed(BaseButton.ButtonEventArgs args)
|
||||||
{
|
{
|
||||||
|
foreach (var theme in _prototypeManager.EnumeratePrototypes<HudThemePrototype>())
|
||||||
|
{
|
||||||
|
if (_hudThemeIdToIndex[theme.ID] != HudThemeOption.SelectedId)
|
||||||
|
continue;
|
||||||
|
_cfg.SetCVar(CVars.InterfaceTheme, theme.ID);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
_cfg.SetCVar(CVars.DiscordEnabled, DiscordRich.Pressed);
|
_cfg.SetCVar(CVars.DiscordEnabled, DiscordRich.Pressed);
|
||||||
_cfg.SetCVar(CCVars.HudHeldItemShow, ShowHeldItemCheckBox.Pressed);
|
_cfg.SetCVar(CCVars.HudHeldItemShow, ShowHeldItemCheckBox.Pressed);
|
||||||
_cfg.SetCVar(CCVars.CombatModeIndicatorsPointShow, ShowCombatModeIndicatorsCheckBox.Pressed);
|
_cfg.SetCVar(CCVars.CombatModeIndicatorsPointShow, ShowCombatModeIndicatorsCheckBox.Pressed);
|
||||||
@@ -62,12 +112,19 @@ namespace Content.Client.Options.UI.Tabs
|
|||||||
// _cfg.SetCVar(CCVars.ToggleWalk, ToggleWalk.Pressed);
|
// _cfg.SetCVar(CCVars.ToggleWalk, ToggleWalk.Pressed);
|
||||||
_cfg.SetCVar(CCVars.StaticStorageUI, StaticStorageUI.Pressed);
|
_cfg.SetCVar(CCVars.StaticStorageUI, StaticStorageUI.Pressed);
|
||||||
|
|
||||||
|
if (HudLayoutOption.SelectedMetadata is string opt)
|
||||||
|
{
|
||||||
|
_cfg.SetCVar(CCVars.UILayout, opt);
|
||||||
|
}
|
||||||
|
|
||||||
_cfg.SaveToFile();
|
_cfg.SaveToFile();
|
||||||
UpdateApplyButton();
|
UpdateApplyButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateApplyButton()
|
private void UpdateApplyButton()
|
||||||
{
|
{
|
||||||
|
var isHudThemeSame = HudThemeOption.SelectedId == _hudThemeIdToIndex.GetValueOrDefault(_cfg.GetCVar(CVars.InterfaceTheme), 0);
|
||||||
|
var isLayoutSame = HudLayoutOption.SelectedMetadata is string opt && opt == _cfg.GetCVar(CCVars.UILayout);
|
||||||
var isDiscordSame = DiscordRich.Pressed == _cfg.GetCVar(CVars.DiscordEnabled);
|
var isDiscordSame = DiscordRich.Pressed == _cfg.GetCVar(CVars.DiscordEnabled);
|
||||||
var isShowHeldItemSame = ShowHeldItemCheckBox.Pressed == _cfg.GetCVar(CCVars.HudHeldItemShow);
|
var isShowHeldItemSame = ShowHeldItemCheckBox.Pressed == _cfg.GetCVar(CCVars.HudHeldItemShow);
|
||||||
var isCombatModeIndicatorsSame = ShowCombatModeIndicatorsCheckBox.Pressed == _cfg.GetCVar(CCVars.CombatModeIndicatorsPointShow);
|
var isCombatModeIndicatorsSame = ShowCombatModeIndicatorsCheckBox.Pressed == _cfg.GetCVar(CCVars.CombatModeIndicatorsPointShow);
|
||||||
@@ -78,7 +135,9 @@ namespace Content.Client.Options.UI.Tabs
|
|||||||
// var isToggleWalkSame = ToggleWalk.Pressed == _cfg.GetCVar(CCVars.ToggleWalk);
|
// var isToggleWalkSame = ToggleWalk.Pressed == _cfg.GetCVar(CCVars.ToggleWalk);
|
||||||
var isStaticStorageUISame = StaticStorageUI.Pressed == _cfg.GetCVar(CCVars.StaticStorageUI);
|
var isStaticStorageUISame = StaticStorageUI.Pressed == _cfg.GetCVar(CCVars.StaticStorageUI);
|
||||||
|
|
||||||
ApplyButton.Disabled = isDiscordSame &&
|
ApplyButton.Disabled = isHudThemeSame &&
|
||||||
|
isLayoutSame &&
|
||||||
|
isDiscordSame &&
|
||||||
isShowHeldItemSame &&
|
isShowHeldItemSame &&
|
||||||
isCombatModeIndicatorsSame &&
|
isCombatModeIndicatorsSame &&
|
||||||
isOpaqueStorageWindow &&
|
isOpaqueStorageWindow &&
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
namespace Content.Shared.HUD
|
namespace Content.Shared.HUD
|
||||||
{
|
{
|
||||||
[Prototype("hudTheme")]
|
[Prototype("hudTheme")]
|
||||||
public sealed partial class HudThemePrototype : IPrototype
|
public sealed partial class HudThemePrototype : IPrototype, IComparable<HudThemePrototype>
|
||||||
{
|
{
|
||||||
[DataField("name", required: true)]
|
[DataField("name", required: true)]
|
||||||
public string Name { get; private set; } = string.Empty;
|
public string Name { get; private set; } = string.Empty;
|
||||||
@@ -13,5 +13,16 @@ namespace Content.Shared.HUD
|
|||||||
|
|
||||||
[DataField("path", required: true)]
|
[DataField("path", required: true)]
|
||||||
public string Path { get; private set; } = string.Empty;
|
public string Path { get; private set; } = string.Empty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// An order for the themes to be displayed in the UI
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public int Order = 0;
|
||||||
|
|
||||||
|
public int CompareTo(HudThemePrototype? other)
|
||||||
|
{
|
||||||
|
return Order.CompareTo(other?.Order);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ ui-options-default = Default
|
|||||||
# Misc/General menu
|
# Misc/General menu
|
||||||
|
|
||||||
ui-options-discordrich = Enable Discord Rich Presence
|
ui-options-discordrich = Enable Discord Rich Presence
|
||||||
|
ui-options-general-ui-style = UI Style
|
||||||
ui-options-general-discord = Discord
|
ui-options-general-discord = Discord
|
||||||
ui-options-general-cursor = Cursor
|
ui-options-general-cursor = Cursor
|
||||||
ui-options-general-speech = Speech
|
ui-options-general-speech = Speech
|
||||||
@@ -38,7 +39,7 @@ ui-options-volume-percent = { TOSTRING($volume, "P0") }
|
|||||||
|
|
||||||
ui-options-show-held-item = Show held item next to cursor
|
ui-options-show-held-item = Show held item next to cursor
|
||||||
ui-options-show-combat-mode-indicators = Show combat mode indicators with cursor
|
ui-options-show-combat-mode-indicators = Show combat mode indicators with cursor
|
||||||
ui-options-opaque-storage-window = Enable opaque storage window
|
ui-options-opaque-storage-window = Opaque storage window
|
||||||
ui-options-show-looc-on-head = Show LOOC chat above characters head
|
ui-options-show-looc-on-head = Show LOOC chat above characters head
|
||||||
ui-options-fancy-speech = Show names in speech bubbles
|
ui-options-fancy-speech = Show names in speech bubbles
|
||||||
ui-options-fancy-name-background = Add background to speech bubble names
|
ui-options-fancy-name-background = Add background to speech bubble names
|
||||||
@@ -57,7 +58,7 @@ ui-options-scale-125 = 125%
|
|||||||
ui-options-scale-150 = 150%
|
ui-options-scale-150 = 150%
|
||||||
ui-options-scale-175 = 175%
|
ui-options-scale-175 = 175%
|
||||||
ui-options-scale-200 = 200%
|
ui-options-scale-200 = 200%
|
||||||
ui-options-hud-theme = HUD Theme:
|
ui-options-hud-theme = HUD theme:
|
||||||
ui-options-hud-theme-default = Default
|
ui-options-hud-theme-default = Default
|
||||||
ui-options-hud-theme-plasmafire = Plasmafire
|
ui-options-hud-theme-plasmafire = Plasmafire
|
||||||
ui-options-hud-theme-slimecore = Slimecore
|
ui-options-hud-theme-slimecore = Slimecore
|
||||||
@@ -127,7 +128,7 @@ ui-options-function-examine-entity = Examine
|
|||||||
ui-options-function-swap-hands = Swap hands
|
ui-options-function-swap-hands = Swap hands
|
||||||
ui-options-function-move-stored-item = Move stored item
|
ui-options-function-move-stored-item = Move stored item
|
||||||
ui-options-function-rotate-stored-item = Rotate stored item
|
ui-options-function-rotate-stored-item = Rotate stored item
|
||||||
ui-options-static-storage-ui = Static storage UI
|
ui-options-static-storage-ui = Lock storage window to hotbar
|
||||||
|
|
||||||
ui-options-function-smart-equip-backpack = Smart-equip to backpack
|
ui-options-function-smart-equip-backpack = Smart-equip to backpack
|
||||||
ui-options-function-smart-equip-belt = Smart-equip to belt
|
ui-options-function-smart-equip-belt = Smart-equip to belt
|
||||||
|
|||||||
@@ -2,33 +2,40 @@
|
|||||||
id: SS14DefaultTheme
|
id: SS14DefaultTheme
|
||||||
name: ui-options-hud-theme-default
|
name: ui-options-hud-theme-default
|
||||||
path: Default
|
path: Default
|
||||||
|
order: -1
|
||||||
|
|
||||||
- type: hudTheme
|
- type: hudTheme
|
||||||
id: SS14PlasmafireTheme
|
id: SS14PlasmafireTheme
|
||||||
name: ui-options-hud-theme-plasmafire
|
name: ui-options-hud-theme-plasmafire
|
||||||
path: Plasmafire
|
path: Plasmafire
|
||||||
|
order: 3
|
||||||
|
|
||||||
- type: hudTheme
|
- type: hudTheme
|
||||||
id: SS14SlimecoreTheme
|
id: SS14SlimecoreTheme
|
||||||
name: ui-options-hud-theme-slimecore
|
name: ui-options-hud-theme-slimecore
|
||||||
path: Slimecore
|
path: Slimecore
|
||||||
|
order: 2
|
||||||
|
|
||||||
- type: hudTheme
|
- type: hudTheme
|
||||||
id: SS14ClockworkTheme
|
id: SS14ClockworkTheme
|
||||||
name: ui-options-hud-theme-clockwork
|
name: ui-options-hud-theme-clockwork
|
||||||
path: Clockwork
|
path: Clockwork
|
||||||
|
order: 4
|
||||||
|
|
||||||
- type: hudTheme
|
- type: hudTheme
|
||||||
id: SS14RetroTheme
|
id: SS14RetroTheme
|
||||||
name: ui-options-hud-theme-retro
|
name: ui-options-hud-theme-retro
|
||||||
path: Retro
|
path: Retro
|
||||||
|
order: 6
|
||||||
|
|
||||||
- type: hudTheme
|
- type: hudTheme
|
||||||
id: SS14MinimalistTheme
|
id: SS14MinimalistTheme
|
||||||
name: ui-options-hud-theme-minimalist
|
name: ui-options-hud-theme-minimalist
|
||||||
path: Minimalist
|
path: Minimalist
|
||||||
|
order: 1
|
||||||
|
|
||||||
- type: hudTheme
|
- type: hudTheme
|
||||||
id: SS14ErisTheme
|
id: SS14ErisTheme
|
||||||
name: ui-options-hud-theme-eris
|
name: ui-options-hud-theme-eris
|
||||||
path: Eris
|
path: Eris
|
||||||
|
order: 5
|
||||||
|
|||||||
Reference in New Issue
Block a user