From 07b2ce138d25479059b213a4169d7e6b6d634b53 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Fri, 3 Dec 2021 21:19:53 +1100 Subject: [PATCH] entitystorage fixes (#5660) --- .../Storage/Components/EntityStorageComponent.cs | 9 +-------- Content.Server/Storage/Components/IStorageComponent.cs | 2 +- .../Storage/Components/StorageFillComponent.cs | 8 ++++++-- 3 files changed, 8 insertions(+), 11 deletions(-) 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);