凿子面板

基本信息

属性 值
实现位置 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 面板不是可合成物品。

相关条目