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 thrown. /// public interface IThrown { void Thrown(ThrownEventArgs eventArgs); } public class ThrownEventArgs : EventArgs { public ThrownEventArgs(IEntity user) { User = user; } public IEntity User { get; } } /// /// Raised when throwing the entity in your hands. /// [PublicAPI] public class ThrownMessage : EntitySystemMessage { /// /// If this message has already been "handled" by a previous system. /// public bool Handled { get; set; } /// /// Entity that threw the item. /// public IEntity User { get; } /// /// Item that was thrown. /// public IEntity Thrown { get; } public ThrownMessage(IEntity user, IEntity thrown) { User = user; Thrown = thrown; } } }