interface gui { use text.{text-component}; use common.{click-type}; use item-stack.{item-stack}; use screens.{screen}; use inventory.{inventory}; resource gui { constructor(%type: screen, title: text-component); /// Returns the underlying inventory handle for this GUI. get-inventory: func() -> inventory; set-item: func(slot: u32, item: item-stack); get-item: func(slot: u32) -> option; /// Returns the type of this GUI. get-type: func() -> screen; /// Returns the title of this GUI. get-title: func() -> text-component; /// Returns the number of slots in this GUI. get-size: func() -> u32; /// Clears all items from the GUI. clear-items: func(); /// Sets whether players can grab items out of the inventory. set-allow-grab-items: func(allow: bool); /// Returns whether players can grab items out of the inventory. get-allow-grab-items: func() -> bool; /// Sets whether players can put items into the inventory from their own. set-allow-put-items: func(allow: bool); /// Returns whether players can put items into the inventory from their own. get-allow-put-items: func() -> bool; } }