#nullable enable using System; using JetBrains.Annotations; using Robust.Shared.Analyzers; using Robust.Shared.GameObjects; namespace Content.Shared.Interfaces.GameObjects.Components { /// /// This interface gives components behavior when they're held on a deselected hand. /// [RequiresExplicitImplementation] public interface IHandDeselected { void HandDeselected(HandDeselectedEventArgs eventArgs); } public class HandDeselectedEventArgs : EventArgs { public HandDeselectedEventArgs(IEntity user) { User = user; } public IEntity User { get; } } /// /// Raised when an entity item in a hand is deselected. /// [PublicAPI] public class HandDeselectedMessage : EntitySystemMessage { /// /// If this message has already been "handled" by a previous system. /// public bool Handled { get; set; } /// /// Entity that owns the deselected hand. /// public IEntity User { get; } /// /// The item in question. /// public IEntity Item { get; } public HandDeselectedMessage(IEntity user, IEntity item) { User = user; Item = item; } } }