凿子面板
基本信息
| 属性 | 值 |
|---|---|
| 实现位置 | ItemLittleChisel.buildUI(ItemLittleChisel.java:300-321) |
| GUI 框架 | ModularUI 2(com.cleanroommc.modularui) |
| 根面板 | ModularPanel.defaultPanel("blocks") |
| 面板尺寸 | 250 × 300 |
| 控件常量 | WIDGET_WIDTH = 180,WIDGET_MARGIN = 5 |
| 入口 | GuiToolConfig.show(itemStack),GuiManager.openFromClient(GuiFactories.playerInventory(), ...) |
功能
这是 Little Chisel 的唯一界面,是全 mod 唯一使用 ModularUI 2 而非内嵌 CreativeCore 的 GUI。面板一次性呈现四组设置:目标方块、形状、网格、放置模式。
GuiToolConfig.show 带类型检查——只有当 itemStack.getItem() == LittleTiles.chisel 时才打开界面(GuiToolConfig.java:15-21),因此 Tool Config 按键对其它工具无效。
布局
buildUI 按 child 调用的逆序自上而下排列(y 越大越靠上):
| y | 控件 | 方法 | 尺寸 |
|---|---|---|---|
| 10 | 放置模式下拉 + 说明 | addPlaceModeSelector |
120 × 40(含说明行) |
| 60 | 网格下拉 + << >> |
addGridSelector |
180 × 20 |
| 95 | 形状选择器 | addShapeSelector |
180 × 20 |
| 130 | 方块显示面板 | addBlockDisplay |
180 × 20 |
方块显示面板 BlockDisplayWidget 通过 addAllBlocks(BlockValidator::isBlockValid) 填入所有校验通过的方块——BlockValidator 是筛选器,不是全方块列表。
同步值
buildUI 注册 4 个同步值,前缀统一为 lt_chisel_:
| 同步键 | 类型 | 同步 id | 回调 |
|---|---|---|---|
lt_chisel_block |
BlockStateSyncValue |
(自定义注册) | selectBlock(data, block, meta) |
lt_chisel_grid |
IntSyncValue |
— | selectGrid(data, grid) |
lt_chisel_shape |
IntSyncValue |
— | selectShape(data, shape) |
lt_chisel_place_mode |
IntSyncValue |
— | selectPlaceMode(data, placeMode) |
后三者用 SyncHandlers.intNumber(...).allowC2S() 建立,允许客户端到服务端的写入。回调函数各有非法值保护:selectGrid 忽略 0,selectShape 与 selectPlaceMode 忽略 -1。
放置模式的说明文本用 DynamicKey(() -> IKey.str(handler.getPlaceMode().getInfo())) 动态生成,因此切换模式时说明文字实时更新(对应 放置模式 的 getInfo())。
数值
| 数值名 | 值 |
|---|---|
| 面板尺寸 | 250 × 300 |
| 控件宽度 | 180 |
| 控件边距 | 5 |
| 同步值数量 | 4 |
| 网格档位 | 5(见 网格与按键设置) |
| 形状档位 | 12(见 形状模式) |
| 放置模式档位 | 4(见 放置模式) |
交互
| 触发 | 行为 |
|---|---|
| Tool Config 按键(仅对 Chisel 生效) | 打开本面板 |
| 切换方块 / 网格 / 形状 / 模式 | 经 allowC2S 同步值写回物品 NBT |
网格 << / >> |
索引越界回绕(index < 0 取末位,>= length 取首位) |
合成配方
不适用。GUI 面板不是可合成物品。
相关条目
- Little Chisel - 承载本面板的工具
- 副 GUI 体系 - 其它工具使用的 CreativeCore 风格界面
- 放置模式 / 形状模式 / 网格与按键设置 - 面板上可调的三组设置