diff --git a/Robust.Shared/GameObjects/EntityManager.Spawn.cs b/Robust.Shared/GameObjects/EntityManager.Spawn.cs index 046cf3deab5..11bbb2b8d38 100644 --- a/Robust.Shared/GameObjects/EntityManager.Spawn.cs +++ b/Robust.Shared/GameObjects/EntityManager.Spawn.cs @@ -7,7 +7,6 @@ using Robust.Shared.Collections; using Robust.Shared.Containers; using Robust.Shared.Maths; -using Robust.Shared.Serialization; namespace Robust.Shared.GameObjects; @@ -151,10 +150,14 @@ public bool TrySpawnNextTo( return true; } - var doMapInit = _mapSystem.IsInitialized(xform.MapUid); - uid = Spawn(protoName, overrides, doMapInit); + uid = Spawn(protoName, overrides, doMapInit: false); if (_containers.Insert(uid.Value, container)) + { + if (_mapSystem.IsInitialized(xform.MapUid)) + RunMapInit(uid.Value, MetaQuery.Comp(uid.Value)); + return true; + } DeleteEntity(uid.Value); uid = null; @@ -176,11 +179,15 @@ public bool TrySpawnInContainer( if (!containerComp.Containers.TryGetValue(containerId, out var container)) return false; - var doMapInit = _mapSystem.IsInitialized(TransformQuery.GetComponent(containerUid).MapUid); - uid = Spawn(protoName, overrides, doMapInit); + uid = Spawn(protoName, overrides, doMapInit: false); if (_containers.Insert(uid.Value, container)) + { + if (_mapSystem.IsInitialized(TransformQuery.GetComponent(containerUid).MapUid)) + RunMapInit(uid.Value, MetaQuery.Comp(uid.Value)); + return true; + } DeleteEntity(uid.Value); uid = null; @@ -193,9 +200,12 @@ public EntityUid SpawnNextToOrDrop(string? protoName, EntityUid target, Transfor if (!xform.ParentUid.IsValid()) return Spawn(protoName); - var doMapInit = _mapSystem.IsInitialized(xform.MapUid); - var uid = Spawn(protoName, overrides, doMapInit); + var uid = Spawn(protoName, overrides, doMapInit: false); _xforms.DropNextTo(uid, target); + + if (_mapSystem.IsInitialized(xform.MapUid)) + RunMapInit(uid, MetaQuery.Comp(uid)); + return uid; } @@ -221,8 +231,7 @@ public EntityUid SpawnInContainerOrDrop( { inserted = true; xform ??= TransformQuery.GetComponent(containerUid); - var doMapInit = _mapSystem.IsInitialized(xform.MapUid); - var uid = Spawn(protoName, overrides, doMapInit); + var uid = Spawn(protoName, overrides, doMapInit: false); if ((containerComp == null && !TryGetComponent(containerUid, out containerComp)) || !containerComp.Containers.TryGetValue(containerId, out var container) @@ -233,6 +242,9 @@ public EntityUid SpawnInContainerOrDrop( _xforms.DropNextTo(uid, (containerUid, xform)); } + if (_mapSystem.IsInitialized(xform.MapUid)) + RunMapInit(uid, MetaQuery.Comp(uid)); + return uid; }