using SS14.Server.GameObjects.Components.Container; using SS14.Server.Interfaces.GameObjects; using SS14.Shared.Interfaces.GameObjects; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using SS14.Shared.ViewVariables; namespace Content.Server.GameObjects { public class ContainerSlot : BaseContainer { [ViewVariables] public IEntity ContainedEntity { get; private set; } = null; /// public override IReadOnlyCollection ContainedEntities => new List { ContainedEntity }.AsReadOnly(); public ContainerSlot(string id, IContainerManager manager) : base(id, manager) { } /// public override bool CanInsert(IEntity toinsert) { if (ContainedEntity != null) return false; return base.CanInsert(toinsert); } /// public override bool Contains(IEntity contained) { if (contained != null && contained == ContainedEntity) return true; return false; } /// protected override void InternalInsert(IEntity toinsert) { ContainedEntity = toinsert; } /// protected override void InternalRemove(IEntity toremove) { ContainedEntity = null; } public override void Shutdown() { base.Shutdown(); ContainedEntity?.Delete(); } } }