Suite

概览

VanillaUI 原版界面替换模块功能概览

VanillaUI 原版界面替换

模块简介

VanillaUI 是 Suite 的原版界面替换模块,通过 ArcartX UI 系统将原版工作台与熔炉界面替换为纯色块风格的自定义 UI。模块在玩家打开原版工作台或熔炉时自动呈现替换界面,无需任何命令触发。工作台界面提供配方书、分类筛选、中文搜索与一键填充材料功能;熔炉界面在替换视觉层的同时,通过定时轮询熔炉方块状态,将燃烧剩余时间、烧制进度与火焰图标可见性实时推送到客户端 UI。

配方数据来源于服务端已注册的 Bukkit 配方(ShapedRecipeShapelessRecipeFurnaceRecipe),并结合 VanillaItemNameBridge 将物品材质名翻译为中文,使配方书支持中英文模糊搜索。一键填充材料功能会从玩家背包中自动取出对应材料放入合成/烧制槽位,已正确放置的材料会保留并追加,不匹配的材料会退回背包。

  • 模块 IDvanilla
  • 版本:1.4.4
  • 配置版本:2(当前 schema)
  • 源码主类xuanmo.arcartxsuite.vanilla.VanillaModule
  • 配置文件config.yml
  • UI 文件ui/vanilla_crafting.ymlui/vanilla_furnace.yml
  • 通信包 IDAXS:vanilla_craftingAXS:vanilla_furnace

功能特性

功能说明
工作台界面替换通过 match: [合成界面] 替换原版工作台,呈现 ArcartX UI 纯色块风格界面
熔炉界面替换通过 match: [熔炉界面] 替换原版熔炉,呈现 ArcartX UI 纯色块风格界面
配方书工作台和熔炉均支持配方书功能,按分类展示可用配方,点击配方预览合成网格
分类筛选工作台支持全部/工具/建筑/食品/红石分类,熔炉支持全部/食品/建筑/杂项分类
中文搜索配方书搜索框支持中英文物品名称模糊搜索(基于 VanillaItemNameBridge
一键填充材料Shift+左键点击配方图标,自动从背包填充材料到合成/烧制槽位,已有正确材料保留并追加
可合成状态标记配方图标根据玩家背包材料是否充足标记为可合成(蓝色)或不可合成(红色)
熔炉状态推送定时轮询熔炉方块状态,推送燃烧时间、烧制进度与火焰图标可见性到客户端
燃料/燃烧进度条熔炉 UI 使用纯色块动态宽度模拟燃料进度条与燃烧进度条
显示模式切换配方书支持切换"显示全部配方"与"仅显示可合成配方"两种模式

依赖表

依赖类型说明
ArcartX 客户端 MOD硬依赖提供 UI 渲染与 PacketBridge,界面通过 ArcartX UI 呈现
ArcartXSuite 核心硬依赖提供 PacketBridgeAPIVanillaItemNameBridge 桥接服务

VanillaUI 模块不依赖任何外部插件(external-depends 为空),也不依赖其他模块(dependssoftdepends 均为空)。模块可独立运行。

原版界面替换机制

UI match 自动替换

VanillaUI 模块通过 ArcartX UI 的 match 属性实现原版界面替换,无需插件代码介入。UI YAML 配置中的 match 字段填写原版界面 ID,当玩家打开匹配的原版界面时,ArcartX 客户端 MOD 自动呈现替换后的自定义 UI。

UI 文件match 值替换目标
vanilla_crafting.yml合成界面原版工作台(3x3 合成网格)
vanilla_furnace.yml熔炉界面原版熔炉(输入槽/燃料槽/输出槽)

match 支持精确匹配与正则匹配([regex].* 前缀)。VanillaUI 使用精确匹配原版界面名称。

工作台 UI 结构

工作台 UI 替换原版工作台界面,保留原版 3x3 合成网格与结果槽,并扩展配方书面板:

区域说明
主面板纯色块圆角面板,包含标题"合成"、合成网格与结果槽
配方书按钮点击切换配方书打开/关闭,打开时高亮蓝色
合成网格3x3 槽位(slotType: Container,id 1-9),与原版工作台槽位对应
结果槽合成结果槽位(slotType: Container,id 0)
预览网格选中配方后在合成网格上叠加的半透明材料预览
配方书面板展开时显示搜索框、显示切换按钮、分类栏与配方滚动区
背包区原版背包 27 格 + 快捷栏 9 格(slotType: Backpack

熔炉 UI 结构

熔炉 UI 替换原版熔炉界面,保留原版输入槽/燃料槽/输出槽,并扩展配方书面板与进度条:

区域说明
主面板纯色块圆角面板,包含标题"熔炉"、输入槽/燃料槽/输出槽与进度条
输入槽烧制输入槽位(slotType: Container,id 0)
燃料槽燃料槽位(slotType: Container,id 1)
输出槽烧制结果槽位(slotType: Container,id 2)
燃料进度条纯色块动态宽度,宽度 = 46 * (burnTime / burnTimeTotal)
燃烧进度条纯色块动态宽度,宽度 = 23 * (cookTime / cookTimeTotal),仅在燃烧时可见
配方书面板展开时显示搜索框、显示切换按钮、分类栏与配方滚动区
背包区原版背包 27 格 + 快捷栏 9 格(slotType: Backpack

配方书交互流程

  1. 玩家打开工作台/熔炉,UI open 触发器发送 request_recipe_book 包到服务端
  2. 服务端返回当前配方书状态(recipe_book_toggle 包),包含分类图标与配方数据
  3. 玩家点击配方书按钮,发送 toggle_recipe_book 包,服务端切换状态并推送新数据
  4. 玩家在搜索框输入文本,客户端本地过滤配方列表
  5. 玩家点击分类标签,客户端本地过滤配方列表
  6. 玩家左键点击配方图标,选中配方并在合成网格上叠加预览
  7. 玩家 Shift+左键点击配方图标,发送 place_ingredients 包,服务端一键填充材料

关于 UI 条件匹配与图标渲染的通用知识,参考 条件系统图标系统

本页目录