using System; using JetBrains.Annotations; using Robust.Shared.Analyzers; using Robust.Shared.GameObjects; namespace Content.Shared.Interaction { /// /// This interface gives components behavior when using the entity in your active hand /// (done by clicking the entity in the active hand or pressing the keybind that defaults to Z). /// [RequiresExplicitImplementation] public interface IUse { /// /// Called when we activate an object we are holding to use it /// /// [Obsolete("Use UseInHandMessage instead")] bool UseEntity(UseEntityEventArgs eventArgs); } public class UseEntityEventArgs : EventArgs { public UseEntityEventArgs(IEntity user) { User = user; } public IEntity User { get; } } /// /// Raised when using the entity in your hands. /// [PublicAPI] public class UseInHandEvent : HandledEntityEventArgs { /// /// Entity holding the item in their hand. /// public IEntity User { get; } /// /// Item that was used. /// public IEntity Used { get; } public UseInHandEvent(IEntity user, IEntity used) { User = user; Used = used; } } }