- add: new lobby and ui tweaks. (#7)
* base * arrow pointer for buttons * some progress for text buttons, need cleaning * fixed observe button, remove fraction * just for now * ui tweaks * more ui tweaks * feat: ченджлог в лобби --------- Co-authored-by: Remuchi <RemuchiOfficial@gmail.com>
@@ -22,7 +22,7 @@ public sealed class AccessOverlay : Overlay
|
|||||||
_lookup = lookup;
|
_lookup = lookup;
|
||||||
_xform = xform;
|
_xform = xform;
|
||||||
|
|
||||||
_font = cache.GetFont("/Fonts/NotoSans/NotoSans-Regular.ttf", 12);
|
_font = cache.GetFont("/Fonts/IBMPlexMono/IBMPlexMono-Regular.ttf", 12);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Draw(in OverlayDrawArgs args)
|
protected override void Draw(in OverlayDrawArgs args)
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace Content.Client.Administration
|
|||||||
_eyeManager = eyeManager;
|
_eyeManager = eyeManager;
|
||||||
_entityLookup = entityLookup;
|
_entityLookup = entityLookup;
|
||||||
ZIndex = 200;
|
ZIndex = 200;
|
||||||
_font = new VectorFont(resourceCache.GetResource<FontResource>("/Fonts/NotoSans/NotoSans-Regular.ttf"), 10);
|
_font = new VectorFont(resourceCache.GetResource<FontResource>("/Fonts/IBMPlexMono/IBMPlexMono-Regular.ttf"), 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override OverlaySpace Space => OverlaySpace.ScreenSpace;
|
public override OverlaySpace Space => OverlaySpace.ScreenSpace;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ namespace Content.Client.Administration.UI.CustomControls;
|
|||||||
|
|
||||||
public sealed class HSeparator : Control
|
public sealed class HSeparator : Control
|
||||||
{
|
{
|
||||||
private static readonly Color SeparatorColor = Color.FromHex("#3D4059");
|
private static readonly Color SeparatorColor = Color.FromHex("#191919");
|
||||||
|
|
||||||
public HSeparator(Color color)
|
public HSeparator(Color color)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ namespace Content.Client.Administration.UI.CustomControls
|
|||||||
PopulateList(_adminSystem.PlayerList);
|
PopulateList(_adminSystem.PlayerList);
|
||||||
FilterLineEdit.OnTextChanged += _ => FilterList();
|
FilterLineEdit.OnTextChanged += _ => FilterList();
|
||||||
_adminSystem.PlayerListChanged += PopulateList;
|
_adminSystem.PlayerListChanged += PopulateList;
|
||||||
BackgroundPanel.PanelOverride = new StyleBoxFlat {BackgroundColor = new Color(32, 48, 32)};
|
BackgroundPanel.PanelOverride = new StyleBoxFlat {BackgroundColor = new Color(20, 20, 20)};
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PlayerListItemPressed(BaseButton.ButtonEventArgs? args, ListData? data)
|
private void PlayerListItemPressed(BaseButton.ButtonEventArgs? args, ListData? data)
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ namespace Content.Client.Administration.UI.CustomControls;
|
|||||||
|
|
||||||
public sealed class VSeparator : PanelContainer
|
public sealed class VSeparator : PanelContainer
|
||||||
{
|
{
|
||||||
private static readonly Color SeparatorColor = Color.FromHex("#3D4059");
|
private static readonly Color SeparatorColor = Color.FromHex("#191919");
|
||||||
|
|
||||||
public VSeparator(Color color)
|
public VSeparator(Color color)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public sealed class ExplosionDebugOverlay : Overlay
|
|||||||
IoCManager.InjectDependencies(this);
|
IoCManager.InjectDependencies(this);
|
||||||
|
|
||||||
var cache = IoCManager.Resolve<IResourceCache>();
|
var cache = IoCManager.Resolve<IResourceCache>();
|
||||||
_font = new VectorFont(cache.GetResource<FontResource>("/Fonts/NotoSans/NotoSans-Regular.ttf"), 8);
|
_font = new VectorFont(cache.GetResource<FontResource>("/Fonts/IBMPlexMono/IBMPlexMono-Regular.ttf"), 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Draw(in OverlayDrawArgs args)
|
protected override void Draw(in OverlayDrawArgs args)
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ namespace Content.Client.Administration.UI.Tabs.PlayerTab
|
|||||||
|
|
||||||
private const string ArrowUp = "↑";
|
private const string ArrowUp = "↑";
|
||||||
private const string ArrowDown = "↓";
|
private const string ArrowDown = "↓";
|
||||||
private readonly Color _altColor = Color.FromHex("#292B38");
|
private readonly Color _altColor = Color.FromHex("#141414");
|
||||||
private readonly Color _defaultColor = Color.FromHex("#2F2F3B");
|
private readonly Color _defaultColor = Color.FromHex("#191919");
|
||||||
private readonly AdminSystem _adminSystem;
|
private readonly AdminSystem _adminSystem;
|
||||||
private IReadOnlyList<PlayerInfo> _players = new List<PlayerInfo>();
|
private IReadOnlyList<PlayerInfo> _players = new List<PlayerInfo>();
|
||||||
|
|
||||||
|
|||||||
@@ -23,10 +23,6 @@
|
|||||||
<ProjectReference Include="..\RobustToolbox\Robust.Client\Robust.Client.csproj" />
|
<ProjectReference Include="..\RobustToolbox\Robust.Client\Robust.Client.csproj" />
|
||||||
<ProjectReference Include="..\Content.Shared\Content.Shared.csproj" />
|
<ProjectReference Include="..\Content.Shared\Content.Shared.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Spawners\" />
|
|
||||||
<Folder Include="White\Trail\" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="..\RobustToolbox\MSBuild\Robust.Properties.targets" />
|
<Import Project="..\RobustToolbox\MSBuild\Robust.Properties.targets" />
|
||||||
<Import Project="..\RobustToolbox\MSBuild\XamlIL.targets" />
|
<Import Project="..\RobustToolbox\MSBuild\XamlIL.targets" />
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ public sealed class PuddleOverlay : Overlay
|
|||||||
IoCManager.InjectDependencies(this);
|
IoCManager.InjectDependencies(this);
|
||||||
_debugOverlaySystem = _entitySystemManager.GetEntitySystem<PuddleDebugOverlaySystem>();
|
_debugOverlaySystem = _entitySystemManager.GetEntitySystem<PuddleDebugOverlaySystem>();
|
||||||
var cache = IoCManager.Resolve<IResourceCache>();
|
var cache = IoCManager.Resolve<IResourceCache>();
|
||||||
_font = new VectorFont(cache.GetResource<FontResource>("/Fonts/NotoSans/NotoSans-Regular.ttf"), 8);
|
_font = new VectorFont(cache.GetResource<FontResource>("/Fonts/IBMPlexMono/IBMPlexMono-Regular.ttf"), 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Draw(in OverlayDrawArgs args)
|
protected override void Draw(in OverlayDrawArgs args)
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
|
using System.Linq;
|
||||||
|
using System.Numerics;
|
||||||
|
using Content.Client._Ohio.Buttons;
|
||||||
|
using Content.Client.Changelog;
|
||||||
using Content.Client.GameTicking.Managers;
|
using Content.Client.GameTicking.Managers;
|
||||||
using Content.Client.LateJoin;
|
using Content.Client.LateJoin;
|
||||||
using Content.Client.Lobby.UI;
|
using Content.Client.Lobby.UI;
|
||||||
using Content.Client.Message;
|
using Content.Client.Message;
|
||||||
using Content.Client.Preferences;
|
using Content.Client.Preferences;
|
||||||
using Content.Client.Preferences.UI;
|
using Content.Client.Preferences.UI;
|
||||||
|
using Content.Client.Resources;
|
||||||
using Content.Client.UserInterface.Systems.Chat;
|
using Content.Client.UserInterface.Systems.Chat;
|
||||||
using Content.Client.Voting;
|
using Content.Client.Voting;
|
||||||
using Robust.Client;
|
using Robust.Client;
|
||||||
@@ -14,7 +19,7 @@ using Robust.Client.UserInterface.Controls;
|
|||||||
using Robust.Shared.Configuration;
|
using Robust.Shared.Configuration;
|
||||||
using Robust.Shared.Prototypes;
|
using Robust.Shared.Prototypes;
|
||||||
using Robust.Shared.Timing;
|
using Robust.Shared.Timing;
|
||||||
|
using Robust.Shared.Utility;
|
||||||
|
|
||||||
namespace Content.Client.Lobby
|
namespace Content.Client.Lobby
|
||||||
{
|
{
|
||||||
@@ -30,12 +35,14 @@ namespace Content.Client.Lobby
|
|||||||
[Dependency] private readonly IGameTiming _gameTiming = default!;
|
[Dependency] private readonly IGameTiming _gameTiming = default!;
|
||||||
[Dependency] private readonly IVoteManager _voteManager = default!;
|
[Dependency] private readonly IVoteManager _voteManager = default!;
|
||||||
[Dependency] private readonly IConfigurationManager _configurationManager = default!;
|
[Dependency] private readonly IConfigurationManager _configurationManager = default!;
|
||||||
|
[Dependency] private readonly ChangelogManager _changelog = default!;
|
||||||
|
|
||||||
[ViewVariables] private CharacterSetupGui? _characterSetup;
|
[ViewVariables] private CharacterSetupGui? _characterSetup;
|
||||||
|
|
||||||
private ClientGameTicker _gameTicker = default!;
|
private ClientGameTicker _gameTicker = default!;
|
||||||
|
|
||||||
protected override Type? LinkedScreenType { get; } = typeof(LobbyGui);
|
protected override Type? LinkedScreenType { get; } = typeof(LobbyGui);
|
||||||
|
|
||||||
private LobbyGui? _lobby;
|
private LobbyGui? _lobby;
|
||||||
|
|
||||||
protected override void Startup()
|
protected override void Startup()
|
||||||
@@ -48,12 +55,16 @@ namespace Content.Client.Lobby
|
|||||||
_lobby = (LobbyGui) _userInterfaceManager.ActiveScreen;
|
_lobby = (LobbyGui) _userInterfaceManager.ActiveScreen;
|
||||||
|
|
||||||
var chatController = _userInterfaceManager.GetUIController<ChatUIController>();
|
var chatController = _userInterfaceManager.GetUIController<ChatUIController>();
|
||||||
|
|
||||||
_gameTicker = _entityManager.System<ClientGameTicker>();
|
_gameTicker = _entityManager.System<ClientGameTicker>();
|
||||||
|
|
||||||
_characterSetup = new CharacterSetupGui(_entityManager, _resourceCache, _preferencesManager,
|
_characterSetup = new CharacterSetupGui(_entityManager, _resourceCache, _preferencesManager,
|
||||||
_prototypeManager, _configurationManager);
|
_prototypeManager, _configurationManager);
|
||||||
|
|
||||||
LayoutContainer.SetAnchorPreset(_characterSetup, LayoutContainer.LayoutPreset.Wide);
|
LayoutContainer.SetAnchorPreset(_characterSetup, LayoutContainer.LayoutPreset.Wide);
|
||||||
|
|
||||||
_lobby.CharacterSetupState.AddChild(_characterSetup);
|
_lobby.CharacterSetupState.AddChild(_characterSetup);
|
||||||
|
|
||||||
chatController.SetMainChat(true);
|
chatController.SetMainChat(true);
|
||||||
|
|
||||||
_voteManager.SetPopupContainer(_lobby.VoteContainer);
|
_voteManager.SetPopupContainer(_lobby.VoteContainer);
|
||||||
@@ -66,14 +77,16 @@ namespace Content.Client.Lobby
|
|||||||
_characterSetup.SaveButton.OnPressed += _ =>
|
_characterSetup.SaveButton.OnPressed += _ =>
|
||||||
{
|
{
|
||||||
_characterSetup.Save();
|
_characterSetup.Save();
|
||||||
_lobby.CharacterPreview.UpdateUI();
|
//_lobby.CharacterPreview.UpdateUI();
|
||||||
};
|
};
|
||||||
|
|
||||||
LayoutContainer.SetAnchorPreset(_lobby, LayoutContainer.LayoutPreset.Wide);
|
LayoutContainer.SetAnchorPreset(_lobby, LayoutContainer.LayoutPreset.Wide);
|
||||||
|
|
||||||
_lobby.ServerName.Text = _baseClient.GameInfo?.ServerName; //The eye of refactor gazes upon you...
|
_lobby.ServerName.Text = _baseClient.GameInfo?.ServerName; //The eye of refactor gazes upon you...
|
||||||
|
|
||||||
UpdateLobbyUi();
|
UpdateLobbyUi();
|
||||||
|
|
||||||
_lobby.CharacterPreview.CharacterSetupButton.OnPressed += OnSetupPressed;
|
_lobby.CharacterSetupButton.OnPressed += OnSetupPressed;
|
||||||
_lobby.ReadyButton.OnPressed += OnReadyPressed;
|
_lobby.ReadyButton.OnPressed += OnReadyPressed;
|
||||||
_lobby.ReadyButton.OnToggled += OnReadyToggled;
|
_lobby.ReadyButton.OnToggled += OnReadyToggled;
|
||||||
|
|
||||||
@@ -83,20 +96,23 @@ namespace Content.Client.Lobby
|
|||||||
|
|
||||||
_preferencesManager.OnServerDataLoaded += PreferencesDataLoaded;
|
_preferencesManager.OnServerDataLoaded += PreferencesDataLoaded;
|
||||||
|
|
||||||
_lobby.CharacterPreview.UpdateUI();
|
//_lobby.CharacterPreview.UpdateUI();
|
||||||
|
PopulateChangelog();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Shutdown()
|
protected override void Shutdown()
|
||||||
{
|
{
|
||||||
var chatController = _userInterfaceManager.GetUIController<ChatUIController>();
|
var chatController = _userInterfaceManager.GetUIController<ChatUIController>();
|
||||||
|
|
||||||
chatController.SetMainChat(false);
|
chatController.SetMainChat(false);
|
||||||
|
|
||||||
_gameTicker.InfoBlobUpdated -= UpdateLobbyUi;
|
_gameTicker.InfoBlobUpdated -= UpdateLobbyUi;
|
||||||
_gameTicker.LobbyStatusUpdated -= LobbyStatusUpdated;
|
_gameTicker.LobbyStatusUpdated -= LobbyStatusUpdated;
|
||||||
_gameTicker.LobbyLateJoinStatusUpdated -= LobbyLateJoinStatusUpdated;
|
_gameTicker.LobbyLateJoinStatusUpdated -= LobbyLateJoinStatusUpdated;
|
||||||
|
|
||||||
_voteManager.ClearPopupContainer();
|
_voteManager.ClearPopupContainer();
|
||||||
|
|
||||||
_lobby!.CharacterPreview.CharacterSetupButton.OnPressed -= OnSetupPressed;
|
_lobby!.CharacterSetupButton.OnPressed -= OnSetupPressed;
|
||||||
_lobby!.ReadyButton.OnPressed -= OnReadyPressed;
|
_lobby!.ReadyButton.OnPressed -= OnReadyPressed;
|
||||||
_lobby!.ReadyButton.OnToggled -= OnReadyToggled;
|
_lobby!.ReadyButton.OnToggled -= OnReadyToggled;
|
||||||
|
|
||||||
@@ -110,7 +126,7 @@ namespace Content.Client.Lobby
|
|||||||
|
|
||||||
private void PreferencesDataLoaded()
|
private void PreferencesDataLoaded()
|
||||||
{
|
{
|
||||||
_lobby?.CharacterPreview.UpdateUI();
|
//_lobby?.CharacterPreview.UpdateUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnSetupPressed(BaseButton.ButtonEventArgs args)
|
private void OnSetupPressed(BaseButton.ButtonEventArgs args)
|
||||||
@@ -140,11 +156,12 @@ namespace Content.Client.Lobby
|
|||||||
{
|
{
|
||||||
_lobby!.StartTime.Text = string.Empty;
|
_lobby!.StartTime.Text = string.Empty;
|
||||||
var roundTime = _gameTiming.CurTime.Subtract(_gameTicker.RoundStartTimeSpan);
|
var roundTime = _gameTiming.CurTime.Subtract(_gameTicker.RoundStartTimeSpan);
|
||||||
_lobby!.StationTime.Text = Loc.GetString("lobby-state-player-status-round-time", ("hours", roundTime.Hours), ("minutes", roundTime.Minutes));
|
_lobby!.StationTime.Text = Loc.GetString("lobby-state-player-status-round-time",
|
||||||
|
("hours", roundTime.Hours), ("minutes", roundTime.Minutes));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_lobby!.StationTime.Text = Loc.GetString("lobby-state-player-status-round-not-started");
|
|
||||||
string text;
|
string text;
|
||||||
|
|
||||||
if (_gameTicker.Paused)
|
if (_gameTicker.Paused)
|
||||||
@@ -162,7 +179,9 @@ namespace Content.Client.Lobby
|
|||||||
var seconds = difference.TotalSeconds;
|
var seconds = difference.TotalSeconds;
|
||||||
if (seconds < 0)
|
if (seconds < 0)
|
||||||
{
|
{
|
||||||
text = Loc.GetString(seconds < -5 ? "lobby-state-right-now-question" : "lobby-state-right-now-confirmation");
|
text = Loc.GetString(seconds < -5
|
||||||
|
? "lobby-state-right-now-question"
|
||||||
|
: "lobby-state-right-now-confirmation");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -175,7 +194,6 @@ namespace Content.Client.Lobby
|
|||||||
|
|
||||||
private void LobbyStatusUpdated()
|
private void LobbyStatusUpdated()
|
||||||
{
|
{
|
||||||
UpdateLobbyBackground();
|
|
||||||
UpdateLobbyUi();
|
UpdateLobbyUi();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -188,7 +206,7 @@ namespace Content.Client.Lobby
|
|||||||
{
|
{
|
||||||
if (_gameTicker.IsGameStarted)
|
if (_gameTicker.IsGameStarted)
|
||||||
{
|
{
|
||||||
_lobby!.ReadyButton.Text = Loc.GetString("lobby-state-ready-button-join-state");
|
MakeButtonJoinGame(_lobby!.ReadyButton);
|
||||||
_lobby!.ReadyButton.ToggleMode = false;
|
_lobby!.ReadyButton.ToggleMode = false;
|
||||||
_lobby!.ReadyButton.Pressed = false;
|
_lobby!.ReadyButton.Pressed = false;
|
||||||
_lobby!.ObserveButton.Disabled = false;
|
_lobby!.ObserveButton.Disabled = false;
|
||||||
@@ -196,7 +214,12 @@ namespace Content.Client.Lobby
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
_lobby!.StartTime.Text = string.Empty;
|
_lobby!.StartTime.Text = string.Empty;
|
||||||
_lobby!.ReadyButton.Text = Loc.GetString(_lobby!.ReadyButton.Pressed ? "lobby-state-player-status-ready": "lobby-state-player-status-not-ready");
|
|
||||||
|
if (_lobby!.ReadyButton.Pressed)
|
||||||
|
MakeButtonReady(_lobby!.ReadyButton);
|
||||||
|
else
|
||||||
|
MakeButtonUnReady(_lobby!.ReadyButton);
|
||||||
|
|
||||||
_lobby!.ReadyButton.ToggleMode = true;
|
_lobby!.ReadyButton.ToggleMode = true;
|
||||||
_lobby!.ReadyButton.Disabled = false;
|
_lobby!.ReadyButton.Disabled = false;
|
||||||
_lobby!.ReadyButton.Pressed = _gameTicker.AreWeReady;
|
_lobby!.ReadyButton.Pressed = _gameTicker.AreWeReady;
|
||||||
@@ -208,41 +231,9 @@ namespace Content.Client.Lobby
|
|||||||
_lobby!.ServerInfo.SetInfoBlob(_gameTicker.ServerInfoBlob);
|
_lobby!.ServerInfo.SetInfoBlob(_gameTicker.ServerInfoBlob);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_gameTicker.LobbySong == null)
|
_lobby!.LabelName.SetMarkup("[font=\"Bedstead\" size=20] Green Miracle [/font]");
|
||||||
{
|
_lobby!.Version.SetMarkup("Version: 1.0");
|
||||||
_lobby!.LobbySong.SetMarkup(Loc.GetString("lobby-state-song-no-song-text"));
|
_lobby!.ChangelogLabel.SetMarkup("Список изменений:");
|
||||||
}
|
|
||||||
else if (_resourceCache.TryGetResource<AudioResource>(_gameTicker.LobbySong, out var lobbySongResource))
|
|
||||||
{
|
|
||||||
var lobbyStream = lobbySongResource.AudioStream;
|
|
||||||
|
|
||||||
var title = string.IsNullOrEmpty(lobbyStream.Title) ?
|
|
||||||
Loc.GetString("lobby-state-song-unknown-title") :
|
|
||||||
lobbyStream.Title;
|
|
||||||
|
|
||||||
var artist = string.IsNullOrEmpty(lobbyStream.Artist) ?
|
|
||||||
Loc.GetString("lobby-state-song-unknown-artist") :
|
|
||||||
lobbyStream.Artist;
|
|
||||||
|
|
||||||
var markup = Loc.GetString("lobby-state-song-text",
|
|
||||||
("songTitle", title),
|
|
||||||
("songArtist", artist));
|
|
||||||
|
|
||||||
_lobby!.LobbySong.SetMarkup(markup);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void UpdateLobbyBackground()
|
|
||||||
{
|
|
||||||
if (_gameTicker.LobbyBackground != null)
|
|
||||||
{
|
|
||||||
_lobby!.Background.Texture = _resourceCache.GetResource<TextureResource>(_gameTicker.LobbyBackground );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_lobby!.Background.Texture = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetReady(bool newReady)
|
private void SetReady(bool newReady)
|
||||||
@@ -254,5 +245,100 @@ namespace Content.Client.Lobby
|
|||||||
|
|
||||||
_consoleHost.ExecuteCommand($"toggleready {newReady}");
|
_consoleHost.ExecuteCommand($"toggleready {newReady}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void MakeButtonReady(OhioLobbyTextButton button)
|
||||||
|
{
|
||||||
|
button.ButtonText = "Ready";
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MakeButtonUnReady(OhioLobbyTextButton button)
|
||||||
|
{
|
||||||
|
button.ButtonText = "Not Ready";
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MakeButtonJoinGame(OhioLobbyTextButton button)
|
||||||
|
{
|
||||||
|
button.ButtonText = "Join Game";
|
||||||
|
}
|
||||||
|
|
||||||
|
private async void PopulateChangelog()
|
||||||
|
{
|
||||||
|
_lobby!.ChangelogContainer.Children.Clear();
|
||||||
|
|
||||||
|
var changelogs = await _changelog.LoadChangelog();
|
||||||
|
var whiteChangelog = changelogs.Find(cl => cl.Name == "ChangelogWhite");
|
||||||
|
|
||||||
|
if (whiteChangelog is null)
|
||||||
|
{
|
||||||
|
_lobby!.ChangelogContainer.Children.Add(
|
||||||
|
new RichTextLabel().SetMarkup("Не удалось загрузить список изменений"));
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var entries = whiteChangelog.Entries
|
||||||
|
.OrderByDescending(c => c.Time)
|
||||||
|
.Take(5);
|
||||||
|
|
||||||
|
foreach (var entry in entries)
|
||||||
|
{
|
||||||
|
var box = new BoxContainer
|
||||||
|
{
|
||||||
|
Orientation = BoxContainer.LayoutOrientation.Vertical,
|
||||||
|
HorizontalAlignment = Control.HAlignment.Left,
|
||||||
|
Children =
|
||||||
|
{
|
||||||
|
new Label
|
||||||
|
{
|
||||||
|
Align = Label.AlignMode.Left,
|
||||||
|
Text = $"{entry.Author} {entry.Time.ToShortDateString()}",
|
||||||
|
FontColorOverride = Color.FromHex("#888"),
|
||||||
|
Margin = new Thickness(0, 10)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (var change in entry.Changes)
|
||||||
|
{
|
||||||
|
var container = new BoxContainer
|
||||||
|
{
|
||||||
|
Orientation = BoxContainer.LayoutOrientation.Horizontal,
|
||||||
|
HorizontalAlignment = Control.HAlignment.Left
|
||||||
|
};
|
||||||
|
|
||||||
|
var text = new RichTextLabel();
|
||||||
|
text.SetMessage(FormattedMessage.FromMarkup(change.Message));
|
||||||
|
text.MaxWidth = 350;
|
||||||
|
|
||||||
|
container.AddChild(GetIcon(change.Type));
|
||||||
|
container.AddChild(text);
|
||||||
|
|
||||||
|
box.AddChild(container);
|
||||||
|
}
|
||||||
|
|
||||||
|
_lobby!.ChangelogContainer.AddChild(box);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private TextureRect GetIcon(ChangelogManager.ChangelogLineType type)
|
||||||
|
{
|
||||||
|
var (file, color) = type switch
|
||||||
|
{
|
||||||
|
ChangelogManager.ChangelogLineType.Add => ("plus.svg.192dpi.png", "#6ED18D"),
|
||||||
|
ChangelogManager.ChangelogLineType.Remove => ("minus.svg.192dpi.png", "#D16E6E"),
|
||||||
|
ChangelogManager.ChangelogLineType.Fix => ("bug.svg.192dpi.png", "#D1BA6E"),
|
||||||
|
ChangelogManager.ChangelogLineType.Tweak => ("wrench.svg.192dpi.png", "#6E96D1"),
|
||||||
|
_ => throw new ArgumentOutOfRangeException(nameof(type), type, null)
|
||||||
|
};
|
||||||
|
|
||||||
|
return new TextureRect
|
||||||
|
{
|
||||||
|
Texture = _resourceCache.GetTexture(new ResPath($"/Textures/Interface/Changelog/{file}")),
|
||||||
|
VerticalAlignment = Control.VAlignment.Top,
|
||||||
|
TextureScale = new Vector2(0.5f, 0.5f),
|
||||||
|
Margin = new Thickness(2, 4, 6, 2),
|
||||||
|
ModulateSelfOverride = Color.FromHex(color)
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
using Content.Client.Alerts;
|
|
||||||
using Content.Client.Humanoid;
|
using Content.Client.Humanoid;
|
||||||
using Content.Client.Inventory;
|
using Content.Client.Inventory;
|
||||||
using Content.Client.Preferences;
|
using Content.Client.Preferences;
|
||||||
using Content.Client.UserInterface.Controls;
|
using Content.Client.UserInterface.Controls;
|
||||||
using Content.Shared.GameTicking;
|
using Content.Shared.GameTicking;
|
||||||
using Content.Shared.Humanoid.Prototypes;
|
using Content.Shared.Humanoid.Prototypes;
|
||||||
using Content.Shared.Inventory;
|
|
||||||
using Content.Shared.Preferences;
|
using Content.Shared.Preferences;
|
||||||
using Content.Shared.Roles;
|
using Content.Shared.Roles;
|
||||||
using Robust.Client.GameObjects;
|
|
||||||
using Robust.Client.UserInterface;
|
using Robust.Client.UserInterface;
|
||||||
using Robust.Client.UserInterface.Controls;
|
using Robust.Client.UserInterface.Controls;
|
||||||
using Robust.Shared.Map;
|
using Robust.Shared.Map;
|
||||||
@@ -40,12 +37,12 @@ namespace Content.Client.Lobby.UI
|
|||||||
Text = Loc.GetString("lobby-character-preview-panel-header")
|
Text = Loc.GetString("lobby-character-preview-panel-header")
|
||||||
};
|
};
|
||||||
|
|
||||||
CharacterSetupButton = new Button
|
// CharacterSetupButton = new Button
|
||||||
{
|
// {
|
||||||
Text = Loc.GetString("lobby-character-preview-panel-character-setup-button"),
|
// Text = Loc.GetString("lobby-character-preview-panel-character-setup-button"),
|
||||||
HorizontalAlignment = HAlignment.Center,
|
// HorizontalAlignment = HAlignment.Center,
|
||||||
Margin = new Thickness(0, 5, 0, 0),
|
// Margin = new Thickness(0, 5, 0, 0),
|
||||||
};
|
// };
|
||||||
|
|
||||||
_summaryLabel = new Label
|
_summaryLabel = new Label
|
||||||
{
|
{
|
||||||
@@ -69,12 +66,12 @@ namespace Content.Client.Lobby.UI
|
|||||||
Orientation = LayoutOrientation.Horizontal,
|
Orientation = LayoutOrientation.Horizontal,
|
||||||
HorizontalAlignment = HAlignment.Center,
|
HorizontalAlignment = HAlignment.Center,
|
||||||
};
|
};
|
||||||
var _vSpacer = new VSpacer();
|
var vSpacer = new VSpacer();
|
||||||
|
|
||||||
_loaded.AddChild(_summaryLabel);
|
_loaded.AddChild(_summaryLabel);
|
||||||
_loaded.AddChild(_viewBox);
|
_loaded.AddChild(_viewBox);
|
||||||
_loaded.AddChild(_vSpacer);
|
_loaded.AddChild(vSpacer);
|
||||||
_loaded.AddChild(CharacterSetupButton);
|
//_loaded.AddChild(CharacterSetupButton);
|
||||||
|
|
||||||
vBox.AddChild(header);
|
vBox.AddChild(header);
|
||||||
vBox.AddChild(_loaded);
|
vBox.AddChild(_loaded);
|
||||||
@@ -84,14 +81,18 @@ namespace Content.Client.Lobby.UI
|
|||||||
UpdateUI();
|
UpdateUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Button CharacterSetupButton { get; }
|
// public Button CharacterSetupButton { get; }
|
||||||
|
|
||||||
protected override void Dispose(bool disposing)
|
protected override void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
base.Dispose(disposing);
|
base.Dispose(disposing);
|
||||||
|
|
||||||
if (!disposing) return;
|
if (!disposing)
|
||||||
if (_previewDummy != null) _entityManager.DeleteEntity(_previewDummy.Value);
|
return;
|
||||||
|
|
||||||
|
if (_previewDummy != null)
|
||||||
|
_entityManager.DeleteEntity(_previewDummy.Value);
|
||||||
|
|
||||||
_previewDummy = default;
|
_previewDummy = default;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -134,7 +135,7 @@ namespace Content.Client.Lobby.UI
|
|||||||
{
|
{
|
||||||
var protoMan = IoCManager.Resolve<IPrototypeManager>();
|
var protoMan = IoCManager.Resolve<IPrototypeManager>();
|
||||||
var entMan = IoCManager.Resolve<IEntityManager>();
|
var entMan = IoCManager.Resolve<IEntityManager>();
|
||||||
var invSystem = EntitySystem.Get<ClientInventorySystem>();
|
var invSystem = entMan.System<ClientInventorySystem>();
|
||||||
|
|
||||||
var highPriorityJob = profile.JobPriorities.FirstOrDefault(p => p.Value == JobPriority.High).Key;
|
var highPriorityJob = profile.JobPriorities.FirstOrDefault(p => p.Value == JobPriority.High).Key;
|
||||||
|
|
||||||
|
|||||||
@@ -1,116 +1,183 @@
|
|||||||
<lobbyUi:LobbyGui
|
<lobbyUi:LobbyGui xmlns="https://spacestation14.io"
|
||||||
xmlns="https://spacestation14.io"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:maths="clr-namespace:Robust.Shared.Maths;assembly=Robust.Shared.Maths"
|
xmlns:maths="clr-namespace:Robust.Shared.Maths;assembly=Robust.Shared.Maths"
|
||||||
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls"
|
|
||||||
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
|
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
|
||||||
xmlns:vote="clr-namespace:Content.Client.Voting.UI"
|
|
||||||
xmlns:style="clr-namespace:Content.Client.Stylesheets"
|
xmlns:style="clr-namespace:Content.Client.Stylesheets"
|
||||||
xmlns:lobbyUi="clr-namespace:Content.Client.Lobby.UI"
|
xmlns:lobbyUi="clr-namespace:Content.Client.Lobby.UI"
|
||||||
xmlns:info="clr-namespace:Content.Client.Info"
|
xmlns:info="clr-namespace:Content.Client.Info"
|
||||||
xmlns:widgets="clr-namespace:Content.Client.UserInterface.Systems.Chat.Widgets">
|
xmlns:widgets="clr-namespace:Content.Client.UserInterface.Systems.Chat.Widgets"
|
||||||
|
xmlns:ui="clr-namespace:Content.Client._Ohio.UI"
|
||||||
|
xmlns:buttons="clr-namespace:Content.Client._Ohio.Buttons">
|
||||||
|
|
||||||
<!-- Background -->
|
<!-- Background -->
|
||||||
<TextureRect Access="Public" VerticalExpand="True" HorizontalExpand="True" Name="Background"
|
<ui:AnimatedBackgroundControl Name="Background" VerticalExpand="True" HorizontalExpand="True"
|
||||||
Stretch="KeepAspectCovered" />
|
Stretch="KeepAspectCovered" />
|
||||||
|
|
||||||
|
<!-- Main Container -->
|
||||||
<BoxContainer Name="MainContainer" VerticalExpand="True" HorizontalExpand="True" Orientation="Horizontal"
|
<BoxContainer Name="MainContainer" VerticalExpand="True" HorizontalExpand="True" Orientation="Horizontal"
|
||||||
Margin="10 10 10 10" SeparationOverride="2">
|
Margin="10 10 10 10" SeparationOverride="2">
|
||||||
<SplitContainer State="Auto" HorizontalExpand="True">
|
|
||||||
<!-- LHS Controls -->
|
<!-- Split Container -->
|
||||||
|
<SplitContainer State="Auto" ResizeMode="NotResizable" HorizontalExpand="True">
|
||||||
|
|
||||||
|
<!-- Left Side -->
|
||||||
<BoxContainer Name="LeftSide" Orientation="Vertical" SeparationOverride="4" HorizontalExpand="True">
|
<BoxContainer Name="LeftSide" Orientation="Vertical" SeparationOverride="4" HorizontalExpand="True">
|
||||||
|
|
||||||
|
<!-- Default State -->
|
||||||
<Control Name="DefaultState" VerticalExpand="True">
|
<Control Name="DefaultState" VerticalExpand="True">
|
||||||
<BoxContainer Name="TopLeft" Orientation="Vertical">
|
|
||||||
<!-- Left Top Panel -->
|
|
||||||
<PanelContainer StyleClasses="AngleRect" HorizontalAlignment="Left" Name="LeftSideTop"
|
|
||||||
VerticalAlignment="Top">
|
|
||||||
<BoxContainer Orientation="Vertical" HorizontalAlignment="Center" MaxWidth="800">
|
|
||||||
<info:LinkBanner Name="LinkBanner" VerticalExpand="false" HorizontalAlignment="Center"
|
|
||||||
Margin="3 3 3 3" />
|
|
||||||
<controls:StripeBack>
|
|
||||||
<BoxContainer Orientation="Horizontal" SeparationOverride="6" Margin="3 3 3 3">
|
|
||||||
<cc:UICommandButton Command="observe" Name="ObserveButton" Access="Public"
|
|
||||||
Text="{Loc 'ui-lobby-observe-button'}"
|
|
||||||
StyleClasses="ButtonBig"
|
|
||||||
WindowType="{x:Type lobbyUi:ObserveWarningWindow}" />
|
|
||||||
<Label Name="StartTime"
|
|
||||||
Access="Public"
|
|
||||||
Align="Left"
|
|
||||||
FontColorOverride="{x:Static maths:Color.DarkGray}"
|
|
||||||
StyleClasses="LabelBig" HorizontalExpand="True" />
|
|
||||||
<Button Name="ReadyButton" Access="Public" ToggleMode="True"
|
|
||||||
Text="{Loc 'ui-lobby-ready-up-button'}"
|
|
||||||
StyleClasses="ButtonBig" MinWidth="137" />
|
|
||||||
</BoxContainer>
|
|
||||||
</controls:StripeBack>
|
|
||||||
</BoxContainer>
|
|
||||||
</PanelContainer>
|
|
||||||
|
|
||||||
<BoxContainer Orientation="Horizontal" HorizontalAlignment="Stretch" VerticalAlignment="Top">
|
<!-- Character Setup State -->
|
||||||
<PanelContainer Name="TopRightContainer" MinHeight="350" MinWidth="469" StyleClasses="LobbyGayBackground">
|
|
||||||
<info:ServerListBox Name="ServerListBox" Access="Public" MinSize="0 30" VerticalExpand="True" HorizontalExpand="True" Margin="3 3 3 3" HorizontalAlignment="Stretch"/>
|
|
||||||
</PanelContainer>
|
|
||||||
</BoxContainer>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Voting Popups -->
|
|
||||||
<BoxContainer Orientation="Vertical" SeparationOverride="4" Name="VoteContainer"
|
|
||||||
Access="Public" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0 8" />
|
|
||||||
</BoxContainer>
|
|
||||||
<!-- Vertical Padding-->
|
|
||||||
<Control VerticalExpand="True" />
|
|
||||||
<!-- Left Bot Panel -->
|
|
||||||
<BoxContainer Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Bottom">
|
|
||||||
<info:DevInfoBanner Name="DevInfoBanner" VerticalExpand="false" Margin="3 3 3 3" />
|
|
||||||
<PanelContainer StyleClasses="AngleRect">
|
|
||||||
<RichTextLabel Name="LobbySong" Access="Public" HorizontalAlignment="Center" />
|
|
||||||
</PanelContainer>
|
|
||||||
</BoxContainer>
|
|
||||||
</Control>
|
|
||||||
<!-- Character setup state -->
|
|
||||||
<!-- This is injected on startup. Funky! -->
|
|
||||||
<Control Access="Public" Visible="False" Name="CharacterSetupState" VerticalExpand="True" />
|
<Control Access="Public" Visible="False" Name="CharacterSetupState" VerticalExpand="True" />
|
||||||
|
|
||||||
|
<!-- Top Left Panel -->
|
||||||
|
<PanelContainer Name="TopPanel" MinWidth="722" StyleClasses="LobbyGayBackground"
|
||||||
|
VerticalExpand="True" HorizontalExpand="True" HorizontalAlignment="Stretch"
|
||||||
|
VerticalAlignment="Top" Visible="False">
|
||||||
|
|
||||||
|
<BoxContainer Orientation="Vertical" HorizontalExpand="True" HorizontalAlignment="Stretch"
|
||||||
|
Margin="8 8 8 8">
|
||||||
|
|
||||||
|
<BoxContainer Orientation="Horizontal" MinSize="0 40" HorizontalAlignment="Center">
|
||||||
|
|
||||||
|
<info:LinkBanner Name="LinkBanner" VerticalExpand="True" HorizontalAlignment="Center" />
|
||||||
|
|
||||||
|
<Button Name="AHelpButton" Access="Public" Text="{Loc 'ui-lobby-ahelp-button'}"
|
||||||
|
StyleClasses="Button" />
|
||||||
|
|
||||||
</BoxContainer>
|
</BoxContainer>
|
||||||
|
|
||||||
|
</BoxContainer>
|
||||||
|
|
||||||
|
</PanelContainer>
|
||||||
|
|
||||||
|
<!-- Vote Container -->
|
||||||
|
<BoxContainer Orientation="Vertical" SeparationOverride="4" Name="VoteContainer" Access="Public"
|
||||||
|
HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0 8" />
|
||||||
|
|
||||||
|
<!-- Vertical Padding -->
|
||||||
|
<Control VerticalExpand="True" />
|
||||||
|
|
||||||
|
<ui:OhioRichTextLabel Name="LabelName" Access="Public" HorizontalAlignment="Left"
|
||||||
|
VerticalAlignment="Center" Margin="0 0 0 350" />
|
||||||
|
|
||||||
|
<!-- Ohio Container -->
|
||||||
|
<PanelContainer HorizontalAlignment="Left" Name="Center" VerticalAlignment="Center">
|
||||||
|
|
||||||
|
<BoxContainer Name="OhioContainer" Orientation="Vertical" HorizontalAlignment="Center"
|
||||||
|
VerticalAlignment="Center" Margin="40 0 0 150">
|
||||||
|
|
||||||
|
<buttons:OhioLobbyTextButton
|
||||||
|
Name="ReadyButton"
|
||||||
|
Access="Public"
|
||||||
|
ToggleMode="True"
|
||||||
|
ButtonText="Ready"
|
||||||
|
Margin="0 0 0 10" />
|
||||||
|
|
||||||
|
<buttons:OhioUICommandButton
|
||||||
|
Name="ObserveButton"
|
||||||
|
WindowType="{x:Type lobbyUi:ObserveWarningWindow}"
|
||||||
|
Access="Public"
|
||||||
|
ButtonText="Observe"
|
||||||
|
Margin="0 10 0 10" />
|
||||||
|
|
||||||
|
<buttons:OhioLobbyTextButton
|
||||||
|
Name="CharacterSetupButton"
|
||||||
|
Access="Public"
|
||||||
|
ButtonText="Character Setup"
|
||||||
|
Margin="0 10 0 10" />
|
||||||
|
|
||||||
|
<buttons:OhioLobbyTextButton
|
||||||
|
Name="OptionsButton"
|
||||||
|
Access="Public"
|
||||||
|
ButtonText="Options"
|
||||||
|
Margin="0 10 0 0" />
|
||||||
|
|
||||||
|
</BoxContainer>
|
||||||
|
|
||||||
|
</PanelContainer>
|
||||||
|
|
||||||
|
<BoxContainer Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Bottom">
|
||||||
|
|
||||||
|
<PanelContainer StyleClasses="LobbyGayBackground">
|
||||||
|
|
||||||
|
<RichTextLabel Name="Version" Access="Public" HorizontalAlignment="Center" />
|
||||||
|
|
||||||
|
</PanelContainer>
|
||||||
|
|
||||||
|
</BoxContainer>
|
||||||
|
|
||||||
|
<!-- Changelog -->
|
||||||
|
<PanelContainer Name="Changelog" StyleClasses="LobbyGayBackground" HorizontalAlignment="Right"
|
||||||
|
VerticalAlignment="Top">
|
||||||
|
|
||||||
|
<BoxContainer Orientation="Vertical">
|
||||||
|
|
||||||
|
<RichTextLabel Name="ChangelogLabel" Access="Public" HorizontalAlignment="Center" />
|
||||||
|
|
||||||
|
<!-- Auto populated via code -->
|
||||||
|
<BoxContainer Name="ChangelogContainer" Access="Public" Orientation="Vertical"
|
||||||
|
StyleClasses="LobbyGayBackground" />
|
||||||
|
</BoxContainer>
|
||||||
|
|
||||||
|
</PanelContainer>
|
||||||
|
|
||||||
|
</Control>
|
||||||
|
|
||||||
|
</BoxContainer>
|
||||||
|
|
||||||
<!-- Right Panel -->
|
<!-- Right Panel -->
|
||||||
<PanelContainer Name="RightSide" StyleClasses="AngleRect" HorizontalAlignment="Right" VerticalExpand="True"
|
<PanelContainer Name="RightSide" StyleClasses="LobbyGayBackground" HorizontalAlignment="Right"
|
||||||
VerticalAlignment="Stretch">
|
VerticalExpand="True" VerticalAlignment="Stretch">
|
||||||
|
|
||||||
<BoxContainer Orientation="Vertical" HorizontalExpand="True">
|
<BoxContainer Orientation="Vertical" HorizontalExpand="True">
|
||||||
<!-- Top row -->
|
|
||||||
|
<!-- Header -->
|
||||||
<BoxContainer Orientation="Horizontal" MinSize="0 40" Name="HeaderContainer" Access="Public"
|
<BoxContainer Orientation="Horizontal" MinSize="0 40" Name="HeaderContainer" Access="Public"
|
||||||
SeparationOverride="4">
|
SeparationOverride="4">
|
||||||
<Label Margin="8 0 0 0" StyleClasses="LabelHeadingBigger" VAlign="Center"
|
|
||||||
Text="{Loc 'ui-lobby-title'}" />
|
|
||||||
<Label Name="ServerName" Access="Public" StyleClasses="LabelHeadingBigger" VAlign="Center"
|
<Label Name="ServerName" Access="Public" StyleClasses="LabelHeadingBigger" VAlign="Center"
|
||||||
HorizontalExpand="True" HorizontalAlignment="Center" />
|
HorizontalExpand="True" HorizontalAlignment="Center" />
|
||||||
</BoxContainer>
|
</BoxContainer>
|
||||||
<!-- Gold line -->
|
|
||||||
|
<!-- Gold Line -->
|
||||||
<controls:HLine Color="{x:Static style:StyleNano.NanoGold}" Thickness="2" />
|
<controls:HLine Color="{x:Static style:StyleNano.NanoGold}" Thickness="2" />
|
||||||
<controls:HSpacer Spacing="10" />
|
<controls:HSpacer Spacing="10" />
|
||||||
<!-- Voting & misc button bar -->
|
|
||||||
<BoxContainer Orientation="Horizontal" MinSize="0 40" HorizontalAlignment="Right">
|
<!-- Server Info -->
|
||||||
<Button Name="AHelpButton" Access="Public" Text="{Loc 'ui-lobby-ahelp-button'}"
|
|
||||||
StyleClasses="ButtonBig" />
|
|
||||||
<vote:VoteCallMenuButton Name="CallVoteButton" StyleClasses="ButtonBig" />
|
|
||||||
<Button Name="OptionsButton" Access="Public" StyleClasses="ButtonBig"
|
|
||||||
Text="{Loc 'ui-lobby-options-button'}" />
|
|
||||||
<Button Name="LeaveButton" Access="Public" StyleClasses="ButtonBig"
|
|
||||||
Text="{Loc 'ui-lobby-leave-button'}" />
|
|
||||||
</BoxContainer>
|
|
||||||
<controls:HSpacer Spacing="10" />
|
|
||||||
<!-- Server info -->
|
|
||||||
<controls:NanoHeading Text="{Loc 'ui-lobby-server-info-block'}" />
|
<controls:NanoHeading Text="{Loc 'ui-lobby-server-info-block'}" />
|
||||||
<info:ServerInfo Name="ServerInfo" Access="Public" MinSize="0 30" VerticalExpand="false"
|
|
||||||
Margin="3 3 3 3" MaxWidth="400" HorizontalAlignment="Left" />
|
<info:ServerInfo Name="ServerInfo" Access="Public" MinSize="0 100" VerticalExpand="false"
|
||||||
<Label Name="StationTime" Access="Public" FontColorOverride="{x:Static maths:Color.LightGray}"
|
Margin="3" MaxWidth="400" HorizontalAlignment="Left" />
|
||||||
Margin="3 3 3 3" HorizontalAlignment="Left" />
|
|
||||||
|
<Label Name="StationTime" Access="Public"
|
||||||
|
FontColorOverride="{x:Static maths:Color.MediumVioletRed}" Margin="3"
|
||||||
|
HorizontalAlignment="Left" />
|
||||||
|
|
||||||
|
<Label Name="StartTime" Access="Public" FontColorOverride="{x:Static maths:Color.MediumVioletRed}"
|
||||||
|
Margin="3" StyleClasses="Label" HorizontalExpand="True" />
|
||||||
|
|
||||||
<controls:HSpacer Spacing="5" />
|
<controls:HSpacer Spacing="5" />
|
||||||
<lobbyUi:LobbyCharacterPreviewPanel Name="CharacterPreview" Access="Public" />
|
|
||||||
|
<!--
|
||||||
|
<lobbyUi:LobbyCharacterPreviewPanel Name="CharacterPreview" Access="Public"/>
|
||||||
|
-->
|
||||||
|
|
||||||
<controls:HSpacer Spacing="5" />
|
<controls:HSpacer Spacing="5" />
|
||||||
|
|
||||||
<BoxContainer MinHeight="10" />
|
<BoxContainer MinHeight="10" />
|
||||||
<!-- Gold line -->
|
|
||||||
|
<!-- Gold Line -->
|
||||||
<controls:HLine Color="{x:Static style:StyleNano.NanoGold}" Thickness="2" Access="Public" />
|
<controls:HLine Color="{x:Static style:StyleNano.NanoGold}" Thickness="2" Access="Public" />
|
||||||
|
|
||||||
<controls:HSpacer Spacing="10" />
|
<controls:HSpacer Spacing="10" />
|
||||||
<widgets:ChatBox Name="Chat" Access="Public" VerticalExpand="True" Margin="3 3 3 3" MinHeight="50" />
|
|
||||||
|
<widgets:ChatBox Name="Chat" Access="Public" VerticalExpand="True" Margin="3" MinHeight="50" />
|
||||||
|
|
||||||
</BoxContainer>
|
</BoxContainer>
|
||||||
|
|
||||||
</PanelContainer>
|
</PanelContainer>
|
||||||
|
|
||||||
</SplitContainer>
|
</SplitContainer>
|
||||||
|
|
||||||
</BoxContainer>
|
</BoxContainer>
|
||||||
|
|
||||||
</lobbyUi:LobbyGui>
|
</lobbyUi:LobbyGui>
|
||||||
|
|||||||
@@ -1,29 +1,13 @@
|
|||||||
using Content.Client.Chat.UI;
|
|
||||||
using Content.Client.Info;
|
|
||||||
using Content.Client.Preferences;
|
|
||||||
using Content.Client.Preferences.UI;
|
|
||||||
using Content.Client.UserInterface.Screens;
|
|
||||||
using Content.Client.UserInterface.Systems.Chat.Widgets;
|
|
||||||
using Content.Client.UserInterface.Systems.EscapeMenu;
|
using Content.Client.UserInterface.Systems.EscapeMenu;
|
||||||
using Robust.Client.AutoGenerated;
|
using Robust.Client.AutoGenerated;
|
||||||
using Robust.Client.Console;
|
|
||||||
using Robust.Client.Graphics;
|
|
||||||
using Robust.Client.State;
|
|
||||||
using Robust.Client.UserInterface;
|
using Robust.Client.UserInterface;
|
||||||
using Robust.Client.UserInterface.Controls;
|
|
||||||
using Robust.Client.UserInterface.XAML;
|
using Robust.Client.UserInterface.XAML;
|
||||||
using Robust.Shared.GameObjects;
|
|
||||||
using Robust.Shared.IoC;
|
|
||||||
using Robust.Shared.Maths;
|
|
||||||
using Robust.Shared.Prototypes;
|
|
||||||
using static Robust.Client.UserInterface.Controls.BoxContainer;
|
|
||||||
|
|
||||||
namespace Content.Client.Lobby.UI
|
namespace Content.Client.Lobby.UI
|
||||||
{
|
{
|
||||||
[GenerateTypedNameReferences]
|
[GenerateTypedNameReferences]
|
||||||
internal sealed partial class LobbyGui : UIScreen
|
internal sealed partial class LobbyGui : UIScreen
|
||||||
{
|
{
|
||||||
[Dependency] private readonly IClientConsoleHost _consoleHost = default!;
|
|
||||||
[Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!;
|
[Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!;
|
||||||
|
|
||||||
public LobbyGui()
|
public LobbyGui()
|
||||||
@@ -33,32 +17,28 @@ namespace Content.Client.Lobby.UI
|
|||||||
SetAnchorPreset(MainContainer, LayoutPreset.Wide);
|
SetAnchorPreset(MainContainer, LayoutPreset.Wide);
|
||||||
SetAnchorPreset(Background, LayoutPreset.Wide);
|
SetAnchorPreset(Background, LayoutPreset.Wide);
|
||||||
|
|
||||||
LeaveButton.OnPressed += _ => _consoleHost.ExecuteCommand("disconnect");
|
|
||||||
OptionsButton.OnPressed += _ => _userInterfaceManager.GetUIController<OptionsUIController>().ToggleWindow();
|
OptionsButton.OnPressed += _ => _userInterfaceManager.GetUIController<OptionsUIController>().ToggleWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SwitchState(LobbyGuiState state)
|
public void SwitchState(LobbyGuiState state)
|
||||||
{
|
{
|
||||||
DefaultState.Visible = false;
|
|
||||||
CharacterSetupState.Visible = false;
|
|
||||||
|
|
||||||
switch (state)
|
switch (state)
|
||||||
{
|
{
|
||||||
case LobbyGuiState.Default:
|
case LobbyGuiState.Default:
|
||||||
DefaultState.Visible = true;
|
CharacterSetupState.Visible = false;
|
||||||
|
Center.Visible = true;
|
||||||
RightSide.Visible = true;
|
RightSide.Visible = true;
|
||||||
|
Version.Visible = true;
|
||||||
|
LabelName.Visible = true;
|
||||||
|
Changelog.Visible = true;
|
||||||
break;
|
break;
|
||||||
case LobbyGuiState.CharacterSetup:
|
case LobbyGuiState.CharacterSetup:
|
||||||
CharacterSetupState.Visible = true;
|
CharacterSetupState.Visible = true;
|
||||||
|
Center.Visible = false;
|
||||||
var actualWidth = (float) _userInterfaceManager.RootControl.PixelWidth;
|
|
||||||
var setupWidth = (float) LeftSide.PixelWidth;
|
|
||||||
|
|
||||||
if (1 - (setupWidth / actualWidth) > 0.30)
|
|
||||||
{
|
|
||||||
RightSide.Visible = false;
|
RightSide.Visible = false;
|
||||||
}
|
Version.Visible = false;
|
||||||
|
LabelName.Visible = false;
|
||||||
|
Changelog.Visible = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ public sealed class HTNOverlay : Overlay
|
|||||||
public HTNOverlay(IEntityManager entManager, IResourceCache resourceCache)
|
public HTNOverlay(IEntityManager entManager, IResourceCache resourceCache)
|
||||||
{
|
{
|
||||||
_entManager = entManager;
|
_entManager = entManager;
|
||||||
_font = new VectorFont(resourceCache.GetResource<FontResource>("/Fonts/NotoSans/NotoSans-Regular.ttf"), 10);
|
_font = new VectorFont(resourceCache.GetResource<FontResource>("/Fonts/IBMPlexMono/IBMPlexMono-Regular.ttf"), 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Draw(in OverlayDrawArgs args)
|
protected override void Draw(in OverlayDrawArgs args)
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ namespace Content.Client.NodeContainer
|
|||||||
_inputManager = inputManager;
|
_inputManager = inputManager;
|
||||||
_entityManager = entityManager;
|
_entityManager = entityManager;
|
||||||
|
|
||||||
_font = cache.GetFont("/Fonts/NotoSans/NotoSans-Regular.ttf", 12);
|
_font = cache.GetFont("/Fonts/IBMPlexMono/IBMPlexMono-Regular.ttf", 12);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Draw(in OverlayDrawArgs args)
|
protected override void Draw(in OverlayDrawArgs args)
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ public sealed partial class PdaNavigationButton : ContainerButton
|
|||||||
};
|
};
|
||||||
|
|
||||||
public string InactiveBgColor { get; set; } = "#202023";
|
public string InactiveBgColor { get; set; } = "#202023";
|
||||||
public string ActiveBgColor { get; set; } = "#25252a";
|
public string ActiveBgColor { get; set; } = "#141414";
|
||||||
public string InactiveFgColor { get; set; } = "#5a5a5a";
|
public string InactiveFgColor { get; set; } = "#5a5a5a";
|
||||||
public string ActiveFgColor { get; set; } = "#FFFFFF";
|
public string ActiveFgColor { get; set; } = "#FFFFFF";
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ public sealed partial class PdaProgramItem : ContainerButton
|
|||||||
|
|
||||||
private readonly StyleBoxFlat _styleBox = new()
|
private readonly StyleBoxFlat _styleBox = new()
|
||||||
{
|
{
|
||||||
BackgroundColor = Color.FromHex("#25252a"),
|
BackgroundColor = Color.FromHex("#141414")
|
||||||
};
|
};
|
||||||
|
|
||||||
public Color BackgroundColor
|
public Color BackgroundColor
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ public sealed partial class PdaSettingsButton : ContainerButton
|
|||||||
|
|
||||||
private readonly StyleBoxFlat _styleBox = new()
|
private readonly StyleBoxFlat _styleBox = new()
|
||||||
{
|
{
|
||||||
BackgroundColor = Color.FromHex("#25252a")
|
BackgroundColor = Color.FromHex("#141414")
|
||||||
};
|
};
|
||||||
|
|
||||||
public string? Text
|
public string? Text
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ namespace Content.Client.ParticleAccelerator.UI
|
|||||||
var back = new StyleBoxTexture
|
var back = new StyleBoxTexture
|
||||||
{
|
{
|
||||||
Texture = panelTex,
|
Texture = panelTex,
|
||||||
Modulate = Color.FromHex("#25252A"),
|
Modulate = Color.FromHex("#141414"),
|
||||||
};
|
};
|
||||||
back.SetPatchMargin(StyleBox.Margin.All, 10);
|
back.SetPatchMargin(StyleBox.Margin.All, 10);
|
||||||
|
|
||||||
|
|||||||
@@ -47,9 +47,9 @@ public sealed class PopupOverlay : Overlay
|
|||||||
_popup = popup;
|
_popup = popup;
|
||||||
|
|
||||||
_shader = protoManager.Index<ShaderPrototype>("unshaded").Instance();
|
_shader = protoManager.Index<ShaderPrototype>("unshaded").Instance();
|
||||||
_smallFont = new VectorFont(cache.GetResource<FontResource>("/Fonts/NotoSans/NotoSans-Italic.ttf"), 10);
|
_smallFont = new VectorFont(cache.GetResource<FontResource>("/Fonts/IBMPlexMono/IBMPlexMono-Italic.ttf"), 10);
|
||||||
_mediumFont = new VectorFont(cache.GetResource<FontResource>("/Fonts/NotoSans/NotoSans-Italic.ttf"), 12);
|
_mediumFont = new VectorFont(cache.GetResource<FontResource>("/Fonts/IBMPlexMono/IBMPlexMono-Italic.ttf"), 12);
|
||||||
_largeFont = new VectorFont(cache.GetResource<FontResource>("/Fonts/NotoSans/NotoSans-BoldItalic.ttf"), 14);
|
_largeFont = new VectorFont(cache.GetResource<FontResource>("/Fonts/IBMPlexMono/IBMPlexMono-BoldItalic.ttf"), 14);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Draw(in OverlayDrawArgs args)
|
protected override void Draw(in OverlayDrawArgs args)
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ namespace Content.Client.Preferences.UI
|
|||||||
var back = new StyleBoxTexture
|
var back = new StyleBoxTexture
|
||||||
{
|
{
|
||||||
Texture = panelTex,
|
Texture = panelTex,
|
||||||
Modulate = new Color(37, 42, 37)
|
Modulate = new Color(15, 15, 15)
|
||||||
};
|
};
|
||||||
back.SetPatchMargin(StyleBox.Margin.All, 10);
|
back.SetPatchMargin(StyleBox.Margin.All, 10);
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ namespace Content.Client.Preferences.UI
|
|||||||
{
|
{
|
||||||
PanelOverride = new StyleBoxFlat()
|
PanelOverride = new StyleBoxFlat()
|
||||||
{
|
{
|
||||||
BackgroundColor = new Color(35, 48, 35),
|
BackgroundColor = new Color(25, 25, 25),
|
||||||
ContentMarginTopOverride = 10,
|
ContentMarginTopOverride = 10,
|
||||||
ContentMarginBottomOverride = 10,
|
ContentMarginBottomOverride = 10,
|
||||||
ContentMarginLeftOverride = 10,
|
ContentMarginLeftOverride = 10,
|
||||||
@@ -599,7 +599,7 @@ namespace Content.Client.Preferences.UI
|
|||||||
|
|
||||||
category.AddChild(new PanelContainer
|
category.AddChild(new PanelContainer
|
||||||
{
|
{
|
||||||
PanelOverride = new StyleBoxFlat {BackgroundColor = Color.FromHex("#464966")},
|
PanelOverride = new StyleBoxFlat {BackgroundColor = Color.FromHex("#232323")},
|
||||||
Children =
|
Children =
|
||||||
{
|
{
|
||||||
new Label
|
new Label
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ public sealed class RadiationDebugOverlay : Overlay
|
|||||||
_radiation = _entityManager.System<RadiationSystem>();
|
_radiation = _entityManager.System<RadiationSystem>();
|
||||||
|
|
||||||
var cache = IoCManager.Resolve<IResourceCache>();
|
var cache = IoCManager.Resolve<IResourceCache>();
|
||||||
_font = new VectorFont(cache.GetResource<FontResource>("/Fonts/NotoSans/NotoSans-Regular.ttf"), 8);
|
_font = new VectorFont(cache.GetResource<FontResource>("/Fonts/IBMPlexMono/IBMPlexMono-Regular.ttf"), 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Draw(in OverlayDrawArgs args)
|
protected override void Draw(in OverlayDrawArgs args)
|
||||||
|
|||||||
@@ -43,11 +43,20 @@ namespace Content.Client.Stylesheets
|
|||||||
|
|
||||||
protected StyleBase(IResourceCache resCache)
|
protected StyleBase(IResourceCache resCache)
|
||||||
{
|
{
|
||||||
|
var wariowareinc = resCache.GetFont
|
||||||
|
(
|
||||||
|
new []
|
||||||
|
{
|
||||||
|
"/Fonts/IBMPlexMono/IBMPlexMono-Regular.ttf"
|
||||||
|
},
|
||||||
|
12
|
||||||
|
);
|
||||||
|
|
||||||
var notoSans12 = resCache.GetFont
|
var notoSans12 = resCache.GetFont
|
||||||
(
|
(
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
"/Fonts/IBMPlexSans/IBMPlexSans-Regular.ttf",
|
"/Fonts/IBMPlexMono/IBMPlexMono-Regular.ttf",
|
||||||
"/Fonts/NotoSans/NotoSansSymbols-Regular.ttf",
|
"/Fonts/NotoSans/NotoSansSymbols-Regular.ttf",
|
||||||
"/Fonts/NotoSans/NotoSansSymbols2-Regular.ttf"
|
"/Fonts/NotoSans/NotoSansSymbols2-Regular.ttf"
|
||||||
},
|
},
|
||||||
@@ -57,7 +66,7 @@ namespace Content.Client.Stylesheets
|
|||||||
(
|
(
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
"/Fonts/IBMPlexSans/IBMPlexSans-Italic.ttf",
|
"/Fonts/IBMPlexMono/IBMPlexMono-Italic.ttf",
|
||||||
"/Fonts/NotoSans/NotoSansSymbols-Regular.ttf",
|
"/Fonts/NotoSans/NotoSansSymbols-Regular.ttf",
|
||||||
"/Fonts/NotoSans/NotoSansSymbols2-Regular.ttf"
|
"/Fonts/NotoSans/NotoSansSymbols2-Regular.ttf"
|
||||||
},
|
},
|
||||||
@@ -124,7 +133,7 @@ namespace Content.Client.Stylesheets
|
|||||||
|
|
||||||
var vScrollBarGrabberNormal = new StyleBoxFlat
|
var vScrollBarGrabberNormal = new StyleBoxFlat
|
||||||
{
|
{
|
||||||
BackgroundColor = Color.DarkKhaki.WithAlpha(0.35f), ContentMarginLeftOverride = DefaultGrabberSize,
|
BackgroundColor = Color.Gray.WithAlpha(0.35f), ContentMarginLeftOverride = DefaultGrabberSize,
|
||||||
ContentMarginTopOverride = DefaultGrabberSize
|
ContentMarginTopOverride = DefaultGrabberSize
|
||||||
};
|
};
|
||||||
var vScrollBarGrabberHover = new StyleBoxFlat
|
var vScrollBarGrabberHover = new StyleBoxFlat
|
||||||
@@ -140,7 +149,7 @@ namespace Content.Client.Stylesheets
|
|||||||
|
|
||||||
var hScrollBarGrabberNormal = new StyleBoxFlat
|
var hScrollBarGrabberNormal = new StyleBoxFlat
|
||||||
{
|
{
|
||||||
BackgroundColor = Color.DarkKhaki.WithAlpha(0.35f), ContentMarginTopOverride = DefaultGrabberSize
|
BackgroundColor = Color.Gray.WithAlpha(0.35f), ContentMarginTopOverride = DefaultGrabberSize
|
||||||
};
|
};
|
||||||
var hScrollBarGrabberHover = new StyleBoxFlat
|
var hScrollBarGrabberHover = new StyleBoxFlat
|
||||||
{
|
{
|
||||||
@@ -159,7 +168,7 @@ namespace Content.Client.Stylesheets
|
|||||||
new SelectorElement(null, null, null, null),
|
new SelectorElement(null, null, null, null),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new StyleProperty("font", notoSans12),
|
new StyleProperty("font", wariowareinc),
|
||||||
}),
|
}),
|
||||||
|
|
||||||
// Default font.
|
// Default font.
|
||||||
@@ -167,7 +176,7 @@ namespace Content.Client.Stylesheets
|
|||||||
new SelectorElement(null, new[] {StyleClassItalic}, null, null),
|
new SelectorElement(null, new[] {StyleClassItalic}, null, null),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new StyleProperty("font", notoSans12Italic),
|
new StyleProperty("font", wariowareinc),
|
||||||
}),
|
}),
|
||||||
|
|
||||||
// Window close button base texture.
|
// Window close button base texture.
|
||||||
@@ -177,7 +186,7 @@ namespace Content.Client.Stylesheets
|
|||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new StyleProperty(TextureButton.StylePropertyTexture, textureCloseButton),
|
new StyleProperty(TextureButton.StylePropertyTexture, textureCloseButton),
|
||||||
new StyleProperty(Control.StylePropertyModulateSelf, Color.FromHex("#4B596A")),
|
new StyleProperty(Control.StylePropertyModulateSelf, Color.FromHex("#1e1e1e")),
|
||||||
}),
|
}),
|
||||||
// Window close button hover.
|
// Window close button hover.
|
||||||
new StyleRule(
|
new StyleRule(
|
||||||
@@ -185,7 +194,7 @@ namespace Content.Client.Stylesheets
|
|||||||
new[] {TextureButton.StylePseudoClassHover}),
|
new[] {TextureButton.StylePseudoClassHover}),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new StyleProperty(Control.StylePropertyModulateSelf, Color.FromHex("#7F3636")),
|
new StyleProperty(Control.StylePropertyModulateSelf, Color.FromHex("#960000")),
|
||||||
}),
|
}),
|
||||||
// Window close button pressed.
|
// Window close button pressed.
|
||||||
new StyleRule(
|
new StyleRule(
|
||||||
@@ -193,7 +202,7 @@ namespace Content.Client.Stylesheets
|
|||||||
new[] {TextureButton.StylePseudoClassPressed}),
|
new[] {TextureButton.StylePseudoClassPressed}),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new StyleProperty(Control.StylePropertyModulateSelf, Color.FromHex("#753131")),
|
new StyleProperty(Control.StylePropertyModulateSelf, Color.FromHex("#141414")),
|
||||||
}),
|
}),
|
||||||
|
|
||||||
// Scroll bars
|
// Scroll bars
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ namespace Content.Client.Stylesheets
|
|||||||
// Ew, but ok
|
// Ew, but ok
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
$"/Fonts/IBMPlexSans/IBMPlexSans-{variation}.ttf",
|
$"/Fonts/IBMPlexMono/IBMPlexMono-Regular.ttf",
|
||||||
$"/Fonts/NotoSans/NotoSansSymbols-{sv}.ttf",
|
$"/Fonts/NotoSans/NotoSansSymbols-{sv}.ttf",
|
||||||
"/Fonts/NotoSans/NotoSansSymbols2-Regular.ttf",
|
"/Fonts/NotoSans/NotoSansSymbols2-Regular.ttf",
|
||||||
},
|
},
|
||||||
@@ -66,6 +66,7 @@ namespace Content.Client.Stylesheets
|
|||||||
public const string StyleClassStorageButton = "storageButton";
|
public const string StyleClassStorageButton = "storageButton";
|
||||||
public const string StyleClassFuckyWuckyBackground = "FuckyWuckyBackground";
|
public const string StyleClassFuckyWuckyBackground = "FuckyWuckyBackground";
|
||||||
public const string StyleClassGayShitBackground = "GayShitBackground";
|
public const string StyleClassGayShitBackground = "GayShitBackground";
|
||||||
|
public const string StyleClassLobbyGayBackground = "LobbyGayBackground";
|
||||||
|
|
||||||
public const string StyleClassSliderRed = "Red";
|
public const string StyleClassSliderRed = "Red";
|
||||||
public const string StyleClassSliderGreen = "Green";
|
public const string StyleClassSliderGreen = "Green";
|
||||||
@@ -85,28 +86,28 @@ namespace Content.Client.Stylesheets
|
|||||||
public const string StyleClassPopupMessageLarge = "PopupMessageLarge";
|
public const string StyleClassPopupMessageLarge = "PopupMessageLarge";
|
||||||
public const string StyleClassPopupMessageLargeCaution = "PopupMessageLargeCaution";
|
public const string StyleClassPopupMessageLargeCaution = "PopupMessageLargeCaution";
|
||||||
|
|
||||||
public static readonly Color PanelDark = Color.FromHex("#1E1E22");
|
public static readonly Color PanelDark = Color.FromHex("#0a0a0a");
|
||||||
|
|
||||||
public static readonly Color NanoGold = Color.FromHex("#A2B1A8");
|
public static readonly Color NanoGold = Color.FromHex("#76428a");
|
||||||
public static readonly Color GoodGreenFore = Color.FromHex("#4D5B5C");
|
public static readonly Color GoodGreenFore = Color.FromHex("#006400");
|
||||||
public static readonly Color ConcerningOrangeFore = Color.FromHex("#5C5A4D");
|
public static readonly Color ConcerningOrangeFore = Color.FromHex("#99461d");
|
||||||
public static readonly Color DangerousRedFore = Color.FromHex("#5C4D5B");
|
public static readonly Color DangerousRedFore = Color.FromHex("#1e1e1e");
|
||||||
public static readonly Color DisabledFore = Color.FromHex("#262E29");
|
public static readonly Color DisabledFore = Color.FromHex("#5A5A5A");
|
||||||
|
|
||||||
public static readonly Color ButtonColorDefault = Color.FromHex("#4D5D53");
|
public static readonly Color ButtonColorDefault = Color.FromHex("#232323");
|
||||||
public static readonly Color ButtonColorDefaultRed = Color.FromHex("#992723");
|
public static readonly Color ButtonColorDefaultRed = Color.FromHex("#640000");
|
||||||
public static readonly Color ButtonColorHovered = Color.FromHex("#58695E");
|
public static readonly Color ButtonColorHovered = Color.FromHex("#2d2d2d");
|
||||||
public static readonly Color ButtonColorHoveredRed = Color.FromHex("#4D5D53");
|
public static readonly Color ButtonColorHoveredRed = Color.FromHex("#960000");
|
||||||
public static readonly Color ButtonColorPressed = Color.FromHex("#000000");
|
public static readonly Color ButtonColorPressed = Color.FromHex("#0f0f0f");
|
||||||
public static readonly Color ButtonColorDisabled = Color.FromHex("#000000");
|
public static readonly Color ButtonColorDisabled = Color.FromHex("#0f0f0f");
|
||||||
|
|
||||||
public static readonly Color ButtonColorCautionDefault = Color.FromHex("#ab3232");
|
public static readonly Color ButtonColorCautionDefault = Color.FromHex("#99461d");
|
||||||
public static readonly Color ButtonColorCautionHovered = Color.FromHex("#cf2f2f");
|
public static readonly Color ButtonColorCautionHovered = Color.FromHex("#cc5b27");
|
||||||
public static readonly Color ButtonColorCautionPressed = Color.FromHex("#3e6c45");
|
public static readonly Color ButtonColorCautionPressed = Color.FromHex("#662e13");
|
||||||
public static readonly Color ButtonColorCautionDisabled = Color.FromHex("#602a2a");
|
public static readonly Color ButtonColorCautionDisabled = Color.FromHex("#33170a");
|
||||||
|
|
||||||
public static readonly Color ButtonColorGoodDefault = Color.FromHex("#3E6C45");
|
public static readonly Color ButtonColorGoodDefault = Color.FromHex("#006400");
|
||||||
public static readonly Color ButtonColorGoodHovered = Color.FromHex("#31843E");
|
public static readonly Color ButtonColorGoodHovered = Color.FromHex("#009600");
|
||||||
|
|
||||||
public static readonly Color ButtonColorPurpleDefault = Color.FromHex("#4a2eab");
|
public static readonly Color ButtonColorPurpleDefault = Color.FromHex("#4a2eab");
|
||||||
public static readonly Color ButtonColorPurpleHovered = Color.FromHex("#654cbf");
|
public static readonly Color ButtonColorPurpleHovered = Color.FromHex("#654cbf");
|
||||||
@@ -129,10 +130,10 @@ namespace Content.Client.Stylesheets
|
|||||||
public static readonly Color ExamineButtonColorContextDisabled = Color.FromHex("#262E29");
|
public static readonly Color ExamineButtonColorContextDisabled = Color.FromHex("#262E29");
|
||||||
|
|
||||||
// UI Panel colors
|
// UI Panel colors
|
||||||
public static readonly Color PanelColorDark = Color.FromHex("#1B211D");
|
public static readonly Color PanelColorDark = Color.FromHex("#0f0f0f");
|
||||||
|
|
||||||
// Fancy Tree elements
|
// Fancy Tree elements
|
||||||
public static readonly Color FancyTreeEvenRowColor = Color.FromHex("#313B35");
|
public static readonly Color FancyTreeEvenRowColor = Color.FromHex("#141414");
|
||||||
public static readonly Color FancyTreeOddRowColor = FancyTreeEvenRowColor * new Color(0.8f, 0.9f, 0.8f);
|
public static readonly Color FancyTreeOddRowColor = FancyTreeEvenRowColor * new Color(0.8f, 0.9f, 0.8f);
|
||||||
public static readonly Color FancyTreeSelectedRowColor = new Color(55, 80, 68);
|
public static readonly Color FancyTreeSelectedRowColor = new Color(55, 80, 68);
|
||||||
|
|
||||||
@@ -226,6 +227,17 @@ namespace Content.Client.Stylesheets
|
|||||||
gayShitBackground.SetPatchMargin(StyleBox.Margin.All, 2);
|
gayShitBackground.SetPatchMargin(StyleBox.Margin.All, 2);
|
||||||
gayShitBackground.SetExpandMargin(StyleBox.Margin.All, -2);
|
gayShitBackground.SetExpandMargin(StyleBox.Margin.All, -2);
|
||||||
|
|
||||||
|
var lobbyGayBackgroundTex = resCache.GetTexture("/Textures/Interface/Nano/lobby_gay.png");
|
||||||
|
var lobbyGayBackground = new StyleBoxTexture
|
||||||
|
{
|
||||||
|
Texture = lobbyGayBackgroundTex,
|
||||||
|
Mode = StyleBoxTexture.StretchMode.Tile
|
||||||
|
};
|
||||||
|
|
||||||
|
lobbyGayBackground.SetPatchMargin(StyleBox.Margin.All, 24);
|
||||||
|
lobbyGayBackground.SetExpandMargin(StyleBox.Margin.All, -4);
|
||||||
|
lobbyGayBackground.SetContentMarginOverride(StyleBox.Margin.All, 8);
|
||||||
|
|
||||||
var contextMenuBackground = new StyleBoxTexture
|
var contextMenuBackground = new StyleBoxTexture
|
||||||
{
|
{
|
||||||
Texture = borderedWindowBackgroundTex,
|
Texture = borderedWindowBackgroundTex,
|
||||||
@@ -438,13 +450,13 @@ namespace Content.Client.Stylesheets
|
|||||||
placeholder.SetExpandMargin(StyleBox.Margin.All, -5);
|
placeholder.SetExpandMargin(StyleBox.Margin.All, -5);
|
||||||
placeholder.Mode = StyleBoxTexture.StretchMode.Tile;
|
placeholder.Mode = StyleBoxTexture.StretchMode.Tile;
|
||||||
|
|
||||||
var itemListBackgroundSelected = new StyleBoxFlat {BackgroundColor = new Color(75, 90, 75)};
|
var itemListBackgroundSelected = new StyleBoxFlat {BackgroundColor = new Color(25, 25, 25)};
|
||||||
itemListBackgroundSelected.SetContentMarginOverride(StyleBox.Margin.Vertical, 2);
|
itemListBackgroundSelected.SetContentMarginOverride(StyleBox.Margin.Vertical, 2);
|
||||||
itemListBackgroundSelected.SetContentMarginOverride(StyleBox.Margin.Horizontal, 4);
|
itemListBackgroundSelected.SetContentMarginOverride(StyleBox.Margin.Horizontal, 4);
|
||||||
var itemListItemBackgroundDisabled = new StyleBoxFlat {BackgroundColor = new Color(10, 20, 10)};
|
var itemListItemBackgroundDisabled = new StyleBoxFlat {BackgroundColor = new Color(10, 10, 10)};
|
||||||
itemListItemBackgroundDisabled.SetContentMarginOverride(StyleBox.Margin.Vertical, 2);
|
itemListItemBackgroundDisabled.SetContentMarginOverride(StyleBox.Margin.Vertical, 2);
|
||||||
itemListItemBackgroundDisabled.SetContentMarginOverride(StyleBox.Margin.Horizontal, 4);
|
itemListItemBackgroundDisabled.SetContentMarginOverride(StyleBox.Margin.Horizontal, 4);
|
||||||
var itemListItemBackground = new StyleBoxFlat {BackgroundColor = new Color(55, 70, 55)};
|
var itemListItemBackground = new StyleBoxFlat {BackgroundColor = new Color(15, 15, 15)};
|
||||||
itemListItemBackground.SetContentMarginOverride(StyleBox.Margin.Vertical, 2);
|
itemListItemBackground.SetContentMarginOverride(StyleBox.Margin.Vertical, 2);
|
||||||
itemListItemBackground.SetContentMarginOverride(StyleBox.Margin.Horizontal, 4);
|
itemListItemBackground.SetContentMarginOverride(StyleBox.Margin.Horizontal, 4);
|
||||||
var itemListItemBackgroundTransparent = new StyleBoxFlat {BackgroundColor = Color.Transparent};
|
var itemListItemBackgroundTransparent = new StyleBoxFlat {BackgroundColor = Color.Transparent};
|
||||||
@@ -488,7 +500,7 @@ namespace Content.Client.Stylesheets
|
|||||||
var sliderFillBox = new StyleBoxTexture
|
var sliderFillBox = new StyleBoxTexture
|
||||||
{
|
{
|
||||||
Texture = sliderFillTex,
|
Texture = sliderFillTex,
|
||||||
Modulate = Color.FromHex("#313B35")
|
Modulate = Color.FromHex("#141414")
|
||||||
};
|
};
|
||||||
|
|
||||||
var sliderBackBox = new StyleBoxTexture
|
var sliderBackBox = new StyleBoxTexture
|
||||||
@@ -500,12 +512,12 @@ namespace Content.Client.Stylesheets
|
|||||||
var sliderForeBox = new StyleBoxTexture
|
var sliderForeBox = new StyleBoxTexture
|
||||||
{
|
{
|
||||||
Texture = sliderOutlineTex,
|
Texture = sliderOutlineTex,
|
||||||
Modulate = Color.FromHex("#47554C")
|
Modulate = Color.FromHex("#1e1e1e")
|
||||||
};
|
};
|
||||||
|
|
||||||
var sliderGrabBox = new StyleBoxTexture
|
var sliderGrabBox = new StyleBoxTexture
|
||||||
{
|
{
|
||||||
Texture = sliderGrabTex,
|
Texture = sliderGrabTex
|
||||||
};
|
};
|
||||||
|
|
||||||
sliderFillBox.SetPatchMargin(StyleBox.Margin.All, 12);
|
sliderFillBox.SetPatchMargin(StyleBox.Margin.All, 12);
|
||||||
@@ -523,7 +535,7 @@ namespace Content.Client.Stylesheets
|
|||||||
var insetBack = new StyleBoxTexture
|
var insetBack = new StyleBoxTexture
|
||||||
{
|
{
|
||||||
Texture = buttonTex,
|
Texture = buttonTex,
|
||||||
Modulate = Color.FromHex("#212723"),
|
Modulate = Color.FromHex("#202020"),
|
||||||
};
|
};
|
||||||
insetBack.SetPatchMargin(StyleBox.Margin.All, 10);
|
insetBack.SetPatchMargin(StyleBox.Margin.All, 10);
|
||||||
|
|
||||||
@@ -699,6 +711,13 @@ namespace Content.Client.Stylesheets
|
|||||||
new StyleProperty("font-color", Color.FromHex("#3C484181")),
|
new StyleProperty("font-color", Color.FromHex("#3C484181")),
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
new StyleRule(
|
||||||
|
new SelectorElement(null, new[] {StyleClassLobbyGayBackground}, null, null),
|
||||||
|
new[]
|
||||||
|
{
|
||||||
|
new StyleProperty(PanelContainer.StylePropertyPanel, lobbyGayBackground),
|
||||||
|
}),
|
||||||
|
|
||||||
// Context Menu window
|
// Context Menu window
|
||||||
Element<PanelContainer>().Class(ContextMenuPopup.StyleClassContextMenuPopup)
|
Element<PanelContainer>().Class(ContextMenuPopup.StyleClassContextMenuPopup)
|
||||||
.Prop(PanelContainer.StylePropertyPanel, contextMenuBackground),
|
.Prop(PanelContainer.StylePropertyPanel, contextMenuBackground),
|
||||||
@@ -817,19 +836,19 @@ namespace Content.Client.Stylesheets
|
|||||||
|
|
||||||
Element<ContainerButton>().Class(ListContainer.StyleClassListContainerButton)
|
Element<ContainerButton>().Class(ListContainer.StyleClassListContainerButton)
|
||||||
.Pseudo(ContainerButton.StylePseudoClassNormal)
|
.Pseudo(ContainerButton.StylePseudoClassNormal)
|
||||||
.Prop(Control.StylePropertyModulateSelf, new Color(55, 80, 68)),
|
.Prop(Control.StylePropertyModulateSelf, new Color(25, 25, 25)),
|
||||||
|
|
||||||
Element<ContainerButton>().Class(ListContainer.StyleClassListContainerButton)
|
Element<ContainerButton>().Class(ListContainer.StyleClassListContainerButton)
|
||||||
.Pseudo(ContainerButton.StylePseudoClassHover)
|
.Pseudo(ContainerButton.StylePseudoClassHover)
|
||||||
.Prop(Control.StylePropertyModulateSelf, new Color(75, 90, 86)),
|
.Prop(Control.StylePropertyModulateSelf, new Color(30, 30, 30)),
|
||||||
|
|
||||||
Element<ContainerButton>().Class(ListContainer.StyleClassListContainerButton)
|
Element<ContainerButton>().Class(ListContainer.StyleClassListContainerButton)
|
||||||
.Pseudo(ContainerButton.StylePseudoClassPressed)
|
.Pseudo(ContainerButton.StylePseudoClassPressed)
|
||||||
.Prop(Control.StylePropertyModulateSelf, new Color(75, 90, 86)),
|
.Prop(Control.StylePropertyModulateSelf, new Color(30, 30, 30)),
|
||||||
|
|
||||||
Element<ContainerButton>().Class(ListContainer.StyleClassListContainerButton)
|
Element<ContainerButton>().Class(ListContainer.StyleClassListContainerButton)
|
||||||
.Pseudo(ContainerButton.StylePseudoClassDisabled)
|
.Pseudo(ContainerButton.StylePseudoClassDisabled)
|
||||||
.Prop(Control.StylePropertyModulateSelf, new Color(10, 20, 12)),
|
.Prop(Control.StylePropertyModulateSelf, new Color(5, 5, 5)),
|
||||||
|
|
||||||
// Main menu: Make those buttons bigger.
|
// Main menu: Make those buttons bigger.
|
||||||
new StyleRule(new SelectorChild(
|
new StyleRule(new SelectorChild(
|
||||||
@@ -1022,7 +1041,7 @@ namespace Content.Client.Stylesheets
|
|||||||
new StyleRule(new SelectorElement(typeof(ItemList), null, null, null), new[]
|
new StyleRule(new SelectorElement(typeof(ItemList), null, null, null), new[]
|
||||||
{
|
{
|
||||||
new StyleProperty(ItemList.StylePropertyBackground,
|
new StyleProperty(ItemList.StylePropertyBackground,
|
||||||
new StyleBoxFlat {BackgroundColor = new Color(32, 40, 32)}),
|
new StyleBoxFlat {BackgroundColor = new Color(10, 10, 10)}),
|
||||||
new StyleProperty(ItemList.StylePropertyItemBackground,
|
new StyleProperty(ItemList.StylePropertyItemBackground,
|
||||||
itemListItemBackground),
|
itemListItemBackground),
|
||||||
new StyleProperty(ItemList.StylePropertyDisabledItemBackground,
|
new StyleProperty(ItemList.StylePropertyDisabledItemBackground,
|
||||||
@@ -1047,10 +1066,10 @@ namespace Content.Client.Stylesheets
|
|||||||
new StyleRule(new SelectorElement(typeof(Tree), null, null, null), new[]
|
new StyleRule(new SelectorElement(typeof(Tree), null, null, null), new[]
|
||||||
{
|
{
|
||||||
new StyleProperty(Tree.StylePropertyBackground,
|
new StyleProperty(Tree.StylePropertyBackground,
|
||||||
new StyleBoxFlat {BackgroundColor = new Color(32, 40, 32)}),
|
new StyleBoxFlat {BackgroundColor = new Color(10, 10, 10)}),
|
||||||
new StyleProperty(Tree.StylePropertyItemBoxSelected, new StyleBoxFlat
|
new StyleProperty(Tree.StylePropertyItemBoxSelected, new StyleBoxFlat
|
||||||
{
|
{
|
||||||
BackgroundColor = new Color(55, 75, 68),
|
BackgroundColor = new Color(15, 15, 15),
|
||||||
ContentMarginLeftOverride = 4
|
ContentMarginLeftOverride = 4
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
@@ -1338,7 +1357,7 @@ namespace Content.Client.Stylesheets
|
|||||||
|
|
||||||
Element<PanelContainer>().Class(ClassAngleRect)
|
Element<PanelContainer>().Class(ClassAngleRect)
|
||||||
.Prop(PanelContainer.StylePropertyPanel, BaseAngleRect)
|
.Prop(PanelContainer.StylePropertyPanel, BaseAngleRect)
|
||||||
.Prop(Control.StylePropertyModulateSelf, Color.FromHex("#253025")),
|
.Prop(Control.StylePropertyModulateSelf, Color.FromHex("#141414")),
|
||||||
|
|
||||||
Element<PanelContainer>().Class(ClassLowDivider)
|
Element<PanelContainer>().Class(ClassLowDivider)
|
||||||
.Prop(PanelContainer.StylePropertyPanel, new StyleBoxFlat
|
.Prop(PanelContainer.StylePropertyPanel, new StyleBoxFlat
|
||||||
@@ -1388,7 +1407,7 @@ namespace Content.Client.Stylesheets
|
|||||||
.Prop(Control.StylePropertyModulateSelf, DangerousRedFore),
|
.Prop(Control.StylePropertyModulateSelf, DangerousRedFore),
|
||||||
|
|
||||||
Element<TextureButton>().Class("CrossButtonRed").Pseudo(TextureButton.StylePseudoClassHover)
|
Element<TextureButton>().Class("CrossButtonRed").Pseudo(TextureButton.StylePseudoClassHover)
|
||||||
.Prop(Control.StylePropertyModulateSelf, Color.FromHex("#5C4D51")),
|
.Prop(Control.StylePropertyModulateSelf, Color.FromHex("#171717")),
|
||||||
|
|
||||||
Element<TextureButton>().Class("CrossButtonRed").Pseudo(TextureButton.StylePseudoClassHover)
|
Element<TextureButton>().Class("CrossButtonRed").Pseudo(TextureButton.StylePseudoClassHover)
|
||||||
.Prop(Control.StylePropertyModulateSelf, Color.FromHex("#5C4D51")),
|
.Prop(Control.StylePropertyModulateSelf, Color.FromHex("#5C4D51")),
|
||||||
@@ -1459,7 +1478,7 @@ namespace Content.Client.Stylesheets
|
|||||||
//PDA - Backgrounds
|
//PDA - Backgrounds
|
||||||
Element<PanelContainer>().Class("PdaContentBackground")
|
Element<PanelContainer>().Class("PdaContentBackground")
|
||||||
.Prop(PanelContainer.StylePropertyPanel, BaseButtonOpenBoth)
|
.Prop(PanelContainer.StylePropertyPanel, BaseButtonOpenBoth)
|
||||||
.Prop(Control.StylePropertyModulateSelf, Color.FromHex("#262E29")),
|
.Prop(Control.StylePropertyModulateSelf, Color.FromHex("#141414")),
|
||||||
|
|
||||||
Element<PanelContainer>().Class("PdaBackground")
|
Element<PanelContainer>().Class("PdaBackground")
|
||||||
.Prop(PanelContainer.StylePropertyPanel, BaseButtonOpenBoth)
|
.Prop(PanelContainer.StylePropertyPanel, BaseButtonOpenBoth)
|
||||||
@@ -1473,7 +1492,7 @@ namespace Content.Client.Stylesheets
|
|||||||
.Prop(PanelContainer.StylePropertyPanel, AngleBorderRect),
|
.Prop(PanelContainer.StylePropertyPanel, AngleBorderRect),
|
||||||
|
|
||||||
Element<PanelContainer>().Class("BackgroundDark")
|
Element<PanelContainer>().Class("BackgroundDark")
|
||||||
.Prop(PanelContainer.StylePropertyPanel, new StyleBoxFlat(Color.FromHex("#262E29"))),
|
.Prop(PanelContainer.StylePropertyPanel, new StyleBoxFlat(Color.FromHex("#141414"))),
|
||||||
|
|
||||||
//PDA - Buttons
|
//PDA - Buttons
|
||||||
Element<PdaSettingsButton>().Pseudo(ContainerButton.StylePseudoClassNormal)
|
Element<PdaSettingsButton>().Pseudo(ContainerButton.StylePseudoClassNormal)
|
||||||
|
|||||||
@@ -10,27 +10,36 @@ namespace Content.Client.Stylesheets
|
|||||||
{
|
{
|
||||||
public sealed class StyleSpace : StyleBase
|
public sealed class StyleSpace : StyleBase
|
||||||
{
|
{
|
||||||
public static readonly Color SpaceRed = Color.FromHex("#9b2236");
|
public static readonly Color SpaceRed = Color.FromHex("#960000");
|
||||||
|
|
||||||
public static readonly Color ButtonColorDefault = Color.FromHex("#464966");
|
public static readonly Color ButtonColorDefault = Color.FromHex("#232323");
|
||||||
public static readonly Color ButtonColorHovered = Color.FromHex("#575b7f");
|
public static readonly Color ButtonColorHovered = Color.FromHex("#2d2d2d");
|
||||||
public static readonly Color ButtonColorPressed = Color.FromHex("#3e6c45");
|
public static readonly Color ButtonColorPressed = Color.FromHex("#0f0f0f");
|
||||||
public static readonly Color ButtonColorDisabled = Color.FromHex("#30313c");
|
public static readonly Color ButtonColorDisabled = Color.FromHex("#0f0f0f");
|
||||||
|
|
||||||
public static readonly Color ButtonColorCautionDefault = Color.FromHex("#ab3232");
|
public static readonly Color ButtonColorCautionDefault = Color.FromHex("#640000");
|
||||||
public static readonly Color ButtonColorCautionHovered = Color.FromHex("#cf2f2f");
|
public static readonly Color ButtonColorCautionHovered = Color.FromHex("#960000");
|
||||||
public static readonly Color ButtonColorCautionPressed = Color.FromHex("#3e6c45");
|
public static readonly Color ButtonColorCautionPressed = Color.FromHex("#0f0f0f");
|
||||||
public static readonly Color ButtonColorCautionDisabled = Color.FromHex("#602a2a");
|
public static readonly Color ButtonColorCautionDisabled = Color.FromHex("#0f0f0f");
|
||||||
|
|
||||||
public override Stylesheet Stylesheet { get; }
|
public override Stylesheet Stylesheet { get; }
|
||||||
|
|
||||||
public StyleSpace(IResourceCache resCache) : base(resCache)
|
public StyleSpace(IResourceCache resCache) : base(resCache)
|
||||||
{
|
{
|
||||||
|
var whiteRabbit = resCache.GetFont
|
||||||
|
(
|
||||||
|
new []
|
||||||
|
{
|
||||||
|
"/Fonts/IBMPlexMono/IBMPlexMono-Regular.ttf"
|
||||||
|
},
|
||||||
|
10
|
||||||
|
);
|
||||||
|
|
||||||
var notoSans10 = resCache.GetFont
|
var notoSans10 = resCache.GetFont
|
||||||
(
|
(
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
"/Fonts/NotoSans/NotoSans-Regular.ttf",
|
"/Fonts/IBMPlexMono/IBMPlexMono-Regular.ttf",
|
||||||
"/Fonts/NotoSans/NotoSansSymbols-Regular.ttf",
|
"/Fonts/NotoSans/NotoSansSymbols-Regular.ttf",
|
||||||
"/Fonts/NotoSans/NotoSansSymbols2-Regular.ttf"
|
"/Fonts/NotoSans/NotoSansSymbols2-Regular.ttf"
|
||||||
},
|
},
|
||||||
@@ -40,7 +49,7 @@ namespace Content.Client.Stylesheets
|
|||||||
(
|
(
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
"/Fonts/NotoSans/NotoSans-Bold.ttf",
|
"/Fonts/IBMPlexMono/IBMPlexMono-Bold.ttf",
|
||||||
"/Fonts/NotoSans/NotoSansSymbols-Regular.ttf",
|
"/Fonts/NotoSans/NotoSansSymbols-Regular.ttf",
|
||||||
"/Fonts/NotoSans/NotoSansSymbols2-Regular.ttf"
|
"/Fonts/NotoSans/NotoSansSymbols2-Regular.ttf"
|
||||||
},
|
},
|
||||||
@@ -72,11 +81,11 @@ namespace Content.Client.Stylesheets
|
|||||||
Stylesheet = new Stylesheet(BaseRules.Concat(new StyleRule[]
|
Stylesheet = new Stylesheet(BaseRules.Concat(new StyleRule[]
|
||||||
{
|
{
|
||||||
Element<Label>().Class(StyleClassLabelHeading)
|
Element<Label>().Class(StyleClassLabelHeading)
|
||||||
.Prop(Label.StylePropertyFont, notoSansBold16)
|
.Prop(Label.StylePropertyFont, whiteRabbit)
|
||||||
.Prop(Label.StylePropertyFontColor, SpaceRed),
|
.Prop(Label.StylePropertyFontColor, SpaceRed),
|
||||||
|
|
||||||
Element<Label>().Class(StyleClassLabelSubText)
|
Element<Label>().Class(StyleClassLabelSubText)
|
||||||
.Prop(Label.StylePropertyFont, notoSans10)
|
.Prop(Label.StylePropertyFont, whiteRabbit)
|
||||||
.Prop(Label.StylePropertyFontColor, Color.DarkGray),
|
.Prop(Label.StylePropertyFontColor, Color.DarkGray),
|
||||||
|
|
||||||
Element<PanelContainer>().Class(ClassHighDivider)
|
Element<PanelContainer>().Class(ClassHighDivider)
|
||||||
@@ -153,7 +162,7 @@ namespace Content.Client.Stylesheets
|
|||||||
|
|
||||||
Element<PanelContainer>().Class(ClassAngleRect)
|
Element<PanelContainer>().Class(ClassAngleRect)
|
||||||
.Prop(PanelContainer.StylePropertyPanel, BaseAngleRect)
|
.Prop(PanelContainer.StylePropertyPanel, BaseAngleRect)
|
||||||
.Prop(Control.StylePropertyModulateSelf, Color.FromHex("#202030")),
|
.Prop(Control.StylePropertyModulateSelf, Color.FromHex("#191919")),
|
||||||
|
|
||||||
Child()
|
Child()
|
||||||
.Parent(Element<Button>().Class(ContainerButton.StylePseudoClassDisabled))
|
.Parent(Element<Button>().Class(ContainerButton.StylePseudoClassDisabled))
|
||||||
|
|||||||
@@ -15,11 +15,11 @@ public sealed class MenuButton : ContainerButton
|
|||||||
public const string StyleClassLabelTopButton = "topButtonLabel";
|
public const string StyleClassLabelTopButton = "topButtonLabel";
|
||||||
public const string StyleClassRedTopButton = "topButtonLabel";
|
public const string StyleClassRedTopButton = "topButtonLabel";
|
||||||
|
|
||||||
private static readonly Color ColorNormal = Color.FromHex("#879B8F");
|
private static readonly Color ColorNormal = Color.FromHex("#5a5a5a");
|
||||||
private static readonly Color ColorRedNormal = Color.FromHex("#aC4D5B");
|
private static readonly Color ColorRedNormal = Color.FromHex("#640000");
|
||||||
private static readonly Color ColorHovered = Color.FromHex("#ffffff");
|
private static readonly Color ColorHovered = Color.FromHex("#646464");
|
||||||
private static readonly Color ColorRedHovered = Color.FromHex("#FFFFFF");
|
private static readonly Color ColorRedHovered = Color.FromHex("#960000");
|
||||||
private static readonly Color ColorPressed = Color.FromHex("#789B8C");
|
private static readonly Color ColorPressed = Color.FromHex("#464646");
|
||||||
|
|
||||||
private const float VertPad = 8f;
|
private const float VertPad = 8f;
|
||||||
private Color NormalColor => HasStyleClass(StyleClassRedTopButton) ? ColorRedNormal : ColorNormal;
|
private Color NormalColor => HasStyleClass(StyleClassRedTopButton) ? ColorRedNormal : ColorNormal;
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ namespace Content.Client.UserInterface.Systems.Atmos.GasTank
|
|||||||
var back = new StyleBoxTexture
|
var back = new StyleBoxTexture
|
||||||
{
|
{
|
||||||
Texture = panelTex,
|
Texture = panelTex,
|
||||||
Modulate = Color.FromHex("#25252A"),
|
Modulate = Color.FromHex("#141414"),
|
||||||
};
|
};
|
||||||
|
|
||||||
back.SetPatchMargin(StyleBox.Margin.All, 10);
|
back.SetPatchMargin(StyleBox.Margin.All, 10);
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ namespace Content.Client.UserInterface.Systems.Chat.Controls;
|
|||||||
|
|
||||||
public sealed class ChannelFilterButton : ChatPopupButton<ChannelFilterPopup>
|
public sealed class ChannelFilterButton : ChatPopupButton<ChannelFilterPopup>
|
||||||
{
|
{
|
||||||
private static readonly Color ColorNormal = Color.FromHex("#7b7e9e");
|
private static readonly Color ColorNormal = Color.FromHex("#5a5a5a");
|
||||||
private static readonly Color ColorHovered = Color.FromHex("#9699bb");
|
private static readonly Color ColorHovered = Color.FromHex("#646464");
|
||||||
private static readonly Color ColorPressed = Color.FromHex("#789B8C");
|
private static readonly Color ColorPressed = Color.FromHex("#464646");
|
||||||
private readonly TextureRect? _textureRect;
|
private readonly TextureRect? _textureRect;
|
||||||
private readonly ChatUIController _chatUIController;
|
private readonly ChatUIController _chatUIController;
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
MinSize="465 225">
|
MinSize="465 225">
|
||||||
<PanelContainer HorizontalExpand="True" VerticalExpand="True">
|
<PanelContainer HorizontalExpand="True" VerticalExpand="True">
|
||||||
<PanelContainer.PanelOverride>
|
<PanelContainer.PanelOverride>
|
||||||
<graphics:StyleBoxFlat BackgroundColor="#25252ADD" />
|
<graphics:StyleBoxFlat BackgroundColor="#141414AA" />
|
||||||
</PanelContainer.PanelOverride>
|
</PanelContainer.PanelOverride>
|
||||||
|
|
||||||
<BoxContainer Orientation="Vertical" SeparationOverride="4" HorizontalExpand="True" VerticalExpand="True">
|
<BoxContainer Orientation="Vertical" SeparationOverride="4" HorizontalExpand="True" VerticalExpand="True">
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ namespace Content.Client.Wires.UI
|
|||||||
var back = new StyleBoxTexture
|
var back = new StyleBoxTexture
|
||||||
{
|
{
|
||||||
Texture = panelTex,
|
Texture = panelTex,
|
||||||
Modulate = Color.FromHex("#25252A"),
|
Modulate = Color.FromHex("#141414")
|
||||||
};
|
};
|
||||||
back.SetPatchMargin(StyleBox.Margin.All, 10);
|
back.SetPatchMargin(StyleBox.Margin.All, 10);
|
||||||
|
|
||||||
|
|||||||
34
Content.Client/_Ohio/Buttons/OhioCommandButton.cs
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
using Robust.Client.Console;
|
||||||
|
|
||||||
|
namespace Content.Client._Ohio.Buttons;
|
||||||
|
|
||||||
|
[Virtual]
|
||||||
|
public class OhioCommandButton : OhioLobbyTextButton
|
||||||
|
{
|
||||||
|
public string? Command { get; set; }
|
||||||
|
|
||||||
|
public OhioCommandButton()
|
||||||
|
{
|
||||||
|
OnPressed += Execute;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool CanPress()
|
||||||
|
{
|
||||||
|
return string.IsNullOrEmpty(Command) ||
|
||||||
|
IoCManager.Resolve<IClientConGroupController>().CanCommand(Command.Split(' ')[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void EnteredTree()
|
||||||
|
{
|
||||||
|
if (!CanPress())
|
||||||
|
{
|
||||||
|
Visible = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void Execute(ButtonEventArgs obj)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(Command))
|
||||||
|
IoCManager.Resolve<IClientConsoleHost>().ExecuteCommand(Command);
|
||||||
|
}
|
||||||
|
}
|
||||||
211
Content.Client/_Ohio/Buttons/OhioLobbyButton.cs
Normal file
@@ -0,0 +1,211 @@
|
|||||||
|
using System.Numerics;
|
||||||
|
using Robust.Client.Graphics;
|
||||||
|
using Robust.Client.UserInterface.Controls;
|
||||||
|
|
||||||
|
namespace Content.Client._Ohio.Buttons;
|
||||||
|
|
||||||
|
[Virtual]
|
||||||
|
public class OhioLobbyButton : BaseButton
|
||||||
|
{
|
||||||
|
private Vector2 _scale = new(1, 1);
|
||||||
|
|
||||||
|
private Texture? _texture;
|
||||||
|
private Texture? _textureDefault;
|
||||||
|
private Texture? _textureHighLighted;
|
||||||
|
private Texture? _texturePressed;
|
||||||
|
private Texture? _textureDisabled;
|
||||||
|
|
||||||
|
private string? _texturePath;
|
||||||
|
private string? _textureHighLightedPath;
|
||||||
|
private string? _texturePressedPath;
|
||||||
|
private string? _textureDisabledPath;
|
||||||
|
|
||||||
|
private Texture? _arrowTexture;
|
||||||
|
private string? _arrowTexturePath = "/Textures/Ohio/Lobby/arrow.png";
|
||||||
|
|
||||||
|
public OhioLobbyButton()
|
||||||
|
{
|
||||||
|
_arrowTexture = Theme.ResolveTexture(_arrowTexturePath);
|
||||||
|
|
||||||
|
DrawModeChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Textures GET-SET Start
|
||||||
|
|
||||||
|
[ViewVariables]
|
||||||
|
private Texture? TextureNormal
|
||||||
|
{
|
||||||
|
get => _texture;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_texture = value;
|
||||||
|
InvalidateMeasure();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[ViewVariables]
|
||||||
|
public Texture? TextureDefault
|
||||||
|
{
|
||||||
|
get => _textureDefault;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_textureDefault = value;
|
||||||
|
InvalidateMeasure();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[ViewVariables]
|
||||||
|
public Texture? TextureHighLighted
|
||||||
|
{
|
||||||
|
get => _textureHighLighted;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_textureHighLighted = value;
|
||||||
|
InvalidateMeasure();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[ViewVariables]
|
||||||
|
public Texture? TexturePressed
|
||||||
|
{
|
||||||
|
get => _texturePressed;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_texturePressed = value;
|
||||||
|
InvalidateMeasure();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[ViewVariables]
|
||||||
|
public Texture? TextureDisabled
|
||||||
|
{
|
||||||
|
get => _textureDisabled;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_textureDisabled = value;
|
||||||
|
InvalidateMeasure();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Textures GET-SET END
|
||||||
|
|
||||||
|
// Textures Path GET-SET START
|
||||||
|
|
||||||
|
public string TexturePath
|
||||||
|
{
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_texturePath = value;
|
||||||
|
TextureNormal = Theme.ResolveTexture(_texturePath);
|
||||||
|
TextureDefault = TextureNormal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string TextureHighLightedPath
|
||||||
|
{
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_textureHighLightedPath = value;
|
||||||
|
TextureHighLighted = Theme.ResolveTexture(_textureHighLightedPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string TexturePressedPath
|
||||||
|
{
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_texturePressedPath = value;
|
||||||
|
TexturePressed = Theme.ResolveTexture(_texturePressedPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string TextureDisabledPath
|
||||||
|
{
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_textureDisabledPath = value;
|
||||||
|
TextureDisabled = Theme.ResolveTexture(_textureDisabledPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Textures Path GET-SET END
|
||||||
|
|
||||||
|
|
||||||
|
// Arrow Texture GET-SET START
|
||||||
|
|
||||||
|
public Texture? ArrowTexture
|
||||||
|
{
|
||||||
|
get => _arrowTexture;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_arrowTexture = value;
|
||||||
|
InvalidateMeasure();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ArrowTexturePath
|
||||||
|
{
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_arrowTexturePath = value;
|
||||||
|
ArrowTexture = Theme.ResolveTexture(_arrowTexturePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arrow Texture GET-SET END
|
||||||
|
|
||||||
|
public Vector2 Scale
|
||||||
|
{
|
||||||
|
get => _scale;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_scale = value;
|
||||||
|
InvalidateMeasure();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DrawModeChanged()
|
||||||
|
{
|
||||||
|
_texture = DrawMode switch
|
||||||
|
{
|
||||||
|
DrawModeEnum.Normal => _textureDefault,
|
||||||
|
DrawModeEnum.Pressed => _texturePressed,
|
||||||
|
DrawModeEnum.Hover => _textureHighLighted,
|
||||||
|
DrawModeEnum.Disabled => _textureDisabled,
|
||||||
|
_ => _textureDefault
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Draw(DrawingHandleScreen handle)
|
||||||
|
{
|
||||||
|
var texture = TextureNormal;
|
||||||
|
|
||||||
|
if (texture == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
handle.DrawTextureRectRegion(texture, PixelSizeBox);
|
||||||
|
|
||||||
|
// Draw the arrow indicator when selected
|
||||||
|
if (IsHovered)
|
||||||
|
{
|
||||||
|
var arrowTexture = _arrowTexture;
|
||||||
|
|
||||||
|
if (arrowTexture == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var arrowPosition = new Vector2(SizeBox.Right - 150, SizeBox.Top + (SizeBox.Height - arrowTexture.Size.Y) / 2);
|
||||||
|
|
||||||
|
handle.DrawTextureRectRegion(arrowTexture, UIBox2.FromDimensions(arrowPosition, arrowTexture.Size));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override Vector2 MeasureOverride(Vector2 availableSize)
|
||||||
|
{
|
||||||
|
var texture = TextureNormal;
|
||||||
|
|
||||||
|
return Scale * (texture?.Size ?? Vector2.Zero);
|
||||||
|
}
|
||||||
|
}
|
||||||
132
Content.Client/_Ohio/Buttons/OhioLobbyTextButtons.cs
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
using System.Numerics;
|
||||||
|
using Robust.Client.Graphics;
|
||||||
|
using Robust.Client.ResourceManagement;
|
||||||
|
using Robust.Client.UserInterface.Controls;
|
||||||
|
using SixLabors.ImageSharp;
|
||||||
|
using SixLabors.ImageSharp.PixelFormats;
|
||||||
|
using Color = Robust.Shared.Maths.Color;
|
||||||
|
|
||||||
|
namespace Content.Client._Ohio.Buttons;
|
||||||
|
|
||||||
|
[Virtual]
|
||||||
|
public class OhioLobbyTextButton : TextureButton // ShitCode Edition
|
||||||
|
{
|
||||||
|
[Dependency] private readonly IResourceCache _resourceCache = default!;
|
||||||
|
|
||||||
|
private readonly Font _font;
|
||||||
|
|
||||||
|
private string? _buttonText;
|
||||||
|
|
||||||
|
public string ButtonText
|
||||||
|
{
|
||||||
|
set => _buttonText = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OhioLobbyTextButton()
|
||||||
|
{
|
||||||
|
IoCManager.InjectDependencies(this);
|
||||||
|
|
||||||
|
_font = new VectorFont(_resourceCache.GetResource<FontResource>("/Fonts/Bedstead/Bedstead.otf"), 15);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RebuildTexture()
|
||||||
|
{
|
||||||
|
if (_buttonText == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var fontMeasure = MeasureText(_font, _buttonText);
|
||||||
|
|
||||||
|
var blank = new Image<Rgba32>((int)fontMeasure.X, (int)fontMeasure.Y);
|
||||||
|
blank[0, 0] = new Rgba32(0, 0, 0, 0);
|
||||||
|
|
||||||
|
var texture = Texture.LoadFromImage(blank);
|
||||||
|
TextureNormal = texture;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Draw(DrawingHandleScreen handle)
|
||||||
|
{
|
||||||
|
base.Draw(handle);
|
||||||
|
|
||||||
|
switch (DrawMode)
|
||||||
|
{
|
||||||
|
case DrawModeEnum.Normal:
|
||||||
|
DrawNormal(handle);
|
||||||
|
break;
|
||||||
|
case DrawModeEnum.Pressed:
|
||||||
|
DrawPressed(handle);
|
||||||
|
break;
|
||||||
|
case DrawModeEnum.Hover:
|
||||||
|
DrawHover(handle);
|
||||||
|
break;
|
||||||
|
case DrawModeEnum.Disabled:
|
||||||
|
DrawDisabled(handle);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DrawNormal(DrawingHandleScreen handle)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(_buttonText))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var color = Color.White;
|
||||||
|
|
||||||
|
if (ToggleMode)
|
||||||
|
{
|
||||||
|
color = Color.Red;
|
||||||
|
}
|
||||||
|
|
||||||
|
DrawText(handle, color);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DrawHover(DrawingHandleScreen handle)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(_buttonText))
|
||||||
|
return;
|
||||||
|
|
||||||
|
DrawText(handle, Color.Yellow);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DrawDisabled(DrawingHandleScreen handle)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(_buttonText))
|
||||||
|
return;
|
||||||
|
|
||||||
|
DrawText(handle, Color.Gray);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DrawPressed(DrawingHandleScreen handle)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(_buttonText))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var color = Pressed
|
||||||
|
? Color.Green
|
||||||
|
: Color.Red;
|
||||||
|
|
||||||
|
DrawText(handle, color);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DrawText(DrawingHandleScreen handle, Color color)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(_buttonText))
|
||||||
|
return;
|
||||||
|
|
||||||
|
RebuildTexture();
|
||||||
|
|
||||||
|
handle.DrawString(
|
||||||
|
_font,
|
||||||
|
Vector2.Zero,
|
||||||
|
_buttonText!,
|
||||||
|
color
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Vector2 MeasureText(Font font, string text)
|
||||||
|
{
|
||||||
|
var textSize = font.GetHeight(0.9f);
|
||||||
|
var width = textSize * text.Length / 1.5f;
|
||||||
|
|
||||||
|
return new Vector2(width, textSize);
|
||||||
|
}
|
||||||
|
}
|
||||||
18
Content.Client/_Ohio/Buttons/OhioUICommandButton.cs
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
using Robust.Client.UserInterface.CustomControls;
|
||||||
|
|
||||||
|
namespace Content.Client._Ohio.Buttons;
|
||||||
|
|
||||||
|
public sealed class OhioUICommandButton : OhioCommandButton
|
||||||
|
{
|
||||||
|
public Type? WindowType { get; set; }
|
||||||
|
private DefaultWindow? _window;
|
||||||
|
|
||||||
|
protected override void Execute(ButtonEventArgs obj)
|
||||||
|
{
|
||||||
|
if (WindowType == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_window = (DefaultWindow) IoCManager.Resolve<IDynamicTypeFactory>().CreateInstance(WindowType);
|
||||||
|
_window?.OpenCentered();
|
||||||
|
}
|
||||||
|
}
|
||||||
91
Content.Client/_Ohio/UI/AnimatedBackgroundControl.cs
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
using Robust.Client.Graphics;
|
||||||
|
using Robust.Client.ResourceManagement;
|
||||||
|
using Robust.Client.UserInterface.Controls;
|
||||||
|
using Robust.Shared.Graphics.RSI;
|
||||||
|
using Robust.Shared.Timing;
|
||||||
|
|
||||||
|
namespace Content.Client._Ohio.UI;
|
||||||
|
|
||||||
|
public sealed class AnimatedBackgroundControl : TextureRect
|
||||||
|
{
|
||||||
|
[Dependency] private readonly IResourceCache _resourceCache = default!;
|
||||||
|
[Dependency] private readonly IClyde _clyde = default!;
|
||||||
|
|
||||||
|
private const string RsiPath = "/Textures/Ohio/Lobby/anim.rsi";
|
||||||
|
private const int States = 1;
|
||||||
|
|
||||||
|
private IRenderTexture? _buffer;
|
||||||
|
|
||||||
|
private readonly float[] _timer = new float[States];
|
||||||
|
private readonly float[][] _frameDelays = new float[States][];
|
||||||
|
private readonly int[] _frameCounter = new int[States];
|
||||||
|
private readonly Texture[][] _frames = new Texture[States][];
|
||||||
|
|
||||||
|
public AnimatedBackgroundControl()
|
||||||
|
{
|
||||||
|
IoCManager.InjectDependencies(this);
|
||||||
|
|
||||||
|
InitializeStates();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InitializeStates()
|
||||||
|
{
|
||||||
|
var rsi = _resourceCache.GetResource<RSIResource>(RsiPath).RSI;
|
||||||
|
|
||||||
|
for (var i = 0; i < States; i++)
|
||||||
|
{
|
||||||
|
if (!rsi.TryGetState((i + 1).ToString(), out var state))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
_frames[i] = state.GetFrames(RsiDirection.South);
|
||||||
|
_frameDelays[i] = state.GetDelays();
|
||||||
|
_frameCounter[i] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void FrameUpdate(FrameEventArgs args)
|
||||||
|
{
|
||||||
|
base.FrameUpdate(args);
|
||||||
|
|
||||||
|
for (var i = 0; i < _frames.Length; i++)
|
||||||
|
{
|
||||||
|
var delays = _frameDelays[i];
|
||||||
|
if (delays.Length == 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
_timer[i] += args.DeltaSeconds * 0.20f;
|
||||||
|
|
||||||
|
var currentFrameIndex = _frameCounter[i];
|
||||||
|
|
||||||
|
if (!(_timer[i] >= delays[currentFrameIndex]))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
_timer[i] -= delays[currentFrameIndex];
|
||||||
|
_frameCounter[i] = (currentFrameIndex + 1) % _frames[i].Length;
|
||||||
|
Texture = _frames[i][_frameCounter[i]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Draw(DrawingHandleScreen handle)
|
||||||
|
{
|
||||||
|
base.Draw(handle);
|
||||||
|
|
||||||
|
if (_buffer is null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
handle.DrawTextureRect(_buffer.Texture, PixelSizeBox);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Resized()
|
||||||
|
{
|
||||||
|
base.Resized();
|
||||||
|
_buffer?.Dispose();
|
||||||
|
_buffer = _clyde.CreateRenderTarget(PixelSize, RenderTargetColorFormat.Rgba8Srgb);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
base.Dispose(disposing);
|
||||||
|
_buffer?.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
30
Content.Client/_Ohio/UI/OhioRichTextLabel.cs
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
using System.Numerics;
|
||||||
|
using Robust.Client.Graphics;
|
||||||
|
using Robust.Client.UserInterface.Controls;
|
||||||
|
|
||||||
|
namespace Content.Client._Ohio.UI;
|
||||||
|
|
||||||
|
public sealed class OhioRichTextLabel : RichTextLabel
|
||||||
|
{
|
||||||
|
private Texture? _moonTexture;
|
||||||
|
private string? _moonTexturePath = "/Textures/Ohio/Lobby/moon.png";
|
||||||
|
|
||||||
|
public OhioRichTextLabel()
|
||||||
|
{
|
||||||
|
_moonTexture = Theme.ResolveTexture(_moonTexturePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Draw(DrawingHandleScreen handle)
|
||||||
|
{
|
||||||
|
base.Draw(handle);
|
||||||
|
|
||||||
|
var moonTexture = _moonTexture;
|
||||||
|
|
||||||
|
if (moonTexture == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var moonPosition = new Vector2(SizeBox.Right + 2, SizeBox.Top + (SizeBox.Height - moonTexture.Size.Y) / 2);
|
||||||
|
|
||||||
|
handle.DrawTextureRectRegion(moonTexture, UIBox2.FromDimensions(moonPosition, moonTexture.Size));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<BoxContainer xmlns="https://spacestation14.io"
|
<BoxContainer xmlns="https://spacestation14.io"
|
||||||
Orientation="Vertical" HorizontalExpand="True">
|
Orientation="Vertical" HorizontalExpand="True">
|
||||||
<Label Text="Правила сервера White Dream"
|
<Label Text="Правила сервера Green Miracle"
|
||||||
StyleClasses="LabelHeading"
|
StyleClasses="LabelHeading"
|
||||||
HorizontalExpand="True"
|
HorizontalExpand="True"
|
||||||
HorizontalAlignment="Center"/>
|
HorizontalAlignment="Center"/>
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
<PackageReference Include="Newtonsoft.Json" />
|
<PackageReference Include="Newtonsoft.Json" />
|
||||||
<PackageVersion Include="NetCoreServer" Version="6.7.0" />
|
<PackageVersion Include="NetCoreServer" Version="6.7.0" />
|
||||||
<PackageVersion Include="Newtonsoft.Json" Version="12.0.3" />
|
<PackageVersion Include="Newtonsoft.Json" Version="12.0.3" />
|
||||||
|
<PackageVersion Remove="Microsoft.NET.ILLink.Tasks" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Content.Packaging\Content.Packaging.csproj" />
|
<ProjectReference Include="..\Content.Packaging\Content.Packaging.csproj" />
|
||||||
|
|||||||
@@ -410,13 +410,13 @@ namespace Content.Server.GameTicking
|
|||||||
"Данному виду запрещено играть на этой профессии. Вам была выдана случайная внешность с подходящим видом из вашего профиля.");
|
"Данному виду запрещено играть на этой профессии. Вам была выдана случайная внешность с подходящим видом из вашего профиля.");
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder availableSpeciesLoc = new StringBuilder();
|
var availableSpeciesLoc = new StringBuilder();
|
||||||
foreach (var specie in whitelistedSpecies)
|
foreach (var specie in whitelistedSpecies)
|
||||||
{
|
{
|
||||||
availableSpeciesLoc.AppendLine("-" + Loc.GetString($"species-name-{specie.ToLower()}"));
|
availableSpeciesLoc.AppendLine("- " + Loc.GetString($"species-name-{specie.ToLower()}"));
|
||||||
}
|
}
|
||||||
|
|
||||||
_chatManager.DispatchServerMessage(player, $"Доступные виды: \n {availableSpeciesLoc}");
|
_chatManager.DispatchServerMessage(player, $"Доступные виды:\n{availableSpeciesLoc}");
|
||||||
}
|
}
|
||||||
|
|
||||||
return character;
|
return character;
|
||||||
|
|||||||
@@ -495,7 +495,7 @@ namespace Content.Shared.CCVar
|
|||||||
/// Whether tips being shown is enabled at all.
|
/// Whether tips being shown is enabled at all.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static readonly CVarDef<bool> TipsEnabled =
|
public static readonly CVarDef<bool> TipsEnabled =
|
||||||
CVarDef.Create("tips.enabled", true);
|
CVarDef.Create("tips.enabled", false);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The dataset prototype to use when selecting a random tip.
|
/// The dataset prototype to use when selecting a random tip.
|
||||||
@@ -677,9 +677,9 @@ namespace Content.Shared.CCVar
|
|||||||
* Specific Sounds
|
* Specific Sounds
|
||||||
*/
|
*/
|
||||||
// Round end sound (APC Destroyed)
|
// Round end sound (APC Destroyed)
|
||||||
|
// hailrakes note: this thing is broken somehow. Disabled for now
|
||||||
public static readonly CVarDef<bool> RestartSoundsEnabled =
|
public static readonly CVarDef<bool> RestartSoundsEnabled =
|
||||||
CVarDef.Create("ambience.restart_sounds_enabled", true, CVar.ARCHIVE | CVar.CLIENTONLY);
|
CVarDef.Create("ambience.restart_sounds_enabled", false, CVar.ARCHIVE | CVar.CLIENTONLY);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Admin sounds
|
* Admin sounds
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ public static class ChatChannelExtensions
|
|||||||
{
|
{
|
||||||
return channel switch
|
return channel switch
|
||||||
{
|
{
|
||||||
ChatChannel.Server => Color.Orange,
|
ChatChannel.Server => Color.FromHex("#9051a8"),
|
||||||
ChatChannel.Radio => Color.LimeGreen,
|
ChatChannel.Radio => Color.LimeGreen,
|
||||||
ChatChannel.LOOC => Color.MediumTurquoise,
|
ChatChannel.LOOC => Color.MediumTurquoise,
|
||||||
ChatChannel.OOC => Color.LightSkyBlue,
|
ChatChannel.OOC => Color.LightSkyBlue,
|
||||||
|
|||||||
BIN
Resources/Audio/Lobby/bobby.ogg
Normal file
BIN
Resources/Fonts/IBMPlexMono/IBMPlexMono-Bold.ttf
Normal file
BIN
Resources/Fonts/IBMPlexMono/IBMPlexMono-BoldItalic.ttf
Normal file
BIN
Resources/Fonts/IBMPlexMono/IBMPlexMono-Italic.ttf
Normal file
BIN
Resources/Fonts/IBMPlexMono/IBMPlexMono-Regular.ttf
Normal file
93
Resources/Fonts/IBMPlexMono/LICENSE_OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
Copyright © 2017 IBM Corp. with Reserved Font Name "Plex"
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting -- in part or in whole -- any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
@@ -12,3 +12,4 @@ changelog-button-new-entries = Changelog (new!)
|
|||||||
|
|
||||||
changelog-tab-title-Changelog = Changelog
|
changelog-tab-title-Changelog = Changelog
|
||||||
changelog-tab-title-Admin = Admin
|
changelog-tab-title-Admin = Admin
|
||||||
|
changelog-tab-title-ChangelogWhite = Green Miracle
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
hud-chatbox-info = { $talk-key } для разговора, { $cycle-key } для переключения каналов.
|
hud-chatbox-info = { $cycle-key } для переключения каналов.
|
||||||
hud-chatbox-select-name-prefixed = { $prefix } { $name }
|
hud-chatbox-select-name-prefixed = { $prefix } { $name }
|
||||||
hud-chatbox-select-channel-Admin = Админ
|
hud-chatbox-select-channel-Admin = Админ
|
||||||
hud-chatbox-select-channel-Console = Консоль
|
hud-chatbox-select-channel-Console = Консоль
|
||||||
|
|||||||
@@ -8,14 +8,12 @@ game-ticker-pause-start = Начало раунда было приостано
|
|||||||
game-ticker-pause-start-resumed = Отсчет начала раунда возобновлен.
|
game-ticker-pause-start-resumed = Отсчет начала раунда возобновлен.
|
||||||
game-ticker-player-join-game-message = Добро пожаловать на Космическую Станцию 14! Если вы играете впервые, обязательно нажмите ESC на клавиатуре и прочитайте правила игры, а также не бойтесь просить помощи в "Админ помощь".
|
game-ticker-player-join-game-message = Добро пожаловать на Космическую Станцию 14! Если вы играете впервые, обязательно нажмите ESC на клавиатуре и прочитайте правила игры, а также не бойтесь просить помощи в "Админ помощь".
|
||||||
game-ticker-get-info-text =
|
game-ticker-get-info-text =
|
||||||
Привет и добро пожаловать в [color=white]Space Station 14![/color]
|
|
||||||
Текущий раунд: [color=white]#{ $roundId }[/color]
|
Текущий раунд: [color=white]#{ $roundId }[/color]
|
||||||
Текущее количество игроков: [color=white]{ $playerCount }[/color]
|
Текущее количество игроков: [color=white]{ $playerCount }[/color]
|
||||||
Текущая карта: [color=white]{ $mapName }[/color]
|
Текущая карта: [color=white]{ $mapName }[/color]
|
||||||
Текущий режим игры: [color=white]{ $gmTitle }[/color]
|
Текущий режим игры: [color=white]{ $gmTitle }[/color]
|
||||||
>[color=yellow]{ $desc }[/color]
|
|
||||||
game-ticker-get-info-preround-text =
|
game-ticker-get-info-preround-text =
|
||||||
Привет и добро пожаловать в [color=white]Space Station 14![/color]
|
|
||||||
Текущий раунд: [color=white]#{ $roundId }[/color]
|
Текущий раунд: [color=white]#{ $roundId }[/color]
|
||||||
Текущее количество игроков: [color=white]{ $playerCount }[/color] ([color=white]{ $readyCount }[/color] { $readyCount ->
|
Текущее количество игроков: [color=white]{ $playerCount }[/color] ([color=white]{ $readyCount }[/color] { $readyCount ->
|
||||||
[one] готов
|
[one] готов
|
||||||
@@ -23,7 +21,7 @@ game-ticker-get-info-preround-text =
|
|||||||
})
|
})
|
||||||
Текущая карта: [color=white]{ $mapName }[/color]
|
Текущая карта: [color=white]{ $mapName }[/color]
|
||||||
Текущий режим игры: [color=white]{ $gmTitle }[/color]
|
Текущий режим игры: [color=white]{ $gmTitle }[/color]
|
||||||
>[color=yellow]{ $desc }[/color]
|
|
||||||
game-ticker-no-map-selected = [color=red]Карта ещё не выбрана![/color]
|
game-ticker-no-map-selected = [color=red]Карта ещё не выбрана![/color]
|
||||||
game-ticker-player-no-jobs-available-when-joining = При попытке присоединиться к игре ни одной роли не было доступно.
|
game-ticker-player-no-jobs-available-when-joining = При попытке присоединиться к игре ни одной роли не было доступно.
|
||||||
# Displayed in chat to admins when a player joins
|
# Displayed in chat to admins when a player joins
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Rules
|
# Rules
|
||||||
|
|
||||||
ui-rules-header = Правила сервера White Dream
|
ui-rules-header = Правила сервера Green Miracle
|
||||||
ui-rules-header-rp = Правила сервера White Dream
|
ui-rules-header-rp = Правила сервера Green Miracle
|
||||||
ui-rules-accept = Я ознакомился и согласен следовать правилам
|
ui-rules-accept = Я ознакомился и согласен следовать правилам
|
||||||
ui-rules-wait = Кнопка принятия будет разблокирована через { $time } секунд.
|
ui-rules-wait = Кнопка принятия будет разблокирована через { $time } секунд.
|
||||||
|
|||||||
@@ -19,5 +19,4 @@
|
|||||||
- type: soundCollection
|
- type: soundCollection
|
||||||
id: LobbyMusic
|
id: LobbyMusic
|
||||||
files:
|
files:
|
||||||
- /Audio/Lobby/saveheaven.ogg
|
- /Audio/Lobby/bobby.ogg
|
||||||
- /Audio/Lobby/roomishere.ogg
|
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
- type: font
|
- type: font
|
||||||
id: Default
|
id: Default
|
||||||
path: /Fonts/NotoSans/NotoSans-Regular.ttf
|
path: /Fonts/IBMPlexMono/IBMPlexMono-Regular.ttf
|
||||||
|
|
||||||
- type: font
|
- type: font
|
||||||
id: DefaultItalic
|
id: DefaultItalic
|
||||||
path: /Fonts/NotoSans/NotoSans-Italic.ttf
|
path: /Fonts/IBMPlexMono/IBMPlexMono-Italic.ttf
|
||||||
|
|
||||||
- type: font
|
- type: font
|
||||||
id: DefaultBold
|
id: DefaultBold
|
||||||
path: /Fonts/NotoSans/NotoSans-Bold.ttf
|
path: /Fonts/IBMPlexMono/IBMPlexMono-Bold.ttf
|
||||||
|
|
||||||
- type: font
|
- type: font
|
||||||
id: DefaultBoldItalic
|
id: DefaultBoldItalic
|
||||||
path: /Fonts/NotoSans/NotoSans-BoldItalic.ttf
|
path: /Fonts/IBMPlexMono/IBMPlexMono-BoldItalic.ttf
|
||||||
|
|
||||||
- type: font
|
- type: font
|
||||||
id: NotoSansDisplay
|
id: NotoSansDisplay
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 140 B After Width: | Height: | Size: 88 B |
@@ -1,16 +1,39 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<svg
|
<svg
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="20"
|
width="20"
|
||||||
height="19.999998"
|
height="19.999998"
|
||||||
viewBox="0 0 5.2916661 5.2916662"
|
viewBox="0 0 5.2916661 5.2916662"
|
||||||
version="1.1"
|
version="1.1"
|
||||||
id="svg8"
|
id="svg8"
|
||||||
style="enable-background:new">
|
style="enable-background:new"
|
||||||
|
sodipodi:docname="checkbox_checked.svg"
|
||||||
|
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview15"
|
||||||
|
pagecolor="#505050"
|
||||||
|
bordercolor="#eeeeee"
|
||||||
|
borderopacity="1"
|
||||||
|
inkscape:showpageshadow="0"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#505050"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="21.575002"
|
||||||
|
inkscape:cx="17.775201"
|
||||||
|
inkscape:cy="6.5353412"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1017"
|
||||||
|
inkscape:window-x="-8"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg8" />
|
||||||
<defs
|
<defs
|
||||||
id="defs2">
|
id="defs2">
|
||||||
<marker
|
<marker
|
||||||
@@ -27,7 +50,11 @@
|
|||||||
</marker>
|
</marker>
|
||||||
<filter
|
<filter
|
||||||
style="color-interpolation-filters:sRGB"
|
style="color-interpolation-filters:sRGB"
|
||||||
id="filter9714">
|
id="filter9714"
|
||||||
|
x="-0.11111111"
|
||||||
|
y="-0.11111112"
|
||||||
|
width="1.2222222"
|
||||||
|
height="1.2222222">
|
||||||
<feBlend
|
<feBlend
|
||||||
mode="normal"
|
mode="normal"
|
||||||
in2="BackgroundImage"
|
in2="BackgroundImage"
|
||||||
@@ -42,7 +69,7 @@
|
|||||||
<dc:format>image/svg+xml</dc:format>
|
<dc:format>image/svg+xml</dc:format>
|
||||||
<dc:type
|
<dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
<dc:title></dc:title>
|
<dc:title />
|
||||||
</cc:Work>
|
</cc:Work>
|
||||||
</rdf:RDF>
|
</rdf:RDF>
|
||||||
</metadata>
|
</metadata>
|
||||||
@@ -56,24 +83,24 @@
|
|||||||
height="5.1954541"
|
height="5.1954541"
|
||||||
x="78.147339"
|
x="78.147339"
|
||||||
y="142.25995"
|
y="142.25995"
|
||||||
style="display:inline;fill:#3d4059;fill-opacity:1;fill-rule:nonzero;stroke:#3d4059;stroke-width:1.15454543;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers"
|
style="display:inline;fill:#282828;fill-opacity:1;fill-rule:nonzero;stroke:#282828;stroke-width:1.15454543;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
ry="0.5931561" />
|
ry="0.5931561" />
|
||||||
</g>
|
</g>
|
||||||
<g
|
<g
|
||||||
id="layer2"
|
id="layer2"
|
||||||
style="opacity:1"
|
style="opacity:1;stroke-width:1.00002114;stroke-dasharray:none"
|
||||||
transform="matrix(0.84876535,0,0,0.84876535,-2.7438235,-11.726601)">
|
transform="matrix(0.84876535,0,0,0.84876535,-2.7438235,-11.726601)">
|
||||||
<g
|
<g
|
||||||
id="g9680"
|
id="g9680"
|
||||||
transform="matrix(0.25712973,0.25712973,-0.25712973,0.25712973,12.687721,15.603163)"
|
transform="matrix(0.25712973,0.25712973,-0.25712973,0.25712973,12.687721,15.603163)"
|
||||||
style="fill:#a88b5e;fill-opacity:1">
|
style="fill:#5f5f5f;fill-opacity:1;stroke-width:2.75005822;stroke-dasharray:none">
|
||||||
<rect
|
<rect
|
||||||
y="8.996666"
|
y="8.996666"
|
||||||
x="-9.5863533"
|
x="-9.5863533"
|
||||||
height="10.583333"
|
height="10.583333"
|
||||||
width="1.8520833"
|
width="1.8520833"
|
||||||
id="rect9671"
|
id="rect9671"
|
||||||
style="fill:#a88b5e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.17499995;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
style="fill:#5f5f5f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.75005822;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
||||||
rx="0.52916664" />
|
rx="0.52916664" />
|
||||||
<rect
|
<rect
|
||||||
y="17.727915"
|
y="17.727915"
|
||||||
@@ -81,7 +108,7 @@
|
|||||||
height="1.8520832"
|
height="1.8520832"
|
||||||
width="5.2916665"
|
width="5.2916665"
|
||||||
id="rect9673"
|
id="rect9673"
|
||||||
style="fill:#a88b5e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.17499971;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
style="fill:#5f5f5f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.75005822;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
||||||
rx="0.52916664" />
|
rx="0.52916664" />
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 247 B After Width: | Height: | Size: 333 B |
@@ -1,15 +1,38 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<svg
|
<svg
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="20"
|
width="20"
|
||||||
height="20"
|
height="20"
|
||||||
viewBox="0 0 5.2916661 5.2916667"
|
viewBox="0 0 5.2916661 5.2916667"
|
||||||
version="1.1"
|
version="1.1"
|
||||||
id="svg8">
|
id="svg8"
|
||||||
|
sodipodi:docname="checkbox_unchecked.svg"
|
||||||
|
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview9"
|
||||||
|
pagecolor="#505050"
|
||||||
|
bordercolor="#eeeeee"
|
||||||
|
borderopacity="1"
|
||||||
|
inkscape:showpageshadow="0"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#505050"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="43.15"
|
||||||
|
inkscape:cx="7.9606025"
|
||||||
|
inkscape:cy="9.9884125"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1017"
|
||||||
|
inkscape:window-x="-8"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg8" />
|
||||||
<defs
|
<defs
|
||||||
id="defs2">
|
id="defs2">
|
||||||
<marker
|
<marker
|
||||||
@@ -33,7 +56,7 @@
|
|||||||
<dc:format>image/svg+xml</dc:format>
|
<dc:format>image/svg+xml</dc:format>
|
||||||
<dc:type
|
<dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
<dc:title></dc:title>
|
<dc:title />
|
||||||
</cc:Work>
|
</cc:Work>
|
||||||
</rdf:RDF>
|
</rdf:RDF>
|
||||||
</metadata>
|
</metadata>
|
||||||
@@ -46,7 +69,7 @@
|
|||||||
height="5.1954546"
|
height="5.1954546"
|
||||||
x="78.147339"
|
x="78.147339"
|
||||||
y="142.25995"
|
y="142.25995"
|
||||||
style="fill:none;stroke:#3d4059;stroke-width:1.15454543;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers"
|
style="fill:none;stroke:#282828;stroke-width:1.15454543;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
ry="0.5931561" />
|
ry="0.5931561" />
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 204 B After Width: | Height: | Size: 252 B |
|
Before Width: | Height: | Size: 140 B After Width: | Height: | Size: 88 B |
|
Before Width: | Height: | Size: 163 B After Width: | Height: | Size: 139 B |
BIN
Resources/Textures/Interface/Nano/lobby_gay.png
Normal file
|
After Width: | Height: | Size: 1023 B |
@@ -2,23 +2,23 @@
|
|||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
<svg
|
<svg
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="32"
|
width="32"
|
||||||
height="32"
|
height="32"
|
||||||
viewBox="0 0 8.4666666 8.4666669"
|
viewBox="0 0 8.4666666 8.4666669"
|
||||||
version="1.1"
|
version="1.1"
|
||||||
id="svg1057"
|
id="svg1057"
|
||||||
inkscape:version="0.92.4 5da689c313, 2019-01-14"
|
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||||
sodipodi:docname="stripback.svg"
|
sodipodi:docname="stripeback.svg"
|
||||||
inkscape:export-filename="/ssdhome/pj/Projects/space-station-14-content/Resources/Textures/Interface/Nano/stripeback.png"
|
inkscape:export-filename="/ssdhome/pj/Projects/space-station-14-content/Resources/Textures/Interface/Nano/stripeback.png"
|
||||||
inkscape:export-xdpi="96"
|
inkscape:export-xdpi="96"
|
||||||
inkscape:export-ydpi="96">
|
inkscape:export-ydpi="96"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
<defs
|
<defs
|
||||||
id="defs1051" />
|
id="defs1051" />
|
||||||
<sodipodi:namedview
|
<sodipodi:namedview
|
||||||
@@ -29,18 +29,20 @@
|
|||||||
inkscape:pageopacity="0.0"
|
inkscape:pageopacity="0.0"
|
||||||
inkscape:pageshadow="2"
|
inkscape:pageshadow="2"
|
||||||
inkscape:zoom="22.627417"
|
inkscape:zoom="22.627417"
|
||||||
inkscape:cx="15.032227"
|
inkscape:cx="11.203223"
|
||||||
inkscape:cy="17.599459"
|
inkscape:cy="17.633475"
|
||||||
inkscape:document-units="px"
|
inkscape:document-units="px"
|
||||||
inkscape:current-layer="layer1"
|
inkscape:current-layer="layer1"
|
||||||
showgrid="false"
|
showgrid="false"
|
||||||
units="px"
|
units="px"
|
||||||
inkscape:pagecheckerboard="true"
|
inkscape:pagecheckerboard="true"
|
||||||
inkscape:window-width="1920"
|
inkscape:window-width="1920"
|
||||||
inkscape:window-height="1043"
|
inkscape:window-height="1017"
|
||||||
inkscape:window-x="0"
|
inkscape:window-x="-8"
|
||||||
inkscape:window-y="0"
|
inkscape:window-y="-8"
|
||||||
inkscape:window-maximized="1" />
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:showpageshadow="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1" />
|
||||||
<metadata
|
<metadata
|
||||||
id="metadata1054">
|
id="metadata1054">
|
||||||
<rdf:RDF>
|
<rdf:RDF>
|
||||||
@@ -49,7 +51,7 @@
|
|||||||
<dc:format>image/svg+xml</dc:format>
|
<dc:format>image/svg+xml</dc:format>
|
||||||
<dc:type
|
<dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
<dc:title></dc:title>
|
<dc:title />
|
||||||
</cc:Work>
|
</cc:Work>
|
||||||
</rdf:RDF>
|
</rdf:RDF>
|
||||||
</metadata>
|
</metadata>
|
||||||
@@ -59,7 +61,7 @@
|
|||||||
id="layer1"
|
id="layer1"
|
||||||
transform="translate(0,-288.53331)">
|
transform="translate(0,-288.53331)">
|
||||||
<rect
|
<rect
|
||||||
style="opacity:1;vector-effect:none;fill:#1e1e22;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.44710034;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
style="opacity:1;vector-effect:none;fill:#1e1e1e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.44710034;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
id="rect1707"
|
id="rect1707"
|
||||||
width="8.4666672"
|
width="8.4666672"
|
||||||
height="8.4666672"
|
height="8.4666672"
|
||||||
@@ -73,9 +75,9 @@
|
|||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="rect1602"
|
id="rect1602"
|
||||||
d="m 0,294.88331 v -4.23333 l 6.3500001,6.34999 H 2.1166667 Z"
|
d="m 0,294.88331 v -4.23333 l 6.3500001,6.34999 H 2.1166667 Z"
|
||||||
style="opacity:1;vector-effect:none;fill:#262626;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.18526772;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
style="opacity:1;vector-effect:none;fill:#282828;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.18526772;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
<path
|
<path
|
||||||
style="opacity:1;vector-effect:none;fill:#262626;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.18526772;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
style="opacity:1;vector-effect:none;fill:#282828;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.18526772;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
d="m 8.4666667,290.64998 v 4.23333 l -6.35,-6.35 h 4.2333334 z"
|
d="m 8.4666667,290.64998 v 4.23333 l -6.35,-6.35 h 4.2333334 z"
|
||||||
id="path1665"
|
id="path1665"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 202 B After Width: | Height: | Size: 251 B |
|
Before Width: | Height: | Size: 155 B After Width: | Height: | Size: 123 B |
|
Before Width: | Height: | Size: 155 B After Width: | Height: | Size: 102 B |
|
Before Width: | Height: | Size: 147 B After Width: | Height: | Size: 88 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 103 B |
|
Before Width: | Height: | Size: 141 B After Width: | Height: | Size: 105 B |
|
Before Width: | Height: | Size: 140 B After Width: | Height: | Size: 88 B |
|
Before Width: | Height: | Size: 131 B After Width: | Height: | Size: 81 B |
|
Before Width: | Height: | Size: 131 B After Width: | Height: | Size: 85 B |
BIN
Resources/Textures/Ohio/Lobby/anim.rsi/1.png
Normal file
|
After Width: | Height: | Size: 909 KiB |
21
Resources/Textures/Ohio/Lobby/anim.rsi/meta.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"license": null,
|
||||||
|
"copyright": null,
|
||||||
|
"size": {
|
||||||
|
"x": 480,
|
||||||
|
"y": 480
|
||||||
|
},
|
||||||
|
"states": [
|
||||||
|
{
|
||||||
|
"name": "1",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
Resources/Textures/Ohio/Lobby/arrow.png
Normal file
|
After Width: | Height: | Size: 200 B |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 27 KiB |
BIN
Resources/Textures/Ohio/Lobby/disabled.png
Normal file
|
After Width: | Height: | Size: 451 B |
BIN
Resources/Textures/Ohio/Lobby/join/join_game.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
Resources/Textures/Ohio/Lobby/join/join_game_highlighted.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
Resources/Textures/Ohio/Lobby/join/join_game_pressed.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
Resources/Textures/Ohio/Lobby/moon.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
Resources/Textures/Ohio/Lobby/observe/observe.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
Resources/Textures/Ohio/Lobby/observe/observe_disabled.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
Resources/Textures/Ohio/Lobby/observe/observe_highlighted.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
Resources/Textures/Ohio/Lobby/observe/observe_pressed.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
Resources/Textures/Ohio/Lobby/ready/not_ready.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
Resources/Textures/Ohio/Lobby/ready/not_ready_highlighted.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
Resources/Textures/Ohio/Lobby/ready/not_ready_pressed.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
Resources/Textures/Ohio/Lobby/ready/ready.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
Resources/Textures/Ohio/Lobby/ready/ready_highlighted.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
Resources/Textures/Ohio/Lobby/ready/ready_pressed.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
Resources/Textures/Ohio/Lobby/settings/settings.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
Resources/Textures/Ohio/Lobby/settings/settings_highlighted.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
Resources/Textures/Ohio/Lobby/settings/settings_pressed.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
@@ -1,5 +1,5 @@
|
|||||||
defaultWindowTitle: White Dream 14
|
defaultWindowTitle: Green Miracle
|
||||||
windowIconSet: /Textures/Logo/icon
|
windowIconSet: /Textures/Logo/icon
|
||||||
splashLogo: /Textures/Logo/logo-ru.png
|
splashLogo: /Textures/Logo/logo.png
|
||||||
|
|
||||||
# PJB PLEASE
|
# PJB PLEASE
|
||||||
|
|||||||