跳转至

构建器

​ GUI构建器可以完成GUI界面的构建工作,是容器GUI绘制和判别的基础。关于具体用法请见教程页。

名称 GUI构建器
包路径 util2.develop.gui.builder
开发者 kunjinkao_xs

class AutoFillList

  • 基类:list
  • 自填充列表,可以对任意索引进行赋值,自动扩大列表元素数,未赋值部分自动设为None

构造函数

AutoFillList()

方法

__setitem__(index, value)

  • 参数:
    • index: int - 索引
    • value: Any - 值
  • 对List内置方法重写,通过索引设置列表元素

setSize(size)

  • 参数:
    • size: int - 自填充列表尺寸
  • 设置自填充列表的元素数,多增少删

class GUIHolder

构造函数

GUIHolder(name)

  • 参数:
    • name: str - GUI名称,建议为形如script.a.b

方法

getName()

  • 获取GIU名称
  • 返回:str - GUI名称

def isGUI(invHolder, name=None)

  • 参数:
    • invHolder:
    • name:
      • None - 默认,只判断是否为本脚本的GUI
      • str - 判断GUI不仅是本脚本控制的,而且名称:
        • 输入以“.”结尾时,判断是否以name开头;
        • 其他情况下,判断是否为name。
    • 判断是否为脚本控制的GUI(处于同一Interpreter下)
    • 返回:bool - 是否为脚本控制的GUI

def initializeItemStack(material, name=None, *lores, **kwargs)

  • 参数:
    • material: Material | ItemStack - 物品的材料
    • name: str - 物品的显示名称
    • *lores: tuple[str] - 物品的Lore
    • **kwargs:
      • amount: int - 物品堆叠数量,默认为1
      • enchantment:
        • None - 默认,无附魔
        • bool - 是否有保护附魔
        • Enchantment - 指定附魔
      • data:
        • 默认不设置
        • str - 设置NamespacedKey('util2', 'guivalue')的字符串类型内容为传入值
  • 根据输入初始化ItemStack
  • 返回:ItemStack - 按要求设置的ItemStack

def getGUIValue(stack)

  • 参数:
  • 获取ItemStack存储的NamespacedKey('util2', 'guivalue')的字符串类型量
  • 返回:
    • str - 存储的字符串
    • None - 未存储时

class GUIConstructor

  • 基类: object
  • GUI构建器

构造函数

GUIConstructor(lst=None)

  • 参数:
    • lst: list - 初始列表,默认为空
  • GUI构建器

getContents()

  • 获取内容列表
  • 返回:AutoFillList - 内容列表

getSize()

  • 获取内容列表尺寸
  • 返回:int - 内容列表尺寸

isEmpty()

  • 判断内容列表是否为空
  • 返回:bool - 是否为空

clear()

  • 清空已设置内容。常用于无覆盖设计的GUI重新渲染

setItemStack(index, itemStack)

  • 参数:
    • index: int - 位置索引
    • itemStack: ItemStack - 拟设置的物品
  • 在指定的位置设置物品

set(index, material, name, *lores, **kwargs)

  • 参数:
    • index: int - 位置索引
    • material: Material | ItemStack - 物品的材料
    • name: str - 物品的显示名称
    • *lores: tuple[str] - 物品的Lore
    • **kwargs:
      • amount: int - 物品堆叠数量,默认为1
      • enchantment:
        • None - 默认,无附魔
        • bool - 是否有保护附魔
        • Enchantment - 指定附魔
      • data:
        • 默认不设置
        • str - 设置NamespacedKey('util2', 'guivalue')的字符串类型内容为传入值
  • 根据输入初始化ItemStack,并设置在指定位置上

addItemStack(interval, itemStack)

  • 参数:
    • interval: int - 位置间隔
    • itemStack: ItemStack - 拟设置的物品
  • 在最后一个元素之后隔inverval格加入指定物品

add(interval, material, name, *lores, **kwargs)

  • 参数:
    • interval: int - 位置间隔
    • material: Material | ItemStack - 物品的材料
    • name: str - 物品的显示名称
    • *lores: tuple[str] - 物品的Lore
    • **kwargs:
      • amount: int - 物品堆叠数量,默认为1
      • enchantment:
        • None - 默认,无附魔
        • bool - 是否有保护附魔
        • Enchantment - 指定附魔
      • data:
        • 默认不设置
        • str - 设置NamespacedKey('util2', 'guivalue')的字符串类型内容为传入值
  • 根据输入初始化ItemStack,并加入到最后一个元素之后隔inverval格后

remove(index)

  • 参数:
    • index: int - 位置索引
  • 移除指定位置的内容

pop(index)

  • 参数:
    • index: int - 位置索引
  • 移除并返回指定位置的内容
  • 返回:ItemStack | None - 被移除的内容

get(index)

  • 参数:
    • index: int - 位置索引
  • 获取指定位置的内容
  • 返回:ItemStack | None - 指定位置的内容

extend(constructor)

  • 参数:
    • constructor: GUIConstructor - 被合并在既有内容后的GUIConstructor
  • 将constructor的内容合并至当前对象后,用于菜单中不同区块的拼接

replace(constructor, fromInt, toInt=None)

  • 参数:
    • constructor: GUIConstructor - 拟进行替换内容的GUIConstructor
    • fromInt: int - 替换开始索引位置
    • toInt: int | None - 替换终止索引位置,默认以传入constructor长度确定终止位置
  • 将当前对象内容的fromInt至toInt替换为constructor

setDuplicateItemStack(fromIndex, toIndex, step, itemStack)

  • 参数:
    • fromIndex: int - 重复内容设置开始位置
    • toIndex: int - 重复内容设置终止位置
    • step: int - 步进,即每隔step格设置一次
    • itemStack: ItemStack - 拟设置的物品
  • 重复设置物品

setDuplicate(fromIndex, toIndex, step, material, name=None, *lores, **kwargs)

  • 参数:
    • fromIndex: int - 重复内容设置开始位置
    • toIndex: int - 重复内容设置终止位置
    • step: int - 步进,即每隔step格设置一次
    • material: Material | ItemStack - 物品的材料
    • name: str - 物品的显示名称,默认不设置
    • *lores: tuple[str] - 物品的Lore
    • **kwargs:
      • amount: int - 物品堆叠数量,默认为1
      • enchantment:
        • None - 默认,无附魔
        • bool - 是否有保护附魔
        • Enchantment - 指定附魔
      • data:
        • 默认不设置
        • str - 设置NamespacedKey('util2', 'guivalue')的字符串类型内容为传入值
  • 根据输入初始化ItemStack,并重复设置

spawnSeparators(fromIndex, toIndex, vertical=False, **kwargs)

  • 参数:
    • fromIndex: int - 隔板设置开始位置
    • toIndex: int - 隔板内容设置终止位置
    • vertical: bool - 是否为垂直线,默认为否(水平线)
    • **kwargs:
  • 生成隔板

toInventory(holderName, title, size=0)

  • 参数:
    • holderName: str - GUI名称,建议为形如script.a.b
    • title: str - GUI标题
    • size: int - 菜单大小,为不超过54的9的整数倍,默认0为根据内容尺寸的最小值
  • 转为Inventory,常用于GUI创建完成准备展示给玩家时,注意尺寸
  • 返回:Inventory - 生成的GUI