diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 2c74388c0c..bb86a1f798 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -8,4 +8,4 @@ /Resources/Maps/** @Morb0 @DIMMoon1 @kvant8 # Sprites -/Resources/Textures/** @Morb0 @DIMMoon1 @MureixloI +/Resources/Textures/** @Morb0 @DIMMoon1 @Svist666s diff --git a/.github/labeler.yml b/.github/labeler.yml index d3758efe3d..6685b12cbf 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,4 +1,4 @@ -"Changes: Sprites": +"Changes: Sprites": - changed-files: - any-glob-to-any-file: '**/*.rsi/*.png' diff --git a/.github/workflows/build-map-renderer.yml b/.github/workflows/build-map-renderer.yml index a20023a057..851c4339e9 100644 --- a/.github/workflows/build-map-renderer.yml +++ b/.github/workflows/build-map-renderer.yml @@ -1,4 +1,4 @@ -name: Build & Test Map Renderer +name: Build & Test Map Renderer on: push: diff --git a/.github/workflows/build-test-debug.yml b/.github/workflows/build-test-debug.yml index a01d09f60a..eadef4d50e 100644 --- a/.github/workflows/build-test-debug.yml +++ b/.github/workflows/build-test-debug.yml @@ -20,7 +20,7 @@ jobs: os: [ubuntu-latest] runs-on: ${{ matrix.os }} - timeout-minutes: 30 + timeout-minutes: 50 steps: - name: Checkout Master diff --git a/.github/workflows/check-crlf.yml b/.github/workflows/check-crlf.yml index 5e4b0d0341..3ae3c4121f 100644 --- a/.github/workflows/check-crlf.yml +++ b/.github/workflows/check-crlf.yml @@ -1,4 +1,4 @@ -name: CRLF Check +name: CRLF Check on: pull_request: diff --git a/.github/workflows/labeler-needsreview.yml b/.github/workflows/labeler-needsreview.yml index d3373ce91d..7499d200a0 100644 --- a/.github/workflows/labeler-needsreview.yml +++ b/.github/workflows/labeler-needsreview.yml @@ -1,4 +1,4 @@ -name: "Labels: Review" +name: "Labels: Review" on: pull_request_target: diff --git a/.github/workflows/labeler-pr.yml b/.github/workflows/labeler-pr.yml index 5e72630e4a..bd461bae69 100644 --- a/.github/workflows/labeler-pr.yml +++ b/.github/workflows/labeler-pr.yml @@ -1,4 +1,4 @@ -name: "Labels: PR" +name: "Labels: PR" on: - pull_request_target diff --git a/.github/workflows/labeler-untriaged.yml b/.github/workflows/labeler-untriaged.yml index ec1d194851..5a7e4a51e7 100644 --- a/.github/workflows/labeler-untriaged.yml +++ b/.github/workflows/labeler-untriaged.yml @@ -1,4 +1,4 @@ -name: "Labels: Untriaged" +name: "Labels: Untriaged" on: issues: diff --git a/.github/workflows/publish-testing.yml b/.github/workflows/publish-testing.yml index a8c1f45cfd..0863202d05 100644 --- a/.github/workflows/publish-testing.yml +++ b/.github/workflows/publish-testing.yml @@ -17,6 +17,8 @@ jobs: - uses: actions/checkout@v7 with: submodules: 'recursive' + fetch-depth: 0 + filter: blob:none - name: Setup .NET Core uses: actions/setup-dotnet@v5 with: @@ -35,7 +37,7 @@ jobs: - name: Update changelog run: | - dotnet tool install --global SpaceWizards.ChangelogTool --version 1.0.7 + dotnet tool install --global SpaceWizards.ChangelogTool --version 1.0.8 ss14-changelog update -d Resources/Changelog env: REPO: ${{ github.repository }} diff --git a/.vscode/launch.json b/.vscode/launch.json index 5390b91409..1d339fc7a1 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -52,4 +52,4 @@ "preLaunchTask": "build" } ] -} \ No newline at end of file +} diff --git a/Content.Benchmarks/ComponentQueryBenchmark.cs b/Content.Benchmarks/ComponentQueryBenchmark.cs index 942fb10d71..883ad2891c 100644 --- a/Content.Benchmarks/ComponentQueryBenchmark.cs +++ b/Content.Benchmarks/ComponentQueryBenchmark.cs @@ -1,4 +1,4 @@ -#nullable enable +#nullable enable using System; using System.IO; using System.Runtime.CompilerServices; diff --git a/Content.Benchmarks/DestructibleBenchmark.cs b/Content.Benchmarks/DestructibleBenchmark.cs index 58c834c0ae..10f9718d9a 100644 --- a/Content.Benchmarks/DestructibleBenchmark.cs +++ b/Content.Benchmarks/DestructibleBenchmark.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.IO; using System.Threading.Tasks; using BenchmarkDotNet.Attributes; diff --git a/Content.Benchmarks/DeviceNetworkingBenchmark.cs b/Content.Benchmarks/DeviceNetworkingBenchmark.cs index fcde4feb64..be68dcefd0 100644 --- a/Content.Benchmarks/DeviceNetworkingBenchmark.cs +++ b/Content.Benchmarks/DeviceNetworkingBenchmark.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.IO; using System.Threading.Tasks; using BenchmarkDotNet.Attributes; @@ -6,7 +6,6 @@ using Content.IntegrationTests; using Content.IntegrationTests.Pair; using Content.IntegrationTests.Tests.DeviceNetwork; using Content.Server.DeviceNetwork.Systems; -using Content.Shared.DeviceNetwork; using Robust.Shared; using Robust.Shared.Analyzers; using Robust.Shared.GameObjects; @@ -26,9 +25,6 @@ public class DeviceNetworkingBenchmark private readonly List _targetEntities = new(); private readonly List _targetWirelessEntities = new(); - - private NetworkPayload _payload = default!; - [TestPrototypes] private const string Prototypes = @" - type: entity @@ -54,7 +50,7 @@ public class DeviceNetworkingBenchmark //public static IEnumerable EntityCountSource { get; set; } //[ParamsSource(nameof(EntityCountSource))] - public int EntityCount = 500; + public int EntityCount = 1000; [GlobalSetup] public async Task SetupAsync() @@ -70,14 +66,6 @@ public class DeviceNetworkingBenchmark _deviceNetworkSystem = entityManager.EntitySysManager.GetEntitySystem(); _deviceNetTestSystem = entityManager.EntitySysManager.GetEntitySystem(); - var testValue = "test"; - _payload = new NetworkPayload - { - ["Test"] = testValue, - ["testnumber"] = 1, - ["testbool"] = true - }; - _sourceEntity = entityManager.SpawnEntity("DummyNetworkDevicePrivate", MapCoordinates.Nullspace); _sourceWirelessEntity = entityManager.SpawnEntity("DummyWirelessNetworkDevice", MapCoordinates.Nullspace); @@ -120,7 +108,13 @@ public class DeviceNetworkingBenchmark _pair.Server.Post(() => { - _deviceNetworkSystem.QueuePacket(_sourceEntity, null, _payload, 100); + var payload = new TestPayload + { + TestString = "test", + TestNumber = 1, + TestBool = true, + }; + _deviceNetworkSystem.SendPacket(_sourceEntity, null, ref payload, 100); }); await server.WaitRunTicks(1); @@ -134,7 +128,53 @@ public class DeviceNetworkingBenchmark _pair.Server.Post(() => { - _deviceNetworkSystem.QueuePacket(_sourceWirelessEntity, null, _payload, 100); + var payload = new TestPayload + { + TestString = "test", + TestNumber = 1, + TestBool = true, + }; + _deviceNetworkSystem.SendPacket(_sourceWirelessEntity, null, ref payload, 100); + }); + + await server.WaitRunTicks(1); + await server.WaitIdleAsync(); + } + + [Benchmark(Description = "Device Net Broadcast No Connection Checks (Class payload)")] + public async Task DeviceNetworkBroadcastNoConnectionChecksClass() + { + var server = _pair.Server; + + _pair.Server.Post(() => + { + var payload = new TestPayloadClass + { + TestString = "test", + TestNumber = 1, + TestBool = true, + }; + _deviceNetworkSystem.SendPacket(_sourceEntity, null, ref payload, 100); + }); + + await server.WaitRunTicks(1); + await server.WaitIdleAsync(); + } + + [Benchmark(Description = "Device Net Broadcast Wireless Connection Checks (Class payload)")] + public async Task DeviceNetworkBroadcastWirelessConnectionChecksClass() + { + var server = _pair.Server; + + _pair.Server.Post(() => + { + var payload = new TestPayloadClass + { + TestString = "test", + TestNumber = 1, + TestBool = true, + }; + _deviceNetworkSystem.SendPacket(_sourceWirelessEntity, null, ref payload, 100); }); await server.WaitRunTicks(1); diff --git a/Content.Benchmarks/HeatCapacityBenchmark.cs b/Content.Benchmarks/HeatCapacityBenchmark.cs index 18366306d7..1361f23280 100644 --- a/Content.Benchmarks/HeatCapacityBenchmark.cs +++ b/Content.Benchmarks/HeatCapacityBenchmark.cs @@ -1,4 +1,4 @@ -using System.IO; +using System.IO; using System.Threading.Tasks; using BenchmarkDotNet.Attributes; using Content.IntegrationTests; diff --git a/Content.Benchmarks/NetSerializerIntBenchmark.cs b/Content.Benchmarks/NetSerializerIntBenchmark.cs index 42afc80a1b..591e0fa00a 100644 --- a/Content.Benchmarks/NetSerializerIntBenchmark.cs +++ b/Content.Benchmarks/NetSerializerIntBenchmark.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Buffers.Binary; using System.IO; using BenchmarkDotNet.Attributes; diff --git a/Content.Benchmarks/Program.cs b/Content.Benchmarks/Program.cs index 6f1f4e6f19..249c7cb03a 100644 --- a/Content.Benchmarks/Program.cs +++ b/Content.Benchmarks/Program.cs @@ -1,4 +1,4 @@ -using System; +using System; using BenchmarkDotNet.Running; using BenchmarkDotNet.Configs; using Robust.Benchmarks.Configs; diff --git a/Content.Benchmarks/PvsBenchmark.cs b/Content.Benchmarks/PvsBenchmark.cs index ab4e7981d2..44be7ee61e 100644 --- a/Content.Benchmarks/PvsBenchmark.cs +++ b/Content.Benchmarks/PvsBenchmark.cs @@ -1,4 +1,4 @@ -#nullable enable +#nullable enable using System; using System.IO; using System.Linq; diff --git a/Content.Benchmarks/RaiseEventBenchmark.cs b/Content.Benchmarks/RaiseEventBenchmark.cs index b8c6bd7d47..c72b287115 100644 --- a/Content.Benchmarks/RaiseEventBenchmark.cs +++ b/Content.Benchmarks/RaiseEventBenchmark.cs @@ -1,4 +1,4 @@ -#nullable enable +#nullable enable using System.IO; using System.Runtime.CompilerServices; using System.Threading.Tasks; diff --git a/Content.Benchmarks/SpawnEquipDeleteBenchmark.cs b/Content.Benchmarks/SpawnEquipDeleteBenchmark.cs index b6d5427480..17ab72b7b3 100644 --- a/Content.Benchmarks/SpawnEquipDeleteBenchmark.cs +++ b/Content.Benchmarks/SpawnEquipDeleteBenchmark.cs @@ -1,10 +1,10 @@ -using System.IO; +using System.IO; using System.Threading.Tasks; using BenchmarkDotNet.Attributes; using Content.IntegrationTests; using Content.IntegrationTests.Pair; -using Content.Server.Station.Systems; using Content.Shared.Roles; +using Content.Shared.Station.Systems; using Robust.Shared; using Robust.Shared.Analyzers; using Robust.Shared.GameObjects; diff --git a/Content.Client/Access/AccessOverlay.cs b/Content.Client/Access/AccessOverlay.cs index 59c9441036..f0f2890d24 100644 --- a/Content.Client/Access/AccessOverlay.cs +++ b/Content.Client/Access/AccessOverlay.cs @@ -88,7 +88,7 @@ public sealed class AccessOverlay : Overlay var accessInfoText = textBuffer.ToString(); var screenPos = args.ViewportControl.WorldToScreen(_transformSystem.GetWorldPosition(transform)); - args.ScreenHandle.DrawString(_font, screenPos, accessInfoText, Color.Gold); + args.ScreenHandle.DrawString(_font, screenPos, accessInfoText, 1, Color.Gold, TextOutline.Default); } } } diff --git a/Content.Client/Access/IdCardSystem.cs b/Content.Client/Access/IdCardSystem.cs index 24725d980c..80a3f12a54 100644 --- a/Content.Client/Access/IdCardSystem.cs +++ b/Content.Client/Access/IdCardSystem.cs @@ -1,4 +1,4 @@ -using Content.Shared.Access.Systems; +using Content.Shared.Access.Systems; namespace Content.Client.Access; diff --git a/Content.Client/Access/Systems/JobStatusSystem.cs b/Content.Client/Access/Systems/JobStatusSystem.cs index 0b4ef98720..f763f1a42a 100644 --- a/Content.Client/Access/Systems/JobStatusSystem.cs +++ b/Content.Client/Access/Systems/JobStatusSystem.cs @@ -1,4 +1,4 @@ -using Content.Client.Overlays; +using Content.Client.Overlays; using Content.Shared.Access.Systems; using Content.Shared.StatusIcon; using Content.Shared.StatusIcon.Components; @@ -11,8 +11,8 @@ public sealed partial class JobStatusSystem : SharedJobStatusSystem [Dependency] private ShowJobIconsSystem _showJobIcons = default!; [Dependency] private ShowCrewIconsSystem _showCrewIcons = default!; - private static readonly ProtoId CrewBorderIcon = "CrewBorderIcon"; - private static readonly ProtoId CrewUncertainBorderIcon = "CrewUncertainBorderIcon"; + private static readonly ProtoId CrewBorderIcon = "CrewBorderIcon"; + private static readonly ProtoId CrewUncertainBorderIcon = "CrewUncertainBorderIcon"; public override void Initialize() { diff --git a/Content.Client/Access/UI/AgentIDCardWindow.xaml b/Content.Client/Access/UI/AgentIDCardWindow.xaml index 6030851114..aa08172567 100644 --- a/Content.Client/Access/UI/AgentIDCardWindow.xaml +++ b/Content.Client/Access/UI/AgentIDCardWindow.xaml @@ -38,7 +38,7 @@ - + diff --git a/Content.Client/Access/UI/GroupedAccessLevelChecklist.xaml b/Content.Client/Access/UI/GroupedAccessLevelChecklist.xaml index 84d581487d..6eeed8a555 100644 --- a/Content.Client/Access/UI/GroupedAccessLevelChecklist.xaml +++ b/Content.Client/Access/UI/GroupedAccessLevelChecklist.xaml @@ -1,5 +1,5 @@ - - - - - + diff --git a/Content.Client/Administration/AdminNameOverlay.cs b/Content.Client/Administration/AdminNameOverlay.cs index 5951dff2e1..ae3d95800b 100644 --- a/Content.Client/Administration/AdminNameOverlay.cs +++ b/Content.Client/Administration/AdminNameOverlay.cs @@ -2,7 +2,7 @@ using System.Collections.Frozen; using System.Linq; using System.Numerics; using Content.Client.Administration.Systems; -using Content.Client.Stylesheets; +using Content.Client.Stylesheets.Fonts; using Content.Shared.Administration; using Content.Shared.CCVar; using Content.Shared.Ghost.Components; @@ -64,8 +64,9 @@ internal sealed class AdminNameOverlay : Overlay _prototypeManager = prototypeManager; ZIndex = 200; // Setting these to a specific ttf would break the antag symbols - _font = resourceCache.NotoStack(); - _fontBold = resourceCache.NotoStack(variation: "Bold"); + var fontStack = new NotoFontFamilyStack(resourceCache); + _font = fontStack.GetFont(10); + _fontBold = fontStack.GetFont(10, FontKind.Bold); config.OnValueChanged(CCVars.AdminOverlayAntagFormat, (show) => { _overlayFormat = UpdateOverlayFormat(show); }, true); config.OnValueChanged(CCVars.AdminOverlaySymbolStyle, (show) => { _overlaySymbolStyle = UpdateOverlaySymbolStyle(show); }, true); @@ -187,16 +188,18 @@ internal sealed class AdminNameOverlay : Overlay } } + var outline = TextOutline.Default with { Color = TextOutline.Default.Color.WithAlpha(alpha) }; + // Character name var color = Color.Aquamarine; color.A = alpha; - args.ScreenHandle.DrawString(_font, screenCoordinates + currentOffset, playerInfo.CharacterName, uiScale, playerInfo.Connected ? color : colorDisconnected); + args.ScreenHandle.DrawString(_font, screenCoordinates + currentOffset, playerInfo.CharacterName, uiScale, playerInfo.Connected ? color : colorDisconnected, outline); currentOffset += lineoffset; // Username color = Color.Yellow; color.A = alpha; - args.ScreenHandle.DrawString(_font, screenCoordinates + currentOffset, playerInfo.Username, uiScale, playerInfo.Connected ? color : colorDisconnected); + args.ScreenHandle.DrawString(_font, screenCoordinates + currentOffset, playerInfo.Username, uiScale, playerInfo.Connected ? color : colorDisconnected, outline); currentOffset += lineoffset; // Playtime @@ -204,7 +207,7 @@ internal sealed class AdminNameOverlay : Overlay { color = Color.Orange; color.A = alpha; - args.ScreenHandle.DrawString(_font, screenCoordinates + currentOffset, playerInfo.PlaytimeString, uiScale, playerInfo.Connected ? color : colorDisconnected); + args.ScreenHandle.DrawString(_font, screenCoordinates + currentOffset, playerInfo.PlaytimeString, uiScale, playerInfo.Connected ? color : colorDisconnected, outline); currentOffset += lineoffset; } @@ -213,7 +216,7 @@ internal sealed class AdminNameOverlay : Overlay { color = Color.GreenYellow; color.A = alpha; - args.ScreenHandle.DrawString(_font, screenCoordinates + currentOffset, playerInfo.StartingJob, uiScale, playerInfo.Connected ? color : colorDisconnected); + args.ScreenHandle.DrawString(_font, screenCoordinates + currentOffset, playerInfo.StartingJob, uiScale, playerInfo.Connected ? color : colorDisconnected, outline); currentOffset += lineoffset; } @@ -264,7 +267,7 @@ internal sealed class AdminNameOverlay : Overlay var label = !string.IsNullOrEmpty(symbol) ? Loc.GetString("player-tab-character-name-antag-symbol", ("symbol", symbol), ("name", text)) : text; - args.ScreenHandle.DrawString(_fontBold, screenCoordinates + currentOffset, label, uiScale, color); + args.ScreenHandle.DrawString(_fontBold, screenCoordinates + currentOffset, label, uiScale, color, outline); currentOffset += lineoffset; //Save the coordinates and size of the text block, for stack merge check diff --git a/Content.Client/Administration/AdminOverlayCommand.cs b/Content.Client/Administration/AdminOverlayCommand.cs index afad7a4aef..67b5a564b6 100644 --- a/Content.Client/Administration/AdminOverlayCommand.cs +++ b/Content.Client/Administration/AdminOverlayCommand.cs @@ -1,4 +1,4 @@ -using Content.Client.Administration.Systems; +using Content.Client.Administration.Systems; using Content.Shared.Commands; using Robust.Shared.Console; diff --git a/Content.Client/Administration/AdminQuickInfoSystem.cs b/Content.Client/Administration/AdminQuickInfoSystem.cs index 846dd3f0f0..778d33a221 100644 --- a/Content.Client/Administration/AdminQuickInfoSystem.cs +++ b/Content.Client/Administration/AdminQuickInfoSystem.cs @@ -1,3 +1,4 @@ +using Content.Client.UserInterface.Controls; using System.Linq; using Content.Client.Administration.Systems; using Content.Client.Stylesheets; @@ -5,7 +6,6 @@ using Content.Shared.Administration; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Shared.Console; -using Robust.Shared.Prototypes; using Robust.Shared.RichText; using Robust.Shared.Utility; @@ -59,7 +59,7 @@ internal sealed partial class AdminQuickInfoSystem : EntitySystem public void OpenPopupFor(NetEntity[] entities) { - var vBox = new VBox() { SeparationOverride = 6 };; + var vBox = new VBox() { SeparationOverride = 6 }; var popup = new Popup { Children = @@ -79,7 +79,7 @@ internal sealed partial class AdminQuickInfoSystem : EntitySystem { if (!first) { - vBox.AddChild(new PanelContainer + vBox.AddChild(new Separator { StyleClasses = { StyleClass.LowDivider }, HorizontalExpand = true, diff --git a/Content.Client/Administration/Managers/IClientAdminManager.cs b/Content.Client/Administration/Managers/IClientAdminManager.cs index b4b5b48b81..157cff15ca 100644 --- a/Content.Client/Administration/Managers/IClientAdminManager.cs +++ b/Content.Client/Administration/Managers/IClientAdminManager.cs @@ -1,4 +1,4 @@ -using Content.Shared.Administration; +using Content.Shared.Administration; namespace Content.Client.Administration.Managers { diff --git a/Content.Client/Administration/Systems/BwoinkSystem.cs b/Content.Client/Administration/Systems/BwoinkSystem.cs index 70c04f77fb..5de8d8dd0e 100644 --- a/Content.Client/Administration/Systems/BwoinkSystem.cs +++ b/Content.Client/Administration/Systems/BwoinkSystem.cs @@ -1,4 +1,4 @@ -#nullable enable +#nullable enable using Content.Shared.Administration; using JetBrains.Annotations; using Robust.Shared.Network; diff --git a/Content.Client/Administration/Systems/HeadstandSystem.cs b/Content.Client/Administration/Systems/HeadstandSystem.cs index 453982c53c..51412f8f1e 100644 --- a/Content.Client/Administration/Systems/HeadstandSystem.cs +++ b/Content.Client/Administration/Systems/HeadstandSystem.cs @@ -1,4 +1,4 @@ -using Content.Shared.Administration.Components; +using Content.Shared.Administration.Components; using Robust.Client.GameObjects; namespace Content.Client.Administration.Systems; diff --git a/Content.Client/Administration/Systems/KillSignSystem.cs b/Content.Client/Administration/Systems/KillSignSystem.cs index 8ed2891468..f577142304 100644 --- a/Content.Client/Administration/Systems/KillSignSystem.cs +++ b/Content.Client/Administration/Systems/KillSignSystem.cs @@ -1,4 +1,4 @@ -using System.Numerics; +using System.Numerics; using Content.Shared.Administration.Components; using Robust.Client.GameObjects; using Robust.Client.Player; diff --git a/Content.Client/Administration/UI/BanList/BanListEui.cs b/Content.Client/Administration/UI/BanList/BanListEui.cs index ff20e6fa89..c2fc2a4b74 100644 --- a/Content.Client/Administration/UI/BanList/BanListEui.cs +++ b/Content.Client/Administration/UI/BanList/BanListEui.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using System.Numerics; using Content.Client.Administration.UI.BanList.Bans; using Content.Client.Administration.UI.BanList.RoleBans; diff --git a/Content.Client/Administration/UI/BanList/BanListIdsPopup.xaml.cs b/Content.Client/Administration/UI/BanList/BanListIdsPopup.xaml.cs index 772f644b2e..1f369d4c19 100644 --- a/Content.Client/Administration/UI/BanList/BanListIdsPopup.xaml.cs +++ b/Content.Client/Administration/UI/BanList/BanListIdsPopup.xaml.cs @@ -1,4 +1,4 @@ -using Robust.Client.AutoGenerated; +using Robust.Client.AutoGenerated; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.XAML; diff --git a/Content.Client/Administration/UI/BanList/BanListWindow.xaml.cs b/Content.Client/Administration/UI/BanList/BanListWindow.xaml.cs index fad55f9627..bd64bb6ed8 100644 --- a/Content.Client/Administration/UI/BanList/BanListWindow.xaml.cs +++ b/Content.Client/Administration/UI/BanList/BanListWindow.xaml.cs @@ -1,4 +1,4 @@ -using Robust.Client.AutoGenerated; +using Robust.Client.AutoGenerated; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.CustomControls; using Robust.Client.UserInterface.XAML; diff --git a/Content.Client/Administration/UI/BanList/Bans/BanListControl.xaml.cs b/Content.Client/Administration/UI/BanList/Bans/BanListControl.xaml.cs index a79fc4a137..857483c565 100644 --- a/Content.Client/Administration/UI/BanList/Bans/BanListControl.xaml.cs +++ b/Content.Client/Administration/UI/BanList/Bans/BanListControl.xaml.cs @@ -1,4 +1,5 @@ -using Content.Client.Administration.UI.CustomControls; +using Content.Client.Stylesheets; +using Content.Client.UserInterface.Controls; using Content.Shared.Administration.BanList; using Robust.Client.AutoGenerated; using Robust.Client.UserInterface; @@ -25,7 +26,7 @@ public sealed partial class BanListControl : Control foreach (var ban in bans) { - Bans.AddChild(new HSeparator()); + Bans.AddChild(new Separator { StyleClasses = { StyleClass.LowDivider } }); var line = new BanListLine(ban); line.IdsClicked += LineIdsClicked; diff --git a/Content.Client/Administration/UI/BanList/Bans/BanListHeader.xaml b/Content.Client/Administration/UI/BanList/Bans/BanListHeader.xaml index 00a652175c..58b315e2b4 100644 --- a/Content.Client/Administration/UI/BanList/Bans/BanListHeader.xaml +++ b/Content.Client/Administration/UI/BanList/Bans/BanListHeader.xaml @@ -1,6 +1,6 @@ - + xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"> - + - + @@ -40,7 +40,7 @@ - + diff --git a/Content.Client/Administration/UI/Logs/AdminLogsControl.xaml.cs b/Content.Client/Administration/UI/Logs/AdminLogsControl.xaml.cs index 0a49ab127d..64a3d86fb0 100644 --- a/Content.Client/Administration/UI/Logs/AdminLogsControl.xaml.cs +++ b/Content.Client/Administration/UI/Logs/AdminLogsControl.xaml.cs @@ -1,6 +1,8 @@ -using System.Linq; +using System.Linq; using System.Runtime.InteropServices; using Content.Client.Administration.UI.CustomControls; +using Content.Client.Stylesheets; +using Content.Client.UserInterface.Controls; using Content.Shared.Administration.Logs; using Content.Shared.Database; using Robust.Client.AutoGenerated; @@ -486,7 +488,7 @@ public sealed partial class AdminLogsControl : Control for (var i = 0; i < span.Length; i++) { ref var log = ref span[i]; - var separator = new HSeparator(); + var separator = new Separator { StyleClasses = { StyleClass.LowDivider } }; var label = new AdminLogLabel(ref log, separator); label.Visible = ShouldShowLog(label); diff --git a/Content.Client/Administration/UI/Logs/AdminLogsEui.cs b/Content.Client/Administration/UI/Logs/AdminLogsEui.cs index 5a3976d3f1..71122c72ac 100644 --- a/Content.Client/Administration/UI/Logs/AdminLogsEui.cs +++ b/Content.Client/Administration/UI/Logs/AdminLogsEui.cs @@ -1,4 +1,4 @@ -using System.IO; +using System.IO; using System.Linq; using Content.Client.Administration.UI.CustomControls; using Content.Client.Eui; diff --git a/Content.Client/Administration/UI/Logs/AdminLogsWindow.xaml.cs b/Content.Client/Administration/UI/Logs/AdminLogsWindow.xaml.cs index 23e6e9145e..3a70540685 100644 --- a/Content.Client/Administration/UI/Logs/AdminLogsWindow.xaml.cs +++ b/Content.Client/Administration/UI/Logs/AdminLogsWindow.xaml.cs @@ -1,4 +1,4 @@ -using Robust.Client.AutoGenerated; +using Robust.Client.AutoGenerated; using Robust.Client.UserInterface.CustomControls; using Robust.Client.UserInterface.XAML; diff --git a/Content.Client/Administration/UI/Notes/AdminNotesLine.xaml b/Content.Client/Administration/UI/Notes/AdminNotesLine.xaml index aca2d3a235..ce668224d5 100644 --- a/Content.Client/Administration/UI/Notes/AdminNotesLine.xaml +++ b/Content.Client/Administration/UI/Notes/AdminNotesLine.xaml @@ -1,23 +1,23 @@ diff --git a/Content.Client/Administration/UI/Notes/AdminNotesLinePopup.xaml.cs b/Content.Client/Administration/UI/Notes/AdminNotesLinePopup.xaml.cs index 4e4027e7d4..5883c76227 100644 --- a/Content.Client/Administration/UI/Notes/AdminNotesLinePopup.xaml.cs +++ b/Content.Client/Administration/UI/Notes/AdminNotesLinePopup.xaml.cs @@ -1,4 +1,4 @@ -using Content.Shared.Administration.Notes; +using Content.Shared.Administration.Notes; using Content.Shared.Database; using Robust.Client.AutoGenerated; using Robust.Client.UserInterface.Controls; diff --git a/Content.Client/Administration/UI/Notes/NoteEdit.xaml.cs b/Content.Client/Administration/UI/Notes/NoteEdit.xaml.cs index 0e7de8acba..4d61937698 100644 --- a/Content.Client/Administration/UI/Notes/NoteEdit.xaml.cs +++ b/Content.Client/Administration/UI/Notes/NoteEdit.xaml.cs @@ -362,4 +362,4 @@ public sealed partial class NoteEdit : FancyWindow SubmitPressed = null; } -} \ No newline at end of file +} diff --git a/Content.Client/Administration/UI/PermissionsEui.cs b/Content.Client/Administration/UI/PermissionsEui.cs index 71aea9f45d..913c171ccc 100644 --- a/Content.Client/Administration/UI/PermissionsEui.cs +++ b/Content.Client/Administration/UI/PermissionsEui.cs @@ -211,16 +211,7 @@ namespace Content.Client.Administration.UI var al = _menu.AdminsList; var name = admin.UserName ?? admin.UserId.ToString(); - al.AddChild(new Label { Text = name }); - - var titleControl = new Label { Text = admin.Title ?? Loc.GetString("permissions-eui-edit-admin-title-control-text").ToLowerInvariant() }; - if (admin.Title == null) // none - { - titleControl.StyleClasses.Add(StyleClass.Italic); - } - - al.AddChild(titleControl); - + // Compute rank and combined flags first so we can create the edit button before other columns. bool italic; string rank; var combinedFlags = admin.PosFlags; @@ -237,6 +228,25 @@ namespace Content.Client.Administration.UI rank = Loc.GetString("permissions-eui-edit-no-rank-text").ToLowerInvariant(); } + var editButton = new Button { Text = Loc.GetString("permissions-eui-edit-title-button") }; + editButton.OnPressed += _ => OnEditPressed(admin); + + // Add the edit button as the first column + al.AddChild(editButton); + + // Name (C-key) + al.AddChild(new Label { Text = name }); + + // Prefix / Title + var titleControl = new Label { Text = admin.Title ?? Loc.GetString("permissions-eui-edit-admin-title-control-text").ToLowerInvariant() }; + if (admin.Title == null) // none + { + titleControl.StyleClasses.Add(StyleClass.Italic); + } + + al.AddChild(titleControl); + + // Rank var rankControl = new Label { Text = rank }; if (italic) { @@ -245,6 +255,7 @@ namespace Content.Client.Administration.UI al.AddChild(rankControl); + // Flags / Additional rights var flagsText = AdminFlagsHelper.PosNegFlagsText(admin.PosFlags, admin.NegFlags); al.AddChild(new Label @@ -254,10 +265,6 @@ namespace Content.Client.Administration.UI HorizontalAlignment = Control.HAlignment.Center, }); - var editButton = new Button { Text = Loc.GetString("permissions-eui-edit-title-button") }; - editButton.OnPressed += _ => OnEditPressed(admin); - al.AddChild(editButton); - if (!_adminManager.HasFlag(combinedFlags)) { editButton.Disabled = true; diff --git a/Content.Client/Administration/UI/SpawnExplosion/ExplosionDebugOverlay.cs b/Content.Client/Administration/UI/SpawnExplosion/ExplosionDebugOverlay.cs index 46ac390181..c4dd442311 100644 --- a/Content.Client/Administration/UI/SpawnExplosion/ExplosionDebugOverlay.cs +++ b/Content.Client/Administration/UI/SpawnExplosion/ExplosionDebugOverlay.cs @@ -113,7 +113,7 @@ public sealed partial class ExplosionDebugOverlay : Overlay else screenCenter += new Vector2(-8, -8); - handle.DrawString(_font, screenCenter, Intensity[i].ToString("F2")); + handle.DrawString(_font, screenCenter, Intensity[i].ToString("F2"), 1, Color.White, TextOutline.Default); } } @@ -123,7 +123,7 @@ public sealed partial class ExplosionDebugOverlay : Overlay var worldCenter = Vector2.Transform((epicenter + Vector2Helpers.Half) * tileSize, transform); var screenCenter = _eyeManager.WorldToScreen(worldCenter) + new Vector2(-24, -24); var text = $"{Intensity[0]:F2}\nΣ={TotalIntensity:F1}\nΔ={Slope:F1}"; - handle.DrawString(_font, screenCenter, text); + handle.DrawString(_font, screenCenter, text, 1, Color.White, TextOutline.Default); } } diff --git a/Content.Client/Administration/UI/Tabs/AdminTab/AdminShuttleWindow.xaml b/Content.Client/Administration/UI/Tabs/AdminTab/AdminShuttleWindow.xaml index 974e941846..78c6e41b28 100644 --- a/Content.Client/Administration/UI/Tabs/AdminTab/AdminShuttleWindow.xaml +++ b/Content.Client/Administration/UI/Tabs/AdminTab/AdminShuttleWindow.xaml @@ -6,10 +6,9 @@ - - - + + diff --git a/Content.Client/Administration/UI/Tabs/AdminTab/AdminShuttleWindow.xaml.cs b/Content.Client/Administration/UI/Tabs/AdminTab/AdminShuttleWindow.xaml.cs index 2e1f0ca66d..7699149ca6 100644 --- a/Content.Client/Administration/UI/Tabs/AdminTab/AdminShuttleWindow.xaml.cs +++ b/Content.Client/Administration/UI/Tabs/AdminTab/AdminShuttleWindow.xaml.cs @@ -1,31 +1,26 @@ -using System; using Content.Shared.Localizations; using Robust.Client.AutoGenerated; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.CustomControls; using Robust.Client.UserInterface.XAML; -using Robust.Shared.GameObjects; -using Robust.Shared.IoC; -using Robust.Shared.Localization; -namespace Content.Client.Administration.UI.Tabs.AdminTab +namespace Content.Client.Administration.UI.Tabs.AdminTab; + +[GenerateTypedNameReferences] +public sealed partial class AdminShuttleWindow : DefaultWindow { - [GenerateTypedNameReferences] - public sealed partial class AdminShuttleWindow : DefaultWindow + public AdminShuttleWindow() { - public AdminShuttleWindow() - { - RobustXamlLoader.Load(this); - IoCManager.InjectDependencies(this); + RobustXamlLoader.Load(this); + IoCManager.InjectDependencies(this); - _callShuttleTime.OnTextChanged += CallShuttleTimeOnOnTextChanged; - } + _callShuttleTime.OnTextChanged += CallShuttleTimeOnOnTextChanged; + } - private void CallShuttleTimeOnOnTextChanged(LineEdit.LineEditEventArgs obj) - { - var loc = IoCManager.Resolve(); - _callShuttleButton.Disabled = !TimeSpan.TryParseExact(obj.Text, ContentLocalizationManager.TimeSpanMinutesFormats, loc.DefaultCulture, out _); - _callShuttleButton.Command = $"callshuttle {obj.Text}"; - } + private void CallShuttleTimeOnOnTextChanged(LineEdit.LineEditEventArgs obj) + { + var loc = IoCManager.Resolve(); + _callShuttleButton.Disabled = !TimeSpan.TryParseExact(obj.Text, ContentLocalizationManager.TimeSpanMinutesFormats, loc.DefaultCulture, out _); + _callShuttleButton.Command = $"callshuttle {obj.Text}"; } } diff --git a/Content.Client/Administration/UI/Tabs/AdminTab/AdminTab.xaml.cs b/Content.Client/Administration/UI/Tabs/AdminTab/AdminTab.xaml.cs index 63534659f4..c759a36dfd 100644 --- a/Content.Client/Administration/UI/Tabs/AdminTab/AdminTab.xaml.cs +++ b/Content.Client/Administration/UI/Tabs/AdminTab/AdminTab.xaml.cs @@ -1,4 +1,4 @@ -using Robust.Client.AutoGenerated; +using Robust.Client.AutoGenerated; using Robust.Client.UserInterface; namespace Content.Client.Administration.UI.Tabs.AdminTab diff --git a/Content.Client/Administration/UI/Tabs/AdminbusTab/AdminbusTab.xaml.cs b/Content.Client/Administration/UI/Tabs/AdminbusTab/AdminbusTab.xaml.cs index 1d71d5bdf4..8bfb050793 100644 --- a/Content.Client/Administration/UI/Tabs/AdminbusTab/AdminbusTab.xaml.cs +++ b/Content.Client/Administration/UI/Tabs/AdminbusTab/AdminbusTab.xaml.cs @@ -1,4 +1,4 @@ -using Content.Client.Administration.Managers; +using Content.Client.Administration.Managers; using Content.Client.UserInterface.Systems.DecalPlacer; using Content.Shared.Administration; using Robust.Client.AutoGenerated; diff --git a/Content.Client/Administration/UI/Tabs/AtmosTab/AtmosTab.xaml.cs b/Content.Client/Administration/UI/Tabs/AtmosTab/AtmosTab.xaml.cs index b757c1b4f0..21b3be6e06 100644 --- a/Content.Client/Administration/UI/Tabs/AtmosTab/AtmosTab.xaml.cs +++ b/Content.Client/Administration/UI/Tabs/AtmosTab/AtmosTab.xaml.cs @@ -1,4 +1,4 @@ -using Robust.Client.AutoGenerated; +using Robust.Client.AutoGenerated; using Robust.Client.UserInterface; namespace Content.Client.Administration.UI.Tabs.AtmosTab diff --git a/Content.Client/Administration/UI/Tabs/ObjectsTab/ObjectsTab.xaml b/Content.Client/Administration/UI/Tabs/ObjectsTab/ObjectsTab.xaml index f4298bbc00..b0c9ae4d57 100644 --- a/Content.Client/Administration/UI/Tabs/ObjectsTab/ObjectsTab.xaml +++ b/Content.Client/Administration/UI/Tabs/ObjectsTab/ObjectsTab.xaml @@ -1,5 +1,4 @@ - @@ -10,10 +9,10 @@ SizeFlagsStretchRatio="1" /> diff --git a/Content.Client/Medical/CrewMonitoring/CrewMonitoringWindow.xaml b/Content.Client/Medical/CrewMonitoring/CrewMonitoringWindow.xaml index 86e1ce689a..637cd44870 100644 --- a/Content.Client/Medical/CrewMonitoring/CrewMonitoringWindow.xaml +++ b/Content.Client/Medical/CrewMonitoring/CrewMonitoringWindow.xaml @@ -40,7 +40,7 @@ - + - + @@ -38,4 +39,4 @@ - + diff --git a/Content.Client/SprayPainter/UI/SprayPainterDecals.xaml.cs b/Content.Client/SprayPainter/UI/SprayPainterDecals.xaml.cs index 66530eba91..620e991155 100644 --- a/Content.Client/SprayPainter/UI/SprayPainterDecals.xaml.cs +++ b/Content.Client/SprayPainter/UI/SprayPainterDecals.xaml.cs @@ -1,5 +1,5 @@ using Content.Client.Decals.UI; -using Content.Client.Stylesheets; +using Content.Client.Stylesheets.Palette; using Content.Shared.Decals; using Robust.Client.AutoGenerated; using Robust.Client.GameObjects; @@ -89,10 +89,7 @@ public sealed partial class SprayPainterDecals : Control { var panelContainer = new PanelContainer() { - PanelOverride = new StyleBoxFlat() - { - BackgroundColor = StyleNano.ButtonColorDefault, - }, + PanelOverride = new StyleBoxFlat(Palettes.Navy.Element), Children = { button, diff --git a/Content.Client/Sprite/SimpleSpriteOverlaySystem.cs b/Content.Client/Sprite/SimpleSpriteOverlaySystem.cs index 570a682830..59cffaa1a0 100644 --- a/Content.Client/Sprite/SimpleSpriteOverlaySystem.cs +++ b/Content.Client/Sprite/SimpleSpriteOverlaySystem.cs @@ -1,4 +1,4 @@ -using Content.Shared.Sprite; +using Content.Shared.Sprite; using Robust.Client.GameObjects; namespace Content.Client.Sprite; diff --git a/Content.Client/Station/ClientStationSystem.cs b/Content.Client/Station/ClientStationSystem.cs new file mode 100644 index 0000000000..d1b0b3bbc0 --- /dev/null +++ b/Content.Client/Station/ClientStationSystem.cs @@ -0,0 +1,6 @@ +using Content.Shared.Station.Systems; + +namespace Content.Client.Station; + +/// +public sealed partial class ClientStationSystem : StationSystem; diff --git a/Content.Client/Station/StationSpawningSystem.cs b/Content.Client/Station/StationSpawningSystem.cs deleted file mode 100644 index 42dc677895..0000000000 --- a/Content.Client/Station/StationSpawningSystem.cs +++ /dev/null @@ -1,5 +0,0 @@ -using Content.Shared.Station; - -namespace Content.Client.Station; - -public sealed partial class StationSpawningSystem : SharedStationSpawningSystem; diff --git a/Content.Client/Station/StationSystem.cs b/Content.Client/Station/StationSystem.cs deleted file mode 100644 index e1ccd14d7b..0000000000 --- a/Content.Client/Station/StationSystem.cs +++ /dev/null @@ -1,6 +0,0 @@ -using Content.Shared.Station; - -namespace Content.Client.Station; - -/// -public sealed partial class StationSystem : SharedStationSystem; diff --git a/Content.Client/StationRecords/GeneralStationRecordConsoleBoundUserInterface.cs b/Content.Client/StationRecords/GeneralStationRecordConsoleBoundUserInterface.cs index c77735060b..e20caf59aa 100644 --- a/Content.Client/StationRecords/GeneralStationRecordConsoleBoundUserInterface.cs +++ b/Content.Client/StationRecords/GeneralStationRecordConsoleBoundUserInterface.cs @@ -1,4 +1,4 @@ -using Content.Shared.Station; +using Content.Shared.Station.Systems; using Content.Shared.StationRecords; using Content.Shared.StationRecords.Components; using Content.Shared.StationRecords.Systems; @@ -11,7 +11,7 @@ public sealed partial class GeneralStationRecordConsoleBoundUserInterface : Boun [ViewVariables] private GeneralStationRecordConsoleWindow? _window; - [Dependency] private SharedStationSystem _stationSys = default!; + [Dependency] private StationSystem _stationSys = default!; [Dependency] private StationRecordsSystem _recordsSys = default!; public GeneralStationRecordConsoleBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) diff --git a/Content.Client/StationRecords/GeneralStationRecordConsoleSystem.cs b/Content.Client/StationRecords/GeneralStationRecordConsoleSystem.cs index 2c769c7ec4..3e2e8dbd3b 100644 --- a/Content.Client/StationRecords/GeneralStationRecordConsoleSystem.cs +++ b/Content.Client/StationRecords/GeneralStationRecordConsoleSystem.cs @@ -1,4 +1,4 @@ -using Content.Shared.StationRecords; +using Content.Shared.StationRecords; using Content.Shared.StationRecords.Components; using Content.Shared.StationRecords.Systems; diff --git a/Content.Client/StationTeleporter/StationTeleporterConsoleWindow.xaml b/Content.Client/StationTeleporter/StationTeleporterConsoleWindow.xaml index b3672ebc45..f5022a80cd 100644 --- a/Content.Client/StationTeleporter/StationTeleporterConsoleWindow.xaml +++ b/Content.Client/StationTeleporter/StationTeleporterConsoleWindow.xaml @@ -37,7 +37,7 @@ - +