diff --git a/Content.Server/Storage/Components/EntityStorageComponent.cs b/Content.Server/Storage/Components/EntityStorageComponent.cs index cd45675f95..edba41b62c 100644 --- a/Content.Server/Storage/Components/EntityStorageComponent.cs +++ b/Content.Server/Storage/Components/EntityStorageComponent.cs @@ -373,14 +373,7 @@ namespace Content.Server.Storage.Components return true; } - if (!Contents.Insert(entity)) return false; - - entity.Transform.LocalPosition = Vector2.Zero; - if (entity.TryGetComponent(out IPhysBody? body)) - { - body.CanCollide = false; - } - return true; + return Contents.Insert(entity); } /// diff --git a/Content.Server/Storage/Components/IStorageComponent.cs b/Content.Server/Storage/Components/IStorageComponent.cs index 3f7f052d90..c2169695c5 100644 --- a/Content.Server/Storage/Components/IStorageComponent.cs +++ b/Content.Server/Storage/Components/IStorageComponent.cs @@ -2,7 +2,7 @@ using Robust.Shared.GameObjects; namespace Content.Server.Storage.Components { - public interface IStorageComponent + public interface IStorageComponent : IComponent { bool Remove(IEntity entity); bool Insert(IEntity entity); diff --git a/Content.Server/Storage/Components/StorageFillComponent.cs b/Content.Server/Storage/Components/StorageFillComponent.cs index ed56832fb8..2af21ed610 100644 --- a/Content.Server/Storage/Components/StorageFillComponent.cs +++ b/Content.Server/Storage/Components/StorageFillComponent.cs @@ -50,8 +50,12 @@ namespace Content.Server.Storage.Components for (var i = 0; i < storageItem.Amount; i++) { - storage.Insert( - Owner.EntityManager.SpawnEntity(storageItem.PrototypeId, Owner.Transform.Coordinates)); + var ent = Owner.EntityManager.SpawnEntity(storageItem.PrototypeId, Owner.Transform.Coordinates); + + if (storage.Insert(ent)) continue; + + Logger.ErrorS("storage", $"Tried to StorageFill {storageItem.PrototypeId} inside {Owner} but can't."); + Owner.EntityManager.DeleteEntity(ent); } if (!string.IsNullOrEmpty(storageItem.GroupId)) alreadySpawnedGroups.Add(storageItem.GroupId);