diff --git a/Content.Server/GameObjects/Components/Items/Storage/EntityStorageComponent.cs b/Content.Server/GameObjects/Components/Items/Storage/EntityStorageComponent.cs index 77eab4ac52..75fa7111c2 100644 --- a/Content.Server/GameObjects/Components/Items/Storage/EntityStorageComponent.cs +++ b/Content.Server/GameObjects/Components/Items/Storage/EntityStorageComponent.cs @@ -150,8 +150,8 @@ namespace Content.Server.GameObjects.Components if(!entity.Transform.IsMapTransform) continue; - // only items that can be stored in an inventory, or a player, can be eaten by a locker - if(!entity.HasComponent() && !entity.HasComponent()) + // only items that can be stored in an inventory, or a mob, can be eaten by a locker + if (!entity.HasComponent() && !entity.HasComponent()) continue; if (!AddToContents(entity)) @@ -207,7 +207,8 @@ namespace Content.Server.GameObjects.Components private bool AddToContents(IEntity entity) { var collidableComponent = Owner.GetComponent(); - if(entity.TryGetComponent(out var entityCollidableComponent)) + ICollidableComponent entityCollidableComponent; + if (entity.TryGetComponent(out entityCollidableComponent)) { if(MaxSize < entityCollidableComponent.WorldAABB.Size.X || MaxSize < entityCollidableComponent.WorldAABB.Size.Y) @@ -247,6 +248,10 @@ namespace Content.Server.GameObjects.Components } Contents.Insert(entity); entity.Transform.WorldPosition = worldPos; + if (entityCollidableComponent != null) + { + entityCollidableComponent.CollisionEnabled = false; + } return true; } return false; @@ -256,7 +261,13 @@ namespace Content.Server.GameObjects.Components { foreach (var contained in Contents.ContainedEntities.ToArray()) { - Contents.Remove(contained); + if(Contents.Remove(contained)) + { + if (contained.TryGetComponent(out var entityCollidableComponent)) + { + entityCollidableComponent.CollisionEnabled = true; + } + } } }