展示
DearOreUI 在真实客户端里跑通的东西,以及如何用示例 Mod 复现。
内置演示 Overlay
安装后进入世界列表页(/play/all),页面中央会出现居中的 DearOreUI DEMO 覆盖层。这是内置演示,走的是「注册 → 计划 → 挂载 → 注入 → 显示」完整链路,用来确认运行时工作正常。
相关验证记录(2026-08-15 真实客户端):
| 验证项 | 结果 |
|---|---|
cohtml::View vtable 指纹 | 与 mcmeta 头文件布局逐槽位一致 |
| demo overlay 显示 | 世界列表页正常渲染(全屏遮罩 + 居中文本) |
| 门禁 | 未命中 view 时零副作用 |
组件库 showcase(阶段 8.1.4)
组件库的 37 种 ComponentKind 已通过声明式 ComponentSpec 接入 registerComponent。自动化证据:
- Showcase:52 children、14 scripts、malformed_scripts=0、at_risk_count=0。
DearOreUIUnitTests全绿。
真机展示:搭载组合组件(stack / modal / menu / listItem 拼装)的 showcase 已在目标客户端完整显示。详细验收矩阵见 Docs/DearOreUI-阶段8-真实客户端验证.md。
示例 Mod(dearoreui-ExampleMod)
dearoreui-ExampleMod 是一个完整的外部 Mod 示例,演示:
- 桥接接入:
DearOreUI_QueryApi获取 API 入口,带就绪重试(20 次轮询,10 秒窗口)。 - 状态中心:
StateCenter注册 UI + 资源 + Host 方法 + 事件订阅。 - 全链路:注册 → 显示 → JS 调用 C++ → 事件回传。
核心流程(src/mod/MyMod.cpp):
auto bridge = queryApi(1); // 探测 DearOreUI 桥
if (bridge.status != DearOreUIBridge_Ok) {
// 未就绪:启动重试线程,就绪后交到客户端主线程
return false;
}
mOreui = static_cast<dearoreui::api::IDearOreUIApi*>(bridge.api);
mModId = dearoreui::api::ModId{"example.state_center"};
mStateCenter = std::make_unique<StateCenter>(*mOreui, mModId, *this);
mStateCenter->registerAll();在自己的 Mod 里复现
- 按安装与构建 部署 DearOreUI。
- 参考 ExampleMod 搭工程。
- 按快速开始 注册第一个 Overlay。
- 按在你的模组中使用 接入组件库与 Host 方法。