diff --git a/Content.Server/Research/Systems/ResearchSystem.Console.cs b/Content.Server/Research/Systems/ResearchSystem.Console.cs index c227aee7f0..baaf06ea71 100644 --- a/Content.Server/Research/Systems/ResearchSystem.Console.cs +++ b/Content.Server/Research/Systems/ResearchSystem.Console.cs @@ -21,6 +21,7 @@ public sealed partial class ResearchSystem SubscribeLocalEvent(OnPointsChanged); SubscribeLocalEvent(OnConsoleRegistrationChanged); SubscribeLocalEvent(OnConsoleDatabaseModified); + SubscribeLocalEvent(OnConsoleDatabaseSynchronized); SubscribeLocalEvent(OnEmagged); } @@ -100,6 +101,12 @@ public sealed partial class ResearchSystem } private void OnConsoleDatabaseModified(EntityUid uid, ResearchConsoleComponent component, ref TechnologyDatabaseModifiedEvent args) + { + SyncClientWithServer(uid); + UpdateConsoleInterface(uid, component); + } + + private void OnConsoleDatabaseSynchronized(EntityUid uid, ResearchConsoleComponent component, ref TechnologyDatabaseSynchronizedEvent args) { UpdateConsoleInterface(uid, component); } @@ -114,5 +121,4 @@ public sealed partial class ResearchSystem args.Handled = true; } - } diff --git a/Content.Server/Research/Systems/ResearchSystem.Technology.cs b/Content.Server/Research/Systems/ResearchSystem.Technology.cs index 7578d316c5..360985b4b6 100644 --- a/Content.Server/Research/Systems/ResearchSystem.Technology.cs +++ b/Content.Server/Research/Systems/ResearchSystem.Technology.cs @@ -23,7 +23,7 @@ public sealed partial class ResearchSystem Dirty(primaryUid, primaryDb); - var ev = new TechnologyDatabaseModifiedEvent(); + var ev = new TechnologyDatabaseSynchronizedEvent(); RaiseLocalEvent(primaryUid, ref ev); } diff --git a/Content.Shared/Research/Components/TechnologyDatabaseComponent.cs b/Content.Shared/Research/Components/TechnologyDatabaseComponent.cs index fc317454c9..4f976869f7 100644 --- a/Content.Shared/Research/Components/TechnologyDatabaseComponent.cs +++ b/Content.Shared/Research/Components/TechnologyDatabaseComponent.cs @@ -55,3 +55,10 @@ public sealed partial class TechnologyDatabaseComponent : Component /// [ByRefEvent] public readonly record struct TechnologyDatabaseModifiedEvent; + +/// +/// Event raised on a database after being synchronized +/// with the values from another database. +/// +[ByRefEvent] +public readonly record struct TechnologyDatabaseSynchronizedEvent; diff --git a/Content.Shared/Research/Systems/SharedResearchSystem.cs b/Content.Shared/Research/Systems/SharedResearchSystem.cs index 06e12e0798..bca1ae4888 100644 --- a/Content.Shared/Research/Systems/SharedResearchSystem.cs +++ b/Content.Shared/Research/Systems/SharedResearchSystem.cs @@ -227,6 +227,9 @@ public abstract class SharedResearchSystem : EntitySystem return; component.MainDiscipline = prototype.Discipline; Dirty(uid, component); + + var ev = new TechnologyDatabaseModifiedEvent(); + RaiseLocalEvent(uid, ref ev); } ///