using System.Collections.Generic; using Robust.Server.Interfaces.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.IoC; using Robust.Shared.Serialization; namespace Content.Server.GameObjects.Components.Items.Storage.Fill { [RegisterComponent] internal sealed class StorageFillComponent : Component, IMapInit { public override string Name => "StorageFill"; private List _contents = new List(); #pragma warning disable 649 [Dependency] private readonly IEntityManager _entityManager; #pragma warning restore 649 public override void ExposeData(ObjectSerializer serializer) { base.ExposeData(serializer); serializer.DataField(ref _contents, "contents", new List()); } void IMapInit.MapInit() { if (_contents.Count == 0) { return; } var storage = Owner.GetComponent(); void Spawn(string prototype) { storage.Insert(_entityManager.SpawnEntity(prototype, Owner.Transform.GridPosition)); } foreach (var prototype in _contents) { Spawn(prototype); } } } }