From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Thu, 16 Feb 2023 04:16:20 +0000 (-0500) Subject: Fix anomaly vessels not generating points (#14137) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=9ed3127ed5b32dd3ac00307116a31ae193267e92;p=space-station-14.git Fix anomaly vessels not generating points (#14137) --- diff --git a/Content.Server/Anomaly/AnomalySystem.Vessel.cs b/Content.Server/Anomaly/AnomalySystem.Vessel.cs index 4809a613fd..8d2710280a 100644 --- a/Content.Server/Anomaly/AnomalySystem.Vessel.cs +++ b/Content.Server/Anomaly/AnomalySystem.Vessel.cs @@ -88,10 +88,7 @@ public sealed partial class AnomalySystem private void OnVesselGetPointsPerSecond(EntityUid uid, AnomalyVesselComponent component, ref ResearchServerGetPointsPerSecondEvent args) { if (!this.IsPowered(uid, EntityManager) || component.Anomaly is not {} anomaly) - { - args.Points = 0; return; - } args.Points += (int) (GetAnomalyPointValue(anomaly) * component.PointMultiplier); } diff --git a/Content.Server/Research/Systems/ResearchSystem.Client.cs b/Content.Server/Research/Systems/ResearchSystem.Client.cs index 180396bd8d..d1041fb1c3 100644 --- a/Content.Server/Research/Systems/ResearchSystem.Client.cs +++ b/Content.Server/Research/Systems/ResearchSystem.Client.cs @@ -10,7 +10,7 @@ public sealed partial class ResearchSystem { private void InitializeClient() { - SubscribeLocalEvent(OnClientStartup); + SubscribeLocalEvent(OnClientMapInit); SubscribeLocalEvent(OnClientShutdown); SubscribeLocalEvent(OnClientUIOpen); SubscribeLocalEvent(OnConsoleSync); @@ -26,12 +26,11 @@ public sealed partial class ResearchSystem private void OnClientSelected(EntityUid uid, ResearchClientComponent component, ResearchClientServerSelectedMessage args) { - var server = GetServerById(args.ServerId); - if (server == null) + if (!TryGetServerById(args.ServerId, out var serveruid, out var serverComponent)) return; - UnregisterClient(uid, clientComponent: component); - RegisterClient(uid, server.Owner, component, server); + UnregisterClient(uid, component); + RegisterClient(uid, serveruid.Value, component, serverComponent); } private void OnClientDeselected(EntityUid uid, ResearchClientComponent component, ResearchClientServerDeselectedMessage args) @@ -66,7 +65,7 @@ public sealed partial class ResearchSystem UpdateClientInterface(uid, component); } - private void OnClientStartup(EntityUid uid, ResearchClientComponent component, ComponentStartup args) + private void OnClientMapInit(EntityUid uid, ResearchClientComponent component, MapInitEvent args) { var allServers = EntityQuery(true).ToArray(); if (allServers.Length > 0) diff --git a/Content.Server/Research/Systems/ResearchSystem.Server.cs b/Content.Server/Research/Systems/ResearchSystem.Server.cs index acaf70e07d..d7a9c5fafb 100644 --- a/Content.Server/Research/Systems/ResearchSystem.Server.cs +++ b/Content.Server/Research/Systems/ResearchSystem.Server.cs @@ -140,7 +140,7 @@ public sealed partial class ResearchSystem if (!CanRun(uid)) return points; - var ev = new ResearchServerGetPointsPerSecondEvent(component.Owner, points); + var ev = new ResearchServerGetPointsPerSecondEvent(uid, points); foreach (var client in component.Clients) { RaiseLocalEvent(client, ref ev); diff --git a/Content.Server/Research/Systems/ResearchSystem.cs b/Content.Server/Research/Systems/ResearchSystem.cs index dcd8710cbd..0e1630b788 100644 --- a/Content.Server/Research/Systems/ResearchSystem.cs +++ b/Content.Server/Research/Systems/ResearchSystem.cs @@ -1,3 +1,4 @@ +using System.Diagnostics.CodeAnalysis; using System.Linq; using Content.Shared.Research.Components; using Content.Shared.Research.Systems; @@ -28,16 +29,22 @@ namespace Content.Server.Research.Systems /// Gets a server based on it's unique numeric id. /// /// + /// + /// /// - public ResearchServerComponent? GetServerById(int id) + public bool TryGetServerById(int id, [NotNullWhen(true)] out EntityUid? serverUid, [NotNullWhen(true)] out ResearchServerComponent? serverComponent) { + serverUid = null; + serverComponent = null; foreach (var server in EntityQuery()) { - if (server.Id == id) - return server; + if (server.Id != id) + continue; + serverUid = server.Owner; + serverComponent = server; + return true; } - - return null; + return false; } ///