using System; using JetBrains.Annotations; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; namespace Content.Shared.Interfaces.GameObjects.Components { /// /// This interface gives components behavior when they're dropped by a mob. /// public interface IDropped { void Dropped(DroppedEventArgs eventArgs); } public class DroppedEventArgs : EventArgs { public DroppedEventArgs(IEntity user) { User = user; } public IEntity User { get; } } /// /// Raised when an entity is dropped /// [PublicAPI] public class DroppedMessage : EntitySystemMessage { /// /// If this message has already been "handled" by a previous system. /// public bool Handled { get; set; } /// /// Entity that dropped the item. /// public IEntity User { get; } /// /// Item that was dropped. /// public IEntity Dropped { get; } public DroppedMessage(IEntity user, IEntity dropped) { User = user; Dropped = dropped; } } }