using SS14.Shared.Interfaces.GameObjects; using System.Collections.Generic; namespace Content.Server.Interfaces.GameObjects { public interface IHandsComponent : IComponent { /// /// The hand index of the currently active hand. /// string ActiveIndex { get; } /// /// Enumerates over every held item. /// IEnumerable GetAllHands(); /// /// Gets the item held by a hand. /// /// The index of the hand to get. /// The item in the held, null if no item is held IItemComponent GetHand(string index); /// /// Puts an item into any empty hand, preferring the active hand. /// /// The item to put in a hand. /// True if the item was inserted, false otherwise. bool PutInHand(IItemComponent item); /// /// Puts an item into a specific hand. /// /// The item to put in the hand. /// The index of the hand to put the item into. /// /// If true and the provided hand is full, the method will fall back to /// /// True if the item was inserted into a hand, false otherwise. bool PutInHand(IItemComponent item, string index, bool fallback=true); /// /// Drops an item on the ground, removing it from the hand. /// /// The hand to drop from. /// True if an item was successfully dropped, false otherwise. bool Drop(string index); } }