///
/**
* ### 👜 容器对象
*
* 在LLSE中,使用「容器对象」来操作拥有格子、可以储存和放置物品的容器的相关信息。
*
* 此处的 **容器** 是一种宽泛的概念,除了箱子、桶这些传统的容器之外,如玩家物品栏、羊驼携带的箱子等这些也统统可以作为「容器」处理,获取并使用容器对应的API
*
* **注意**:在修改完玩家物品栏对应的物品之后,不要忘记使用玩家对象的成员函数{@linkcode Player.refreshItems()},刷新客户端显示的玩家物品栏
*
* **注意**:不要长期保存一个容器对象\
* 当容器对象对应的实体 / 方块被销毁时,对应的容器对象将变得无效。\
* 因此,如果有长期操作某个容器的需要,请通过上述途径获取实时的容器对象
*
* 该类**没有构造函数**,请通过事件或API获取
*
* @see [👜 容器对象 API](https://docs.litebds.com/zh-Hans/#/LLSEPluginDevelopment/GameAPI/Container)
*/
declare class Container {
/** 容器拥有的格子总数 */
readonly size: number;
/** 容器的类型名 */
readonly type: string;
/**
* ### 放入物品对象到容器中
*
* **注意**:在修改完玩家物品栏对应的物品之后,不要忘记使用玩家对象的成员函数{@linkcode Player.refreshItems()},刷新客户端显示的玩家物品栏
*
* @param item 待增加的物品对象
*
* @returns 是否成功增加
*/
addItem(item: Item): boolean;
/**
* ### 放入物品对象到容器的第一个空格子
*
* **注意**:此函数将不会堆叠至容器内现有的物品堆中
*
* **注意**:在修改完玩家物品栏对应的物品之后,不要忘记使用玩家对象的成员函数{@linkcode Player.refreshItems()},刷新客户端显示的玩家物品栏
*
* @param item 待增加的物品对象
*
* @returns 是否成功增加
*/
addItemToFirstEmptySlot(item: Item): boolean;
/**
* ### 检查容器中是否(有空间)可以放入此物品
*
* @param item 待放入的物品对象
*
* @returns 是否可以放入
*/
hasRoomFor(item: Item): boolean;
/**
* ##d 减少容器中的某个物品对象
*
* @param index 减少的物品对象所在的格子序号
* @param count 减少的数量。如果大于等于此格子物品堆叠的数量,则物品堆将被整个清除
*
* @returns 是否成功减少
*/
removeItem(index: number, count: number): boolean;
/**
* ### 获取容器某个格子的物品对象
*
* 此处获取的物品对象为引用。也就是说,修改此处返回的物品对象,或使用其API,就相当于直接操作容器中对应的物品
*
* **注意**:在修改完玩家物品栏对应的物品之后,不要忘记使用玩家对象的成员函数{@linkcode Player.refreshItems()},刷新客户端显示的玩家物品栏
*
* @param index 待获取的格子序号
*
* @returns 格子位置的物品对象
*/
getItem(index: number): Item;
/**
* ### 设置容器某个格子的物品对象
*
* **注意**:在修改完玩家物品栏对应的物品之后,不要忘记使用玩家对象的成员函数{@linkcode Player.refreshItems()},刷新客户端显示的玩家物品栏
*
* @param index 待设置的格子序号
* @param item 待设置的物品对象
*
* @returns 是否设置成功
*/
setItem(index: number, item: Item): boolean;
/**
* ### 获取容器所有格子的物品对象列表
*
* 此处获取的物品对象均为引用。也就是说,修改此处返回的物品对象,或使用其API,就相当于直接操作容器中对应的物品
*
* **注意**:在修改完玩家物品栏对应的物品之后,不要忘记使用玩家对象的成员函数{@linkcode Player.refreshItems()},刷新客户端显示的玩家物品栏
*
* @returns 容器中所有的物品对象
*/
getAllItems(): Array- ;
/**
* ### 清空容器
*
* **注意**:在修改完玩家物品栏对应的物品之后,不要忘记使用玩家对象的成员函数{@linkcode Player.refreshItems()},刷新客户端显示的玩家物品栏
*
* @returns 是否成功清空
*/
removeAllItems(): boolean;
/**
* ### 判断容器是否为空
*
* @returns 判断容器是否为空
*/
isEmpty(): boolean;
/**
* @deprecated
* @alias {@linkcode getItem()}
*/
getSlot(index: number): Item;
/**
* @deprecated
* @alias {@linkcode getAllItems()}
*/
getAllSlots(): Array
- ;
asPointer(): NativePointer;
}
declare class LLSE_Container extends Container {}