From 450554ea77413fb73ab7edec9387d5adb42b995b Mon Sep 17 00:00:00 2001 From: Whatstone <166147148+whatston3@users.noreply.github.com> Date: Tue, 21 Jan 2025 01:59:44 -0500 Subject: [PATCH 01/14] Fix LinkedLifecycleGridSystem player check (#2759) --- .../StationEvents/EventSystems/LinkedLifecycleGridSystem.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Content.Server/_NF/StationEvents/EventSystems/LinkedLifecycleGridSystem.cs b/Content.Server/_NF/StationEvents/EventSystems/LinkedLifecycleGridSystem.cs index 15ae44863fc..f1188602130 100644 --- a/Content.Server/_NF/StationEvents/EventSystems/LinkedLifecycleGridSystem.cs +++ b/Content.Server/_NF/StationEvents/EventSystems/LinkedLifecycleGridSystem.cs @@ -1,5 +1,6 @@ using System.Numerics; using Content.Server.StationEvents.Components; +using Content.Shared.Bank.Components; using Content.Shared.Humanoid; using Content.Shared.Mech.Components; using Content.Shared.Mind; @@ -93,8 +94,8 @@ private void OnMasterRemoved(EntityUid uid, LinkedLifecycleGridParentComponent c List<(Entity Entity, EntityUid MapUid, Vector2 LocalPosition)> reparentEntities = new(); HashSet handledEntities = new(); - // Get humanoids - var mobQuery = AllEntityQuery(); + // Get player characters + var mobQuery = AllEntityQuery(); while (mobQuery.MoveNext(out var mobUid, out _, out _, out var xform)) { handledEntities.Add(mobUid); From a9edb44130d0725e614a467477ca68a8e5976870 Mon Sep 17 00:00:00 2001 From: FrontierATC Date: Tue, 21 Jan 2025 07:00:08 +0000 Subject: [PATCH 02/14] Automatic Changelog (#2759) --- Resources/Changelog/Frontier.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Resources/Changelog/Frontier.yml b/Resources/Changelog/Frontier.yml index 5f95d86a8cc..c0906098287 100644 --- a/Resources/Changelog/Frontier.yml +++ b/Resources/Changelog/Frontier.yml @@ -6548,3 +6548,9 @@ Entries: message: Gas deposit locators are now printable in the engineering techfab. id: 5677 time: '2025-01-20T17:34:44.0000000+00:00' +- author: whatston3 + changes: + - type: Fix + message: Wreck corpses should no longer linger after wrecks despawn. + id: 5678 + time: '2025-01-21T06:59:45.0000000+00:00' From c2d69db1ad03ddf9a6566123956451a5e258d7ef Mon Sep 17 00:00:00 2001 From: blackknight954 <40075385+blackknight954@users.noreply.github.com> Date: Tue, 21 Jan 2025 01:00:50 -0600 Subject: [PATCH 03/14] Reduced shuttle tech to one tech (#2757) --- Resources/Prototypes/Research/arsenal.yml | 30 ++++++++++++----------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/Resources/Prototypes/Research/arsenal.yml b/Resources/Prototypes/Research/arsenal.yml index f5c3ad08003..04d3a5cbdfc 100644 --- a/Resources/Prototypes/Research/arsenal.yml +++ b/Resources/Prototypes/Research/arsenal.yml @@ -180,6 +180,8 @@ - MagazineGrenadeEmpty - GrenadeFlash - GrenadeBlast + - GrenadeEMP #Frontier + - PowerCageHigh #frontier # - ShuttleGunSvalinnMachineGunCircuitboard # Frontier # - ShuttleGunPerforatorCircuitboard # Frontier # - ShuttleGunFriendshipCircuitboard # Frontier @@ -217,18 +219,18 @@ - WeaponLaserSvalinn - NFBlueprintWeaponLaserSvalinn # Frontier -- type: technology - id: AdvancedShuttleWeapon - name: research-technology-advanced-shuttle-weapon - icon: - sprite: Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi - state: icon - discipline: Arsenal - tier: 3 - cost: 15000 - recipeUnlocks: - - GrenadeEMP - - PowerCageHigh +# - type: technology #Frontier +# id: AdvancedShuttleWeapon +# name: research-technology-advanced-shuttle-weapon +# icon: +# sprite: Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi +# state: icon +# discipline: Arsenal +# tier: 3 +# cost: 15000 +# recipeUnlocks: +# - GrenadeEMP +# - PowerCageHigh # - ShuttleGunDusterCircuitboard # Frontier - technologyPrerequisites: - - BasicShuttleArmament +# technologyPrerequisites: +# - BasicShuttleArmament From 988513428de2ab7d77008ee7821e466c475626a7 Mon Sep 17 00:00:00 2001 From: FrontierATC Date: Tue, 21 Jan 2025 07:01:14 +0000 Subject: [PATCH 04/14] Automatic Changelog (#2757) --- Resources/Changelog/Frontier.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Resources/Changelog/Frontier.yml b/Resources/Changelog/Frontier.yml index c0906098287..6e1aa99091f 100644 --- a/Resources/Changelog/Frontier.yml +++ b/Resources/Changelog/Frontier.yml @@ -6554,3 +6554,9 @@ Entries: message: Wreck corpses should no longer linger after wrecks despawn. id: 5678 time: '2025-01-21T06:59:45.0000000+00:00' +- author: blackknight954 + changes: + - type: Tweak + message: Merged Advanced and Basic shuttle tech into one. + id: 5679 + time: '2025-01-21T07:00:50.0000000+00:00' From 8e43da01035ad4ae67ad1982439e14129003aa4f Mon Sep 17 00:00:00 2001 From: blackknight954 <40075385+blackknight954@users.noreply.github.com> Date: Tue, 21 Jan 2025 01:28:05 -0600 Subject: [PATCH 05/14] Fixed accidental removal of recipes (#2756) --- .../Prototypes/_NF/Entities/Structures/Machines/lathe.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Resources/Prototypes/_NF/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/_NF/Entities/Structures/Machines/lathe.yml index f3ed9b5c57f..4b07fb04a63 100644 --- a/Resources/Prototypes/_NF/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/_NF/Entities/Structures/Machines/lathe.yml @@ -825,6 +825,9 @@ - WeaponAntiqueLaserNF # After the changes made to windows shouldn't be that much of an issue now if it's widely available - WeaponLaserCarbine - WeaponDisabler + - WeaponDisablerSMG + - WeaponLaserCannon + - WeaponXrayCannon ## Ammo boxes - BoxBeanbag - BoxShellTranquilizer From d0533ac6ebef0e3830194ca766c308c0e81115a6 Mon Sep 17 00:00:00 2001 From: FrontierATC Date: Tue, 21 Jan 2025 07:28:33 +0000 Subject: [PATCH 06/14] Automatic Changelog (#2756) --- Resources/Changelog/Frontier.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Resources/Changelog/Frontier.yml b/Resources/Changelog/Frontier.yml index 6e1aa99091f..e7a53ca7761 100644 --- a/Resources/Changelog/Frontier.yml +++ b/Resources/Changelog/Frontier.yml @@ -6560,3 +6560,9 @@ Entries: message: Merged Advanced and Basic shuttle tech into one. id: 5679 time: '2025-01-21T07:00:50.0000000+00:00' +- author: blackknight954 + changes: + - type: Fix + message: Fixed missing Mercfab recipes + id: 5680 + time: '2025-01-21T07:28:06.0000000+00:00' From 7f12f1390572b161ec11ece5e9f1d0426a4651d9 Mon Sep 17 00:00:00 2001 From: Milon Date: Tue, 21 Jan 2025 09:07:17 +0100 Subject: [PATCH 07/14] offshore gas mining refactor (#2750) * headache inducing * Most PR suggestions * Random vs. regular GasDeposit, "gas" in scanner * unanchor port. gaslocks/mining drills, dir appear * predict deposit popup, dynamic gas structures --------- Co-authored-by: Whatstone --- .../AtmosAlertsComputerWindow.xaml.cs | 56 +-- .../BUI/GasSaleConsoleBoundUserInterface.cs | 6 +- .../AtmosAlarmGaslockEntryContainer.xaml | 78 +-- .../AtmosAlarmGaslockEntryContainer.xaml.cs | 154 +++--- .../_NF/Atmos/Systems/GasDepositSystem.cs | 5 + .../GasDepositExtractorBoundUserInterface.cs | 15 +- .../GasPressureBidiPumpBoundUserInterface.cs | 22 +- .../Atmos/UI/GasPressureBidiPumpWindow.xaml | 21 +- .../UI/GasPressureBidiPumpWindow.xaml.cs | 24 +- Content.Client/_NF/Atmos/UI/GasSaleMenu.cs | 6 +- Content.Client/_NF/Atmos/UI/GasSaleMenu.xaml | 8 +- .../_NF/Atmos/UI/GaslockObject.xaml | 11 - .../_NF/Atmos/UI/GaslockObject.xaml.cs | 62 --- .../_NF/Atmos/UI/ShuttleGaslockControl.xaml | 1 - .../Atmos/UI/ShuttleGaslockControl.xaml.cs | 473 ------------------ .../Consoles/AtmosAlertsComputerSystem.cs | 17 +- .../AtmosphereSystem.GridAtmosphere.cs | 1 - .../EntitySystems/GasPressurePumpSystem.cs | 43 +- .../Atmos/Components/DockablePipeComponent.cs | 4 +- .../Components/GasSaleConsoleComponent.cs | 21 +- .../Atmos/Components/GasSalePointComponent.cs | 4 +- .../Components/RandomGasDepositComponent.cs | 21 +- .../Atmos/EntitySystems/GasDepositSystem.cs | 385 -------------- .../DockablePipeSystem.cs | 28 +- .../_NF/Atmos/Systems/GasDepositSystem.cs | 323 ++++++++++++ .../NodeContainer/Nodes/DockablePipeNode.cs | 50 +- .../Debris/RandomEntityPopulatorComponent.cs | 48 +- .../Debris/RandomEntityPopulatorSystem.cs | 23 +- .../SharedGasPressurePumpSystem.cs | 1 + .../Atmos/BUI/AtmosAlertsComputerMessages.cs | 38 +- .../GasSaleConsoleBoundUserInterfaceState.cs | 16 +- .../GaslockConsoleBoundUserInterfaceState.cs | 22 +- .../Atmos/Components/GasDepositComponent.cs | 20 + .../GasDepositExtractorComponent.cs | 7 +- .../_NF/Atmos/Events/GasSalePointEvents.cs | 2 +- .../Atmos/Prototypes/GasDepositPrototype.cs | 6 +- .../Atmos/Systems/SharedGasDepositSystem.cs | 98 ++++ .../_NF/Atmos/Visuals/DockablePumpVisuals.cs | 2 +- .../Specific/Atmospherics/deposits.yml | 19 +- .../Entities/Structures/Machines/lathe.yml | 2 +- .../Structures/Piping/Atmospherics/binary.yml | 4 +- .../Structures/Piping/Atmospherics/unary.yml | 2 +- .../Prototypes/_NF/Recipes/Lathes/devices.yml | 4 +- 43 files changed, 821 insertions(+), 1332 deletions(-) create mode 100644 Content.Client/_NF/Atmos/Systems/GasDepositSystem.cs delete mode 100644 Content.Client/_NF/Atmos/UI/GaslockObject.xaml delete mode 100644 Content.Client/_NF/Atmos/UI/GaslockObject.xaml.cs delete mode 100644 Content.Client/_NF/Atmos/UI/ShuttleGaslockControl.xaml delete mode 100644 Content.Client/_NF/Atmos/UI/ShuttleGaslockControl.xaml.cs delete mode 100644 Content.Server/_NF/Atmos/EntitySystems/GasDepositSystem.cs rename Content.Server/_NF/Atmos/{EntitySystems => Systems}/DockablePipeSystem.cs (50%) create mode 100644 Content.Server/_NF/Atmos/Systems/GasDepositSystem.cs create mode 100644 Content.Shared/_NF/Atmos/Components/GasDepositComponent.cs rename {Content.Server => Content.Shared}/_NF/Atmos/Prototypes/GasDepositPrototype.cs (84%) create mode 100644 Content.Shared/_NF/Atmos/Systems/SharedGasDepositSystem.cs diff --git a/Content.Client/Atmos/Consoles/AtmosAlertsComputerWindow.xaml.cs b/Content.Client/Atmos/Consoles/AtmosAlertsComputerWindow.xaml.cs index 57ad482e02f..344a71a470d 100644 --- a/Content.Client/Atmos/Consoles/AtmosAlertsComputerWindow.xaml.cs +++ b/Content.Client/Atmos/Consoles/AtmosAlertsComputerWindow.xaml.cs @@ -31,7 +31,6 @@ public sealed partial class AtmosAlertsComputerWindow : FancyWindow private AtmosAlertsComputerEntry[]? _airAlarms = null; private AtmosAlertsComputerEntry[]? _fireAlarms = null; - private AtmosAlertsComputerEntry[]? _gaslocks = null; // Frontier private IEnumerable? _allAlarms = null; private IEnumerable? _activeAlarms = null; @@ -195,7 +194,6 @@ public void UpdateUI(EntityCoordinates? consoleCoords, AtmosAlertsComputerEntry[ // Retain alarm data for use inbetween updates _airAlarms = airAlarms; _fireAlarms = fireAlarms; - _gaslocks = gaslocks; // Frontier _allAlarms = airAlarms.Concat(fireAlarms); _allAlarms = airAlarms.Concat(gaslocks); // Frontier @@ -288,7 +286,7 @@ public void UpdateUI(EntityCoordinates? consoleCoords, AtmosAlertsComputerEntry[ } // Frontier: gaslocks - for (int index = 0; index < gaslocks.Count(); index++) + for (var index = 0; index < gaslocks.Length; index++) { var entry = gaslocks.ElementAt(index); UpdateGaslockUIEntry(entry, index, GaslocksTable, console, focusGaslockData); @@ -470,7 +468,7 @@ private void UpdateGaslockUIEntry(AtmosAlertsComputerEntry entry, int index, Con newEntryContainer.SendUndockAction += SendGaslockUndockAction; // On click - newEntryContainer.FocusButton.OnButtonUp += args => + newEntryContainer.FocusButton.OnButtonUp += _ => { if (_trackedEntity == newEntryContainer.NetEntity) { @@ -502,7 +500,7 @@ private void UpdateGaslockUIEntry(AtmosAlertsComputerEntry entry, int index, Con // Update values and UI elements var tableChild = table.GetChild(index); - if (tableChild is not AtmosAlarmGaslockEntryContainer) + if (tableChild is not AtmosAlarmGaslockEntryContainer entryContainer) { table.RemoveChild(tableChild); UpdateGaslockUIEntry(entry, index, table, console, focusData); @@ -510,8 +508,6 @@ private void UpdateGaslockUIEntry(AtmosAlertsComputerEntry entry, int index, Con return; } - var entryContainer = (AtmosAlarmGaslockEntryContainer)tableChild; - entryContainer.UpdateEntry(entry, entry.NetEntity == _trackedEntity, focusData); } // End Frontier: separate UpdateUI function for gaslocks @@ -520,26 +516,27 @@ private void UpdateConsoleTable(AtmosAlertsComputerComponent console, Control ta { foreach (var tableChild in table.Children) { - // Frontier: multiple type checks - if (tableChild is AtmosAlarmEntryContainer) + switch (tableChild) { - var entryContainer = (AtmosAlarmEntryContainer)tableChild; - - if (entryContainer.NetEntity != currTrackedEntity) - entryContainer.RemoveAsFocus(); - - else if (entryContainer.NetEntity == currTrackedEntity) - entryContainer.SetAsFocus(); - } - else if (tableChild is AtmosAlarmGaslockEntryContainer) - { - var entryContainer = (AtmosAlarmGaslockEntryContainer)tableChild; + // Frontier: multiple type checks + case AtmosAlarmEntryContainer entry: + { + if (entry.NetEntity != currTrackedEntity) + entry.RemoveAsFocus(); - if (entryContainer.NetEntity != currTrackedEntity) - entryContainer.RemoveAsFocus(); + else if (entry.NetEntity == currTrackedEntity) + entry.SetAsFocus(); + break; + } + case AtmosAlarmGaslockEntryContainer gaslockEntry: + { + if (gaslockEntry.NetEntity != currTrackedEntity) + gaslockEntry.RemoveAsFocus(); - else if (entryContainer.NetEntity == currTrackedEntity) - entryContainer.SetAsFocus(); + else if (gaslockEntry.NetEntity == currTrackedEntity) + gaslockEntry.SetAsFocus(); + break; + } } // End Frontier } @@ -671,14 +668,13 @@ private bool TryGetNextScrollPosition([NotNullWhen(true)] out float? nextScrollP foreach (var control in container.Children) { - if (control == null) // Frontier: move type checks down - continue; - - if (control is AtmosAlarmEntryContainer && ((AtmosAlarmEntryContainer)control).NetEntity == _trackedEntity) // Frontier: add type check + // Frontier - Move type checks down + if (control is AtmosAlarmEntryContainer entry && entry.NetEntity == _trackedEntity) return true; - if (control is AtmosAlarmGaslockEntryContainer && ((AtmosAlarmGaslockEntryContainer)control).NetEntity == _trackedEntity) // Frontier - return true; // Frontier + // Frontier - Add gaslock check + if (control is AtmosAlarmGaslockEntryContainer gaslockEntry && gaslockEntry.NetEntity == _trackedEntity) + return true; nextScrollPosition += control.Height; } diff --git a/Content.Client/_NF/Atmos/BUI/GasSaleConsoleBoundUserInterface.cs b/Content.Client/_NF/Atmos/BUI/GasSaleConsoleBoundUserInterface.cs index f50ab1059ae..c08d3d13ed2 100644 --- a/Content.Client/_NF/Atmos/BUI/GasSaleConsoleBoundUserInterface.cs +++ b/Content.Client/_NF/Atmos/BUI/GasSaleConsoleBoundUserInterface.cs @@ -5,15 +5,11 @@ namespace Content.Client._NF.Atmos.BUI; -public sealed class GasSaleConsoleBoundUserInterface : BoundUserInterface +public sealed class GasSaleConsoleBoundUserInterface(EntityUid owner, Enum uiKey) : BoundUserInterface(owner, uiKey) { [ViewVariables] private GasSaleMenu? _menu; - public GasSaleConsoleBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) - { - } - protected override void Open() { base.Open(); diff --git a/Content.Client/_NF/Atmos/Consoles/AtmosAlarmGaslockEntryContainer.xaml b/Content.Client/_NF/Atmos/Consoles/AtmosAlarmGaslockEntryContainer.xaml index bd4b8613787..6899c324643 100644 --- a/Content.Client/_NF/Atmos/Consoles/AtmosAlarmGaslockEntryContainer.xaml +++ b/Content.Client/_NF/Atmos/Consoles/AtmosAlarmGaslockEntryContainer.xaml @@ -1,31 +1,35 @@ + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:gfx="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client" + Orientation="Vertical" HorizontalExpand="True" Margin="0 0 0 3"> - - + - + @@ -33,41 +37,57 @@ - + - - + -