副 GUI 体系

基本信息

属性 值
实现目录 src/main/java/com/creativemd/littletiles/common/gui/
GUI 框架 内嵌的 CreativeCore(SubGui / SubContainer),非 ModularUI
打开的 GUI ID 1(player.openGui(CreativeCore.instance, 1, world, x, y, z))
SubGui 数 5
SubContainer 数 5
打开入口 物品的 onItemRightClick(客户端侧由 IGuiCreator 路由)

功能

除 Little Chisel 使用 ModularUI 2 外,其余带界面的工具都走 CreativeCore 的 SubGui / SubContainer 对。两者由 ItemLittleChisel 与其余 4 个 IGuiCreator 物品分别实现,通过 getGui / getContainer 返回。

界面表

IGuiCreator 在 com/creativemd/littletiles/ 下有 5 个实现者(ItemHammer、ItemLittleWrench、ItemColorTube、ItemTileContainer、ItemRecipe),每个各返回一个 SubGui 与一个 SubContainer,一一配对:

SubGui SubContainer 打开的物品 源码位置
SubGuiHammer SubContainerHammer Little Hammer ItemHammer.java:80 / :85
SubGuiWrench SubContainerWrench Little Wrench ItemLittleWrench.java:65 / :70
SubGuiColorTube SubContainerColorTube Little Color Tube ItemColorTube.java:114 / :119
SubGuiTileContainer SubContainerTileContainer Little Container ItemTileContainer.java:158 / :163
SubGuiStructure SubContainerStructure Little Recipe ItemRecipe.java:264 / :269

SubContainerStructure(EntityPlayer, ItemStack) 额外被 Little Door 使用:LittleDoor.java:61 把当前 SubGuiStructure 的 stack 取出,构造 GuiTileViewer("tileviewer", 5, 30, 100, 100, ...) 预览门内微砖。

控件

SubGuiHammer(SubGuiHammer.java:40 起)演示了本体系的标准控件用法:

  • GuiButton("<", 45, 10, 10, 20, 0) / GuiButton(">", 75, 10, 10, 20, 1) — 成对的增减按钮,共 3 对(对应 sizeX / sizeY / sizeZ)
  • GuiButton("HAMMER IT", 100, 10, 60, 20, 6) — 执行按钮
  • GuiColorPlate — 颜色选择(isColored 开关)
  • GuiSteppedSlider — 步进滑块
  • GuiAvatarLabel + AvatarItemStack — 方块图标显示
  • BlockAir / Vec3 / LittleTileSize — 尺寸状态,sizeX / sizeY / sizeZ 三字段默认全为 1

SubGui 固定尺寸为 super(200, 200)(SubGuiHammer.java:29-30)。

事件系统

所有 SubGui 子类都用 n247s 的 @CustomEventSubscribe 注解处理控件事件(来自 com.n247s.api.eventapi.eventsystem.CustomEventSubscribe),事件类型为 CreativeCore 的 ControlChangedEvent / ControlClickEvent。

数值

数值名 值
SubGui 数量 5
SubContainer 数量 5
IGuiCreator 实现者 5
GUI ID 1
SubGui 固定尺寸 200 × 200(SubGuiHammer)
Hammer 尺寸初值 sizeX = sizeY = sizeZ = 1

交互

触发 行为
右键带 GUI 的工具 openGui(CreativeCore.instance, 1, ...) 打开对应 SubGui
操作控件 经 n247s 事件系统分发到 @CustomEventSubscribe 方法

合成配方

不适用。GUI 界面不是可合成物品。

相关条目