]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Replace EntityUid parsing with NetEntity (#23474)
authorLeon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Thu, 4 Jan 2024 00:04:31 +0000 (19:04 -0500)
committerGitHub <noreply@github.com>
Thu, 4 Jan 2024 00:04:31 +0000 (11:04 +1100)
* Replace EntityUid parsing with NetEntity

* fix

* Other changes required for arch

* And anothher

15 files changed:
Content.Server/Administration/Commands/ControlMob.cs
Content.Server/Administration/Commands/OwoifyCommand.cs
Content.Server/Administration/Commands/SetMindCommand.cs
Content.Server/Administration/Commands/SetOutfitCommand.cs
Content.Server/Administration/Systems/AdminVerbSystem.cs
Content.Server/Administration/UI/SetOutfitEui.cs
Content.Server/Commands/ActionCommands.cs
Content.Server/Humanoid/Systems/RandomHumanoidSystem.cs
Content.Server/Jobs/AddComponentSpecial.cs
Content.Server/NPC/Commands/AddNPCCommand.cs
Content.Server/Sandbox/Commands/ColorNetworkCommand.cs
Content.Server/Traitor/Uplink/Commands/AddUplinkCommand.cs
Content.Server/Verbs/Commands/InvokeVerbCommand.cs
Content.Server/Verbs/Commands/ListVerbsCommand.cs
Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.Nodes.cs

index 317461a3736dfb2ac119471ce29f99e5e1177ab2..9d39cb9ddeb2e8f41bde9a2f761ecc1f83f92e5a 100644 (file)
@@ -33,15 +33,15 @@ namespace Content.Server.Administration.Commands
                 return;
             }
 
-            var target = new EntityUid(targetId);
+            var targetNet = new NetEntity(targetId);
 
-            if (!target.IsValid() || !_entities.EntityExists(target))
+            if (!_entities.TryGetEntity(targetNet, out var target))
             {
                 shell.WriteLine(Loc.GetString("shell-invalid-entity-id"));
                 return;
             }
 
-            _entities.System<MindSystem>().ControlMob(player.UserId, target);
+            _entities.System<MindSystem>().ControlMob(player.UserId, target.Value);
         }
     }
 }
index 73a1236d1947fb1883e167259a29def67bafd1ce..8ca35b1b42fa1fb916f50648700520d4b0d081c7 100644 (file)
@@ -8,6 +8,8 @@ namespace Content.Server.Administration.Commands;
 [AdminCommand(AdminFlags.Fun)]
 public sealed class OwoifyCommand : IConsoleCommand
 {
+    [Dependency] private readonly IEntityManager _entManager = default!;
+
     public string Command => "owoify";
 
     public string Description => "For when you need everything to be cat. Uses OwOAccent's formatting on the name and description of an entity.";
@@ -22,22 +24,25 @@ public sealed class OwoifyCommand : IConsoleCommand
             return;
         }
 
-        var entityManager = IoCManager.Resolve<IEntityManager>();
-
         if (!int.TryParse(args[0], out var targetId))
         {
             shell.WriteLine(Loc.GetString("shell-argument-must-be-number"));
             return;
         }
 
-        var eUid = new EntityUid(targetId);
+        var nent = new NetEntity(targetId);
+
+        if (!_entManager.TryGetEntity(nent, out var eUid))
+        {
+            return;
+        }
 
-        var meta = entityManager.GetComponent<MetaDataComponent>(eUid);
+        var meta = _entManager.GetComponent<MetaDataComponent>(eUid.Value);
 
-        var owoSys = entityManager.System<OwOAccentSystem>();
-        var metaDataSys = entityManager.System<MetaDataSystem>();
+        var owoSys = _entManager.System<OwOAccentSystem>();
+        var metaDataSys = _entManager.System<MetaDataSystem>();
 
-        metaDataSys.SetEntityName(eUid, owoSys.Accentuate(meta.EntityName), meta);
-        metaDataSys.SetEntityDescription(eUid, owoSys.Accentuate(meta.EntityDescription), meta);
+        metaDataSys.SetEntityName(eUid.Value, owoSys.Accentuate(meta.EntityName), meta);
+        metaDataSys.SetEntityDescription(eUid.Value, owoSys.Accentuate(meta.EntityDescription), meta);
     }
 }
index 5310c2dd7f5c73df0f3942ce38ec390ca91e93cc..a7b6849423e01b512d85ed5022bfcd0536562050 100644 (file)
@@ -11,6 +11,7 @@ namespace Content.Server.Administration.Commands
     [AdminCommand(AdminFlags.Admin)]
     sealed class SetMindCommand : IConsoleCommand
     {
+        [Dependency] private readonly IEntityManager _entManager = default!;
 
         public string Command => "setmind";
 
@@ -26,7 +27,7 @@ namespace Content.Server.Administration.Commands
                 return;
             }
 
-            if (!int.TryParse(args[0], out var entityUid))
+            if (!int.TryParse(args[0], out var entInt))
             {
                 shell.WriteLine(Loc.GetString("shell-entity-uid-must-be-number"));
                 return;
@@ -38,17 +39,15 @@ namespace Content.Server.Administration.Commands
                 ghostOverride = bool.Parse(args[2]);
             }
 
-            var entityManager = IoCManager.Resolve<IEntityManager>();
+            var nent = new NetEntity(entInt);
 
-            var eUid = new EntityUid(entityUid);
-
-            if (!eUid.IsValid() || !entityManager.EntityExists(eUid))
+            if (!_entManager.TryGetEntity(nent, out var eUid))
             {
                 shell.WriteLine(Loc.GetString("shell-invalid-entity-id"));
                 return;
             }
 
-            if (!entityManager.HasComponent<MindContainerComponent>(eUid))
+            if (!_entManager.HasComponent<MindContainerComponent>(eUid))
             {
                 shell.WriteLine(Loc.GetString("set-mind-command-target-has-no-mind-message"));
                 return;
@@ -68,8 +67,8 @@ namespace Content.Server.Administration.Commands
                 return;
             }
 
-            var mindSystem = entityManager.System<SharedMindSystem>();
-            var metadata = entityManager.GetComponent<MetaDataComponent>(eUid);
+            var mindSystem = _entManager.System<SharedMindSystem>();
+            var metadata = _entManager.GetComponent<MetaDataComponent>(eUid.Value);
 
             var mind = playerCData.Mind ?? mindSystem.CreateMind(session.UserId, metadata.EntityName);
 
index 72ff9ff9b6287a7dd21adddbdf14ec687184a4a8..79e73ce3d972207f7af521074f0fd40c03586af8 100644 (file)
@@ -34,21 +34,21 @@ namespace Content.Server.Administration.Commands
                 return;
             }
 
-            if (!int.TryParse(args[0], out var entityUid))
+            if (!int.TryParse(args[0], out var entInt))
             {
                 shell.WriteLine(Loc.GetString("shell-entity-uid-must-be-number"));
                 return;
             }
 
-            var target = new EntityUid(entityUid);
+            var nent = new NetEntity(entInt);
 
-            if (!target.IsValid() || !_entities.EntityExists(target))
+            if (!_entities.TryGetEntity(nent, out var target))
             {
                 shell.WriteLine(Loc.GetString("shell-invalid-entity-id"));
                 return;
             }
 
-            if (!_entities.HasComponent<InventoryComponent?>(target))
+            if (!_entities.HasComponent<InventoryComponent>(target))
             {
                 shell.WriteLine(Loc.GetString("shell-target-entity-does-not-have-message", ("missing", "inventory")));
                 return;
@@ -63,12 +63,12 @@ namespace Content.Server.Administration.Commands
                 }
 
                 var eui = IoCManager.Resolve<EuiManager>();
-                var ui = new SetOutfitEui(target);
+                var ui = new SetOutfitEui(nent);
                 eui.OpenEui(ui, player);
                 return;
             }
 
-            if (!SetOutfit(target, args[1], _entities))
+            if (!SetOutfit(target.Value, args[1], _entities))
                 shell.WriteLine(Loc.GetString("set-outfit-command-invalid-outfit-id-error"));
         }
 
index cfd8311d8e8349703fae67ec0ff6a8a32562015a..b476477ab710491d190328c6b3faa1d884c327db 100644 (file)
@@ -385,7 +385,7 @@ namespace Content.Server.Administration.Systems
                     Text = Loc.GetString("set-outfit-verb-get-data-text"),
                     Category = VerbCategory.Debug,
                     Icon = new SpriteSpecifier.Texture(new ("/Textures/Interface/VerbIcons/outfit.svg.192dpi.png")),
-                    Act = () => _euiManager.OpenEui(new SetOutfitEui(args.Target), player),
+                    Act = () => _euiManager.OpenEui(new SetOutfitEui(GetNetEntity(args.Target)), player),
                     Impact = LogImpact.Medium
                 };
                 args.Verbs.Add(verb);
index 6243657c3253143814d3c305259797629ef071b0..2812975f4d7b2caca69f8c218c88f9fe310198a2 100644 (file)
@@ -10,10 +10,9 @@ namespace Content.Server.Administration.UI
     public sealed class SetOutfitEui : BaseEui
     {
         [Dependency] private readonly IAdminManager _adminManager = default!;
-        [Dependency] private readonly IEntityManager _entManager = default!;
-        private readonly EntityUid _target;
+        private readonly NetEntity _target;
 
-        public SetOutfitEui(EntityUid entity)
+        public SetOutfitEui(NetEntity entity)
         {
             _target = entity;
             IoCManager.InjectDependencies(this);
@@ -31,7 +30,7 @@ namespace Content.Server.Administration.UI
         {
             return new SetOutfitEuiState
             {
-                TargetNetEntity = _entManager.GetNetEntity(_target)
+                TargetNetEntity = _target,
             };
         }
 
index 280bf75a614c1306c94515b31077d8fdeb95e5d7..5ce29b6d8ecb8198edbbd426bf1f446b9b9048cf 100644 (file)
@@ -31,13 +31,13 @@ internal sealed class UpgradeActionCommand : IConsoleCommand
         var actionUpgrade = _entMan.EntitySysManager.GetEntitySystem<ActionUpgradeSystem>();
         var id = args[0];
 
-        if (!EntityUid.TryParse(id, out var uid))
+        if (!NetEntity.TryParse(id, out var nuid))
         {
             shell.WriteLine(Loc.GetString("upgradeaction-command-incorrect-entityuid-format"));
             return;
         }
 
-        if (!_entMan.EntityExists(uid))
+        if (!_entMan.TryGetEntity(nuid, out var uid))
         {
             shell.WriteLine(Loc.GetString("upgradeaction-command-entity-does-not-exist"));
             return;
index 6a17a52c3dc54bd45562f0f76e629de224dbb981..872df8eae891692f9718ddf42cf086084457f875 100644 (file)
@@ -52,7 +52,8 @@ public sealed class RandomHumanoidSystem : EntitySystem
             {
                 var comp = (Component) _serialization.CreateCopy(entry.Component, notNullableOverride: true);
                 comp.Owner = humanoid; // This .owner must survive for now.
-                EntityManager.AddComponent(humanoid, comp, true);
+                EntityManager.RemoveComponent(humanoid, comp.GetType());
+                EntityManager.AddComponent(humanoid, comp);
             }
         }
 
index 1b183c5c3f8ff7b97fdb9565636808a81c6e9a24..c57d73435436d55b67f85365afe886dce0e474c5 100644 (file)
@@ -27,7 +27,8 @@ namespace Content.Server.Jobs
 
                 var temp = (object) component;
                 serializationManager.CopyTo(data.Component, ref temp);
-                entityManager.AddComponent(mob, (Component) temp!, true);
+                entityManager.RemoveComponent(mob, temp!.GetType());
+                entityManager.AddComponent(mob, (Component) temp);
             }
         }
     }
index 070b9f35d3260ba360fa1c21c2a782f447e84c8c..c5582b7b4c3b8aaa12451abdf0732e290a0def10 100644 (file)
@@ -24,11 +24,11 @@ namespace Content.Server.NPC.Commands
                 return;
             }
 
-            var entId = new EntityUid(int.Parse(args[0]));
+            var nent = new NetEntity(int.Parse(args[0]));
 
-            if (!_entities.EntityExists(entId))
+            if (!_entities.TryGetEntity(nent, out var entId))
             {
-                shell.WriteError($"Unable to find entity with uid {entId}");
+                shell.WriteError($"Unable to find entity {nent}");
                 return;
             }
 
@@ -38,7 +38,7 @@ namespace Content.Server.NPC.Commands
                 return;
             }
 
-            var comp = _entities.AddComponent<HTNComponent>(entId);
+            var comp = _entities.AddComponent<HTNComponent>(entId.Value);
             comp.RootTask = new HTNCompoundTask()
             {
                 Task = args[1]
index cc20b7194691ca24cb5632bf1ab41ef6c3793f60..2ab29d1b2f01533ec430dfc74bd30b034de5732c 100644 (file)
@@ -11,6 +11,9 @@ namespace Content.Server.Sandbox.Commands
     [AnyCommand]
     public sealed class ColorNetworkCommand : IConsoleCommand
     {
+        [Dependency] private readonly IAdminManager _adminManager = default!;
+        [Dependency] private readonly IEntityManager _entManager = default!;
+
         public string Command => "colornetwork";
         public string Description => Loc.GetString("color-network-command-description");
         public string Help => Loc.GetString("color-network-command-help-text", ("command",Command));
@@ -30,25 +33,21 @@ namespace Content.Server.Sandbox.Commands
                 return;
             }
 
-
-
-            var entityManager = IoCManager.Resolve<IEntityManager>();
-
             if (!int.TryParse(args[0], out var targetId))
             {
                 shell.WriteLine(Loc.GetString("shell-argument-must-be-number"));
                 return;
             }
 
-            var eUid = new EntityUid(targetId);
+            var nent = new NetEntity(targetId);
 
-            if (!eUid.IsValid() || !entityManager.EntityExists(eUid))
+            if (!_entManager.TryGetEntity(nent, out var eUid))
             {
                 shell.WriteLine(Loc.GetString("shell-invalid-entity-id"));
                 return;
             }
 
-            if (!entityManager.TryGetComponent(eUid, out NodeContainerComponent? nodeContainerComponent))
+            if (!_entManager.TryGetComponent(eUid, out NodeContainerComponent? nodeContainerComponent))
             {
                 shell.WriteLine(Loc.GetString("shell-entity-is-not-node-container"));
                 return;
@@ -74,13 +73,15 @@ namespace Content.Server.Sandbox.Commands
         {
             var group = nodeContainerComponent.Nodes[nodeGroupId.ToString().ToLower()].NodeGroup;
 
-            if (group == null) return;
+            if (group == null)
+                return;
 
             foreach (var x in group.Nodes)
             {
-                if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(x.Owner, out AtmosPipeColorComponent? atmosPipeColorComponent)) continue;
+                if (!_entManager.TryGetComponent(x.Owner, out AtmosPipeColorComponent? atmosPipeColorComponent))
+                    continue;
 
-                EntitySystem.Get<AtmosPipeColorSystem>().SetColor(x.Owner, atmosPipeColorComponent, color);
+                _entManager.System<AtmosPipeColorSystem>().SetColor(x.Owner, atmosPipeColorComponent, color);
             }
         }
     }
index fd656a9f7174173d1878fde789d37d2f2cc47cc8..cdaed3f928e9044f464cfd9bd5472b6bd0f2ceb6 100644 (file)
@@ -12,6 +12,10 @@ namespace Content.Server.Traitor.Uplink.Commands
     [AdminCommand(AdminFlags.Admin)]
     public sealed class AddUplinkCommand : IConsoleCommand
     {
+        [Dependency] private readonly IConfigurationManager _cfgManager = default!;
+        [Dependency] private readonly IEntityManager _entManager = default!;
+        [Dependency] private readonly IPlayerManager _playerManager = default!;
+
         public string Command => "adduplink";
 
         public string Description => Loc.GetString("add-uplink-command-description");
@@ -41,7 +45,7 @@ namespace Content.Server.Traitor.Uplink.Commands
             if (args.Length > 0)
             {
                 // Get player entity
-                if (!IoCManager.Resolve<IPlayerManager>().TryGetSessionByUsername(args[0], out session))
+                if (!_playerManager.TryGetSessionByUsername(args[0], out session))
                 {
                     shell.WriteLine(Loc.GetString("shell-target-player-does-not-exist"));
                     return;
@@ -60,7 +64,6 @@ namespace Content.Server.Traitor.Uplink.Commands
 
             // Get target item
             EntityUid? uplinkEntity = null;
-            var entityManager = IoCManager.Resolve<IEntityManager>();
             if (args.Length >= 2)
             {
                 if (!int.TryParse(args[1], out var itemID))
@@ -69,8 +72,9 @@ namespace Content.Server.Traitor.Uplink.Commands
                     return;
                 }
 
-                var eUid = new EntityUid(itemID);
-                if (!eUid.IsValid() || !entityManager.EntityExists(eUid))
+                var eNet = new NetEntity(itemID);
+
+                if (!_entManager.TryGetEntity(eNet, out var eUid))
                 {
                     shell.WriteLine(Loc.GetString("shell-invalid-entity-id"));
                     return;
@@ -80,11 +84,10 @@ namespace Content.Server.Traitor.Uplink.Commands
             }
 
             // Get TC count
-            var configManager = IoCManager.Resolve<IConfigurationManager>();
-            var tcCount = configManager.GetCVar(CCVars.TraitorStartingBalance);
-            Logger.Debug(entityManager.ToPrettyString(user));
+            var tcCount = _cfgManager.GetCVar(CCVars.TraitorStartingBalance);
+            Logger.Debug(_entManager.ToPrettyString(user));
             // Finally add uplink
-            var uplinkSys = entityManager.EntitySysManager.GetEntitySystem<UplinkSystem>();
+            var uplinkSys = _entManager.System<UplinkSystem>();
             if (!uplinkSys.AddUplink(user, FixedPoint2.New(tcCount), uplinkEntity: uplinkEntity))
             {
                 shell.WriteLine(Loc.GetString("add-uplink-command-error-2"));
index af2131fb55129dac4e120abb626c95fb845167c3..7d87f685f7e52c55899cde18f9672fc5c467d57d 100644 (file)
@@ -9,6 +9,8 @@ namespace Content.Server.Verbs.Commands
     [AdminCommand(AdminFlags.Admin)]
     public sealed class InvokeVerbCommand : IConsoleCommand
     {
+        [Dependency] private readonly IEntityManager _entManager = default!;
+
         public string Command => "invokeverb";
         public string Description => Loc.GetString("invoke-verb-command-description");
         public string Help => Loc.GetString("invoke-verb-command-help");
@@ -21,8 +23,7 @@ namespace Content.Server.Verbs.Commands
                 return;
             }
 
-            var entityManager = IoCManager.Resolve<IEntityManager>();
-            var verbSystem = entityManager.System<SharedVerbSystem>();
+            var verbSystem = _entManager.System<SharedVerbSystem>();
 
             // get the 'player' entity (defaulting to command user, otherwise uses a uid)
             EntityUid? playerEntity = null;
@@ -40,7 +41,7 @@ namespace Content.Server.Verbs.Commands
             }
             else
             {
-                entityManager.EntityExists(new EntityUid(intPlayerUid));
+                _entManager.TryGetEntity(new NetEntity(intPlayerUid), out playerEntity);
             }
 
             // gets the target entity
@@ -56,16 +57,16 @@ namespace Content.Server.Verbs.Commands
                 return;
             }
 
-            var target = new EntityUid(intUid);
-            if (!entityManager.EntityExists(target))
+            var targetNet = new NetEntity(intUid);
+
+            if (!_entManager.TryGetEntity(targetNet, out var target))
             {
                 shell.WriteError(Loc.GetString("invoke-verb-command-invalid-target-entity"));
                 return;
             }
 
             var verbName = args[2].ToLowerInvariant();
-            var verbs = verbSystem.GetLocalVerbs(target, playerEntity.Value, Verb.VerbTypes, true);
-
+            var verbs = verbSystem.GetLocalVerbs(target.Value, playerEntity.Value, Verb.VerbTypes, true);
 
             // if the "verb name" is actually a verb-type, try run any verb of that type.
             var verbType = Verb.VerbTypes.FirstOrDefault(x => x.Name == verbName);
@@ -74,7 +75,7 @@ namespace Content.Server.Verbs.Commands
                 var verb = verbs.FirstOrDefault(v => v.GetType() == verbType);
                 if (verb != null)
                 {
-                    verbSystem.ExecuteVerb(verb, playerEntity.Value, target, forced: true);
+                    verbSystem.ExecuteVerb(verb, playerEntity.Value, target.Value, forced: true);
                     shell.WriteLine(Loc.GetString("invoke-verb-command-success", ("verb", verbName), ("target", target), ("player", playerEntity)));
                     return;
                 }
@@ -84,7 +85,7 @@ namespace Content.Server.Verbs.Commands
             {
                 if (verb.Text.ToLowerInvariant() == verbName)
                 {
-                    verbSystem.ExecuteVerb(verb, playerEntity.Value, target, forced: true);
+                    verbSystem.ExecuteVerb(verb, playerEntity.Value, target.Value, forced: true);
                     shell.WriteLine(Loc.GetString("invoke-verb-command-success", ("verb", verb.Text), ("target", target), ("player", playerEntity)));
                     return;
                 }
index dc56cffb444b3a8b61ebd584872cf957584d3fe2..7b541afa666a9565fe2812143966ac0cd9409c74 100644 (file)
@@ -8,6 +8,8 @@ namespace Content.Server.Verbs.Commands
     [AdminCommand(AdminFlags.Admin)]
     public sealed class ListVerbsCommand : IConsoleCommand
     {
+        [Dependency] private readonly IEntityManager _entManager = default!;
+
         public string Command => "listverbs";
         public string Description => Loc.GetString("list-verbs-command-description");
         public string Help => Loc.GetString("list-verbs-command-help");
@@ -20,11 +22,11 @@ namespace Content.Server.Verbs.Commands
                 return;
             }
 
-            var entityManager = IoCManager.Resolve<IEntityManager>();
-            var verbSystem = EntitySystem.Get<SharedVerbSystem>();
+            var verbSystem = _entManager.System<SharedVerbSystem>();
 
             // get the 'player' entity (defaulting to command user, otherwise uses a uid)
             EntityUid? playerEntity = null;
+
             if (!int.TryParse(args[0], out var intPlayerUid))
             {
                 if (args[0] == "self" && shell.Player?.AttachedEntity != null)
@@ -39,7 +41,7 @@ namespace Content.Server.Verbs.Commands
             }
             else
             {
-                entityManager.EntityExists(new EntityUid(intPlayerUid));
+                _entManager.TryGetEntity(new NetEntity(intPlayerUid), out playerEntity);
             }
 
             // gets the target entity
@@ -55,14 +57,15 @@ namespace Content.Server.Verbs.Commands
                 return;
             }
 
-            var target = new EntityUid(intUid);
-            if (!entityManager.EntityExists(target))
+            var targetNet = new NetEntity(intUid);
+
+            if (!_entManager.TryGetEntity(targetNet, out var target))
             {
                 shell.WriteError(Loc.GetString("list-verbs-command-invalid-target-entity"));
                 return;
             }
 
-            var verbs = verbSystem.GetLocalVerbs(target, playerEntity.Value, Verb.VerbTypes);
+            var verbs = verbSystem.GetLocalVerbs(target.Value, playerEntity.Value, Verb.VerbTypes);
 
             foreach (var verb in verbs)
             {
index af1f74dde8afb57c7de60efc9fe14a81635cc2c2..70ae7dcf0f370f45aa28fc6d856606caa81cd4b7 100644 (file)
@@ -199,8 +199,8 @@ public sealed partial class ArtifactSystem
 
             var temp = (object) comp;
             _serialization.CopyTo(entry.Component, ref temp);
-
-            EntityManager.AddComponent(uid, (Component) temp!, true);
+            EntityManager.RemoveComponent(uid, temp!.GetType());
+            EntityManager.AddComponent(uid, (Component) temp!);
         }
 
         node.Discovered = true;
@@ -234,7 +234,8 @@ public sealed partial class ArtifactSystem
                 comp.Owner = uid;
                 var temp = (object) comp;
                 _serialization.CopyTo(entry, ref temp);
-                EntityManager.AddComponent(uid, (Component) temp!, true);
+                EntityManager.RemoveComponent(uid, temp!.GetType());
+                EntityManager.AddComponent(uid, (Component) temp);
                 continue;
             }