]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
predict name identifiers (#41605)
authorslarticodefast <161409025+slarticodefast@users.noreply.github.com>
Sun, 30 Nov 2025 10:52:13 +0000 (11:52 +0100)
committerGitHub <noreply@github.com>
Sun, 30 Nov 2025 10:52:13 +0000 (10:52 +0000)
Content.Client/NameIdentifier/NameIdentifierSystem.cs [new file with mode: 0644]
Content.Server/NameIdentifier/NameIdentifierSystem.cs
Content.Shared/NameIdentifier/SharedNameIdentifierSystem.cs [new file with mode: 0644]

diff --git a/Content.Client/NameIdentifier/NameIdentifierSystem.cs b/Content.Client/NameIdentifier/NameIdentifierSystem.cs
new file mode 100644 (file)
index 0000000..c699ca6
--- /dev/null
@@ -0,0 +1,5 @@
+using Content.Shared.NameIdentifier;
+
+namespace Content.Client.NameIdentifier;
+
+public sealed class NameIdentifierSystem : SharedNameIdentifierSystem;
index 27e25a4b4f3c60acafeecec8b6fbbcb65352425d..9f199c459966261278781f64c9c8212dfe9d83f5 100644 (file)
@@ -7,10 +7,7 @@ using Robust.Shared.Random;
 
 namespace Content.Server.NameIdentifier;
 
-/// <summary>
-///     Handles unique name identifiers for entities e.g. `monkey (MK-912)`
-/// </summary>
-public sealed class NameIdentifierSystem : EntitySystem
+public sealed class NameIdentifierSystem : SharedNameIdentifierSystem
 {
     [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
     [Dependency] private readonly IRobustRandom _robustRandom = default!;
@@ -28,7 +25,6 @@ public sealed class NameIdentifierSystem : EntitySystem
 
         SubscribeLocalEvent<NameIdentifierComponent, MapInitEvent>(OnMapInit);
         SubscribeLocalEvent<NameIdentifierComponent, ComponentShutdown>(OnComponentShutdown);
-        SubscribeLocalEvent<NameIdentifierComponent, RefreshNameModifiersEvent>(OnRefreshNameModifiers);
         SubscribeLocalEvent<RoundRestartCleanupEvent>(CleanupIds);
         SubscribeLocalEvent<PrototypesReloadedEventArgs>(OnReloadPrototypes);
 
@@ -122,24 +118,6 @@ public sealed class NameIdentifierSystem : EntitySystem
         _nameModifier.RefreshNameModifiers(ent.Owner);
     }
 
-    private void OnRefreshNameModifiers(Entity<NameIdentifierComponent> ent, ref RefreshNameModifiersEvent args)
-    {
-        if (ent.Comp.Group is null)
-            return;
-
-        // Don't apply the modifier if the component is being removed
-        if (ent.Comp.LifeStage > ComponentLifeStage.Running)
-            return;
-
-        if (!_prototypeManager.Resolve(ent.Comp.Group, out var group))
-            return;
-
-        var format = group.FullName ? "name-identifier-format-full" : "name-identifier-format-append";
-        // We apply the modifier with a low priority to keep it near the base name
-        // "Beep (Si-4562) the zombie" instead of "Beep the zombie (Si-4562)"
-        args.AddModifier(format, -10, ("identifier", ent.Comp.FullIdentifier));
-    }
-
     private void InitialSetupPrototypes()
     {
         EnsureIds();
diff --git a/Content.Shared/NameIdentifier/SharedNameIdentifierSystem.cs b/Content.Shared/NameIdentifier/SharedNameIdentifierSystem.cs
new file mode 100644 (file)
index 0000000..05a6e43
--- /dev/null
@@ -0,0 +1,37 @@
+using Content.Shared.NameModifier.EntitySystems;
+using Robust.Shared.Prototypes;
+
+namespace Content.Shared.NameIdentifier;
+
+/// <summary>
+///     Handles unique name identifiers for entities e.g. `monkey (MK-912)`
+/// </summary>
+public abstract class SharedNameIdentifierSystem : EntitySystem
+{
+    [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
+
+    public override void Initialize()
+    {
+        base.Initialize();
+
+        SubscribeLocalEvent<NameIdentifierComponent, RefreshNameModifiersEvent>(OnRefreshNameModifiers);
+    }
+
+    private void OnRefreshNameModifiers(Entity<NameIdentifierComponent> ent, ref RefreshNameModifiersEvent args)
+    {
+        if (ent.Comp.Group is null)
+            return;
+
+        // Don't apply the modifier if the component is being removed
+        if (ent.Comp.LifeStage > ComponentLifeStage.Running)
+            return;
+
+        if (!_prototypeManager.Resolve(ent.Comp.Group, out var group))
+            return;
+
+        var format = group.FullName ? "name-identifier-format-full" : "name-identifier-format-append";
+        // We apply the modifier with a low priority to keep it near the base name
+        // "Beep (Si-4562) the zombie" instead of "Beep the zombie (Si-4562)"
+        args.AddModifier(format, -10, ("identifier", ent.Comp.FullIdentifier));
+    }
+}