using System; using Content.Shared.GameObjects.Components.Inventory; using JetBrains.Annotations; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; namespace Content.Shared.Interfaces.GameObjects.Components { /// /// This interface gives components behavior when their owner is put in an inventory slot. /// public interface IEquipped { void Equipped(EquippedEventArgs eventArgs); } public class EquippedEventArgs : EventArgs { public EquippedEventArgs(IEntity user, EquipmentSlotDefines.Slots slot) { User = user; Slot = slot; } public IEntity User { get; } public EquipmentSlotDefines.Slots Slot { get; } } /// /// Raised when equipping the entity in an inventory slot. /// [PublicAPI] public class EquippedMessage : EntitySystemMessage { /// /// If this message has already been "handled" by a previous system. /// public bool Handled { get; set; } /// /// Entity that equipped the item. /// public IEntity User { get; } /// /// Item that was equipped. /// public IEntity Equipped { get; } /// /// Slot where the item was placed. /// public EquipmentSlotDefines.Slots Slot { get; } public EquippedMessage(IEntity user, IEntity equipped, EquipmentSlotDefines.Slots slot) { User = user; Equipped = equipped; Slot = slot; } } }