安排按钮与面板区域
从三行菜单出发,实际设置字符位置、局部槽位和底部导航。
本教程完成三件事:把钻石按钮放在第二行中央、把关闭按钮放在第三行中央,并能分清“面板第一格”和“窗口第一格”。图示可切换字符、序号和区域。
同一份 hello.yml 的字符、槽位与局部坐标。
1. 打开用于练习的菜单
使用第一个菜单中的 hello.yml,保存到 plugins/Invero/workspace/hello.yml。这里不重复完整文件。
/invero menu reload
/invero menu open hello它的上方窗口有三行:灰色玻璃作边框,钻石是消息按钮,屏障是关闭按钮。点击钻石发送“按钮工作正常!”,点击屏障执行 menu close。
2. 用字符确定两个按钮的位置
在 hello.yml 的第一个面板 panels[0] 中,保留下列 layout:
layout:
- '#########'
- '# A #'
- '####C####'对应图标仍放在这个面板的 icons.A、icons.C 和 icons.'#' 中。字符只安排位置,材质、名称和动作由这些图标定义。
- 第二行的
A前面有四格,所以它是从零开始的坐标4x1。 - 第三行的
C也是第五列,所以坐标为4x2。 - 在图示切换到序号:它们分别是
13、22。不是第十三格和第二十二格的从一计数。 - 在图示切换到区域:这份菜单只有一个三行面板,两个按钮属于同一区域。
一行文字中空格也是位置。保留单引号,避免把行首或行尾空格删掉。
3. 给同一按钮改用 slot
不需要在布局里拼出长名字时,可以在图标下设置 slot。在 hello.yml 的 panels[0].icons.A 内增加:
slot: '4x1'再在 panels[0].icons.C 内增加:
slot: 22重载并打开 hello 后,两个按钮的位置、显示和点击效果都不改变。显式 slot 替换该图标的布局位置,不会因为同时留着 A、C 字符就多出一份按钮。
若需要移动钻石,只改 A.slot 即可;例如 slot: '3x1' 会让它向左一格,原来的中央格留空。练习完恢复 4x1,下载示例及上图仍以钻石槽位 13、屏障槽位 22 为准。
想放多个相同图标时可重复布局字符,或给 slot 写多个位置;全部范围和坐标写法见槽位参考。
4. 将内容与导航分成独立区域
需要独立维护底部导航时,可以把三行窗口划分为两行内容区和一行导航区。完整片段见普通面板组合:
menu.rows保持3。panels[0]从locate: 0, 0开始,高两行,放内容。panels[1]从locate: 0, 2开始,高一行,放关闭按钮。
要将第二个面板放在第三行,在它的节点内写:
- locate:
- 0
- 2
layout:
- ' C '
icons:
C:
material: BARRIER
name: '&c关闭'
action: 'menu close'这里的屏障在导航面板内是局部槽位 4,在整个窗口中是槽位 22。填写图标的 slot 时,使用所在面板内的局部位置。
自动摆放并不保证面板矩形没有重叠;已知区域位置时显式写 locate。字段的必填、尺寸省略与嵌套规则见布局参考;窗口行数与玩家背包范围见窗口设置。
Last updated on