using System; using TrueCraft.API.Networking; namespace TrueCraft.API.Windows { public interface IWindow : IDisposable, IEventSubject { event EventHandler WindowChange; IRemoteClient Client { get; set; } IWindowArea[] WindowAreas { get; } sbyte ID { get; set; } string Name { get; } sbyte Type { get; } int Length { get; } int MinecraftWasWrittenByFuckingIdiotsLength { get; } ItemStack this[int index] { get; set; } bool Empty { get; } short[] ReadOnlySlots { get; } /// /// Call this to "shift+click" an item from one area to another. /// void MoveToAlternateArea(int index); /// /// Gets an array of all slots in this window. Suitable for sending to clients over the network. /// ItemStack[] GetSlots(); void SetSlots(ItemStack[] slots); /// /// Adds the specified item stack to this window, merging with established slots as neccessary. /// bool PickUpStack(ItemStack slot); /// /// Copy the contents of this window back into an inventory window after changes have been made. /// void CopyToInventory(IWindow inventoryWindow); } }