using Content.Server.Storage.Components; using Content.Shared.Storage; namespace Content.Server.Storage.EntitySystems; public sealed partial class StorageSystem { private void OnStorageFillMapInit(EntityUid uid, StorageFillComponent component, MapInitEvent args) { if (component.Contents.Count == 0) return; TryComp(uid, out var serverStorageComp); TryComp(uid, out var entityStorageComp); if (entityStorageComp == null && serverStorageComp == null) { Logger.Error($"StorageFillComponent couldn't find any StorageComponent ({uid})"); return; } var coordinates = Transform(uid).Coordinates; var spawnItems = EntitySpawnCollection.GetSpawns(component.Contents, _random); foreach (var item in spawnItems) { var ent = EntityManager.SpawnEntity(item, coordinates); // handle depending on storage component, again this should be unified after ECS if (entityStorageComp != null && _entityStorage.Insert(ent, uid)) continue; if (serverStorageComp != null && Insert(uid, ent, serverStorageComp, false)) continue; Logger.ErrorS("storage", $"Tried to StorageFill {item} inside {ToPrettyString(uid)} but can't."); EntityManager.DeleteEntity(ent); } } }