From 1b88167d95d9fe5c13a487bd7cb8ae1453278fab Mon Sep 17 00:00:00 2001 From: nichinichisou Date: Wed, 28 Oct 2026 01:45:36 +0800 Subject: [PATCH] chore(release): prepare moly 0.0.5 --- CHANGELOG.md | 27 ++++++++++++++ Cargo.lock | 48 ++++++++++++------------- Cargo.toml | 2 +- plugins/moly.companion-demo/plugin.toml | 2 +- plugins/moly.example/plugin.toml | 2 +- release-notes/v0.0.5.md | 46 ++++++++++++++++++++++++ tools/mcp/package-lock.json | 4 +-- tools/mcp/package.json | 2 +- tools/mcp/server.mjs | 2 +- 9 files changed, 104 insertions(+), 31 deletions(-) create mode 100644 release-notes/v0.0.5.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 2fbea147..a9fd1bf1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,33 @@ All notable changes to this project are listed here. Versions follow [Semantic Versioning](https://semver.org/). +## [0.0.5](https://github.com/empty-sekai/moly/compare/v0.0.4...v0.0.5) - 2026-10-28 + +### Features + +- **plugins:** Add native Luau plugins with manifests, opt-in profiles, dependency and conflict checks, sandbox limits, events, tasks and per-plugin saved data. Include source examples for scripted companions that walk, build furniture, react and use what they built. +- **JP 7.0.0:** Run hierarchical NPC states and cross-group conversations with the source actors, navigation, animations and scene ownership. +- **editor:** Restore the road and weather tabs, source icons and controls. Roads support placement planning, confirmation, cancellation, selection, movement and returning pieces to inventory; weather edits share the layout save/discard transaction. +- **harvest:** Add the JP 7.0.0 bulk hammer: hold-to-charge, cancellation, target settings, the source hammer and timeline, gauge, effects, sounds, stamina/tool settlement and rewards. +- **stage:** Split the embedded stage into the `moly-stage` crate and publish separate stage/game WASM packages, each with WebGPU and WebGL2 builds. +- **text:** Add independent, versioned text overlays. Chinese display text can use matching official CN lines while retaining JP scenes, voices and performances; unmatched lines keep the original text. Translation updates do not replace the resource snapshot. +- **fonts:** Ship the open-source Resource Han Rounded font and its SIL Open Font License with native and browser packages. + +### Fixes and performance + +- Restore list overflow scrolling and scrollbar dragging, source weather cells, and editor input ownership so UI gestures do not also move the camera. +- Preserve road inventory and UIDs across edits; prevent the road release frame from also panning the camera. +- Clear the bulk-harvest gate after treasure delivery, suppress the unrelated pass-expired balloon, and bound its fade lifetime. +- Restore gameplay/UI audio delivery and reduce repeated tool-notice preparation; retain browser audio scheduling recovery after a main-thread stall. +- Bake the walk field off the main thread, honor immutable master-source pins, and preserve NPC navigation and temporary scene restoration. +- Upgrade the engine to Bevy 0.19.1 and backport the empty-mesh copy guard; place weather post-processing before anti-aliasing and load unnamed glTF scene roots. + +### Distribution + +- Native game packages include the game, launcher and server for Windows x64, Linux x64 and macOS Apple Silicon; server-only archives remain available. +- Browser archives are now `moly-0.0.5-web-stage.tar.gz` and `moly-0.0.5-web-game.tar.gz`, replacing the single web archive. Game resources remain separately supplied. +- The community translation upload service is a separate project and is not included in this release. Native plugins are not exposed by the embedded stage. + ## [0.0.4](https://github.com/empty-sekai/moly/compare/v0.0.3...v0.0.4) - 2026-10-24 ### Features diff --git a/Cargo.lock b/Cargo.lock index 1ad3aa08..c26d2239 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5005,7 +5005,7 @@ dependencies = [ [[package]] name = "moly-android" -version = "0.0.4" +version = "0.0.5" dependencies = [ "android_log-sys", "bevy", @@ -5016,7 +5016,7 @@ dependencies = [ [[package]] name = "moly-app" -version = "0.0.4" +version = "0.0.5" dependencies = [ "bevy", "console_error_panic_hook", @@ -5037,7 +5037,7 @@ dependencies = [ [[package]] name = "moly-assets" -version = "0.0.4" +version = "0.0.5" dependencies = [ "async-lock", "bevy", @@ -5060,7 +5060,7 @@ dependencies = [ [[package]] name = "moly-audio" -version = "0.0.4" +version = "0.0.5" dependencies = [ "async-lock", "bevy", @@ -5098,7 +5098,7 @@ dependencies = [ [[package]] name = "moly-core" -version = "0.0.4" +version = "0.0.5" dependencies = [ "async-lock", "bevy", @@ -5126,7 +5126,7 @@ dependencies = [ [[package]] name = "moly-devtools" -version = "0.0.4" +version = "0.0.5" dependencies = [ "async-channel", "async-lock", @@ -5173,7 +5173,7 @@ dependencies = [ [[package]] name = "moly-features" -version = "0.0.4" +version = "0.0.5" dependencies = [ "arboard", "async-lock", @@ -5217,7 +5217,7 @@ dependencies = [ [[package]] name = "moly-game" -version = "0.0.4" +version = "0.0.5" dependencies = [ "async-lock", "bevy", @@ -5261,7 +5261,7 @@ dependencies = [ [[package]] name = "moly-launcher" -version = "0.0.4" +version = "0.0.5" dependencies = [ "moly-store", "serde", @@ -5275,11 +5275,11 @@ dependencies = [ [[package]] name = "moly-law" -version = "0.0.4" +version = "0.0.5" [[package]] name = "moly-layout" -version = "0.0.4" +version = "0.0.5" dependencies = [ "moly-law", "moly-protocol", @@ -5287,7 +5287,7 @@ dependencies = [ [[package]] name = "moly-link" -version = "0.0.4" +version = "0.0.5" dependencies = [ "async-channel", "bevy", @@ -5304,7 +5304,7 @@ dependencies = [ [[package]] name = "moly-masters" -version = "0.0.4" +version = "0.0.5" dependencies = [ "bevy", "moly-assets", @@ -5316,14 +5316,14 @@ dependencies = [ [[package]] name = "moly-perf" -version = "0.0.4" +version = "0.0.5" dependencies = [ "bevy", ] [[package]] name = "moly-plugin" -version = "0.0.4" +version = "0.0.5" dependencies = [ "luau0-src", "mlua", @@ -5335,7 +5335,7 @@ dependencies = [ [[package]] name = "moly-protocol" -version = "0.0.4" +version = "0.0.5" dependencies = [ "bitcode", "serde", @@ -5344,7 +5344,7 @@ dependencies = [ [[package]] name = "moly-render" -version = "0.0.4" +version = "0.0.5" dependencies = [ "async-lock", "bevy", @@ -5382,7 +5382,7 @@ dependencies = [ [[package]] name = "moly-server" -version = "0.0.4" +version = "0.0.5" dependencies = [ "async-channel", "async-executor", @@ -5407,7 +5407,7 @@ dependencies = [ [[package]] name = "moly-server-host" -version = "0.0.4" +version = "0.0.5" dependencies = [ "bevy", "bevy_remote", @@ -5417,7 +5417,7 @@ dependencies = [ [[package]] name = "moly-stage" -version = "0.0.4" +version = "0.0.5" dependencies = [ "bevy", "console_error_panic_hook", @@ -5437,7 +5437,7 @@ dependencies = [ [[package]] name = "moly-store" -version = "0.0.4" +version = "0.0.5" dependencies = [ "flate2", "self-replace", @@ -5453,7 +5453,7 @@ dependencies = [ [[package]] name = "moly-text" -version = "0.0.4" +version = "0.0.5" dependencies = [ "serde", "serde_json", @@ -5461,7 +5461,7 @@ dependencies = [ [[package]] name = "moly-ui" -version = "0.0.4" +version = "0.0.5" dependencies = [ "async-lock", "bevy", @@ -5501,7 +5501,7 @@ dependencies = [ [[package]] name = "moly-world" -version = "0.0.4" +version = "0.0.5" dependencies = [ "async-lock", "bevy", diff --git a/Cargo.toml b/Cargo.toml index 902023c7..b7b45510 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,7 +37,7 @@ bevy_render = { path = "crates/vendor/bevy_render" } [workspace.package] edition = "2021" -version = "0.0.4" +version = "0.0.5" license = "AGPL-3.0-only" [workspace.dependencies] diff --git a/plugins/moly.companion-demo/plugin.toml b/plugins/moly.companion-demo/plugin.toml index c5218f78..8571133d 100644 --- a/plugins/moly.companion-demo/plugin.toml +++ b/plugins/moly.companion-demo/plugin.toml @@ -2,7 +2,7 @@ id = "moly.companion-demo" name = "Companion demo plugin" version = "0.1.0" -moly = ">=0.0.4" +moly = ">=0.0.5" kind = "luau" entry = "main.luau" description = "Spawns unit 14's companion (Emu) in front of the player, walks it between two points near the player three times, then has it hammer a fixture from a ghost to solid, turns it to the player for a random emote and effect, and has it use the fixture it built." diff --git a/plugins/moly.example/plugin.toml b/plugins/moly.example/plugin.toml index 238422e3..13153405 100644 --- a/plugins/moly.example/plugin.toml +++ b/plugins/moly.example/plugin.toml @@ -2,7 +2,7 @@ id = "moly.example" name = "Example plugin" version = "0.1.0" -moly = ">=0.0.4" +moly = ">=0.0.5" kind = "luau" entry = "main.luau" description = "Logs a greeting, waits two seconds, logs a line through a director step and logs its outcome." diff --git a/release-notes/v0.0.5.md b/release-notes/v0.0.5.md new file mode 100644 index 00000000..28c2fb71 --- /dev/null +++ b/release-notes/v0.0.5.md @@ -0,0 +1,46 @@ +# moly 0.0.5 + +这次更新主要围绕日服 7.0.0 的交互还原:加入插件系统与脚本伙伴,接通跨团对话,补齐道路/地砖和天气编辑界面,并加入一键清图的大锤采集。网页嵌入舞台也拆成独立程序,显示文本可以在保留日服演出的同时使用中文覆盖。 + +## 插件系统与脚本伙伴 + +- 原生端可以加载 Luau 插件,通过 `plugin.toml` 声明版本、依赖与冲突,并在个人配置中选择启用;默认不启用任何插件。 +- 插件可以读取场景状态、订阅事件、安排异步任务、调用游戏动作,并保存各自的数据。每个插件有独立沙箱、内存限制和每帧执行预算。 +- 提供问候示例和脚本伙伴示例:伙伴可以行走、敲锤建造家具、转向玩家作出反应,并使用刚建好的家具。示例源码位于仓库的 [`plugins/`](https://github.com/empty-sekai/moly/tree/v0.0.5/plugins);安装后需在个人配置中启用。 + +## 日服 7.0.0 与编辑界面 + +- 接入新的分层 NPC 状态机和不同团体角色之间的对话,保留角色移动、动画、对话条件和场景恢复逻辑。 +- 道路/地砖页支持选择样式、规划铺设、确认与取消、选中移动、收回和保存;库存与已放置对象随同一份布局事务更新。 +- 天气页使用源资源的图标和选项,按已解锁内容选择环境,并与布局一起保存或放弃。 +- 修复列表无法滚动、滚动条拖动无效,以及编辑操作结束时相机被一并拖动的问题。 + +## 一键清图:大锤采集 + +- 加入长按蓄力、取消、采集目标设置和奖励界面,接入大锤模型、材质、演出时间轴、蓄力条、特效与音效。 +- 采集仍遵循通行资格、体力、工具耐久和掉落结算规则;取消不会提前扣除消耗。 +- 修复宝箱投递后无法再次使用大锤,以及错误出现“通行证过期”提示的问题。 + +## 独立网页舞台与中文文本 + +- 嵌入舞台拆为独立的 `moly-stage` crate,保留对话、家具演出、角色互动、天气与布局预览所需的系统。完整游戏另行提供。 +- 网页选择中文时,可以用匹配的国服官方文本替换日服显示文本;日服场景、角色、语音和演出保持原样,没有匹配译文时显示日文。 +- 文本包、字体包与资源快照分别版本化;译文更新无需替换 Lua,也不需要让整个资源快照失效。 +- 社区翻译上传后台另行审核,本版本不包含该服务的上线。 + +## 稳定性与运行基础 + +- 升级至 Bevy 0.19.1,修复空网格复制、无名称 glTF 场景根节点和天气后处理顺序的问题。 +- 将行走区域生成移出主线程,减少重复的工具提示准备,并修复相关音效交付与浏览器音频调度问题。 +- 使用开源的 Resource Han Rounded 字体,原生和网页包均附带 SIL Open Font License。 + +## 下载与升级 + +- Windows x64、Linux x64、macOS Apple Silicon:下载对应平台的游戏包,包含游戏、启动器与服务端。独立服务端仍有单独的包。 +- 网页包拆为 `moly-0.0.5-web-stage.tar.gz`(嵌入舞台)和 `moly-0.0.5-web-game.tar.gz`(完整游戏),各含 WebGPU 与 WebGL2 构建。部署方需更新原先单一 `web.tar.gz` 的路径。 +- 游戏资源单独提供,不包含在程序发布包内。体验上述日服新增内容需要配套的 JP 7.0.0 资源;网页资源上线状态以站点当前提供的版本为准。 +- 解压到新目录后通过启动器运行;保留原安装目录和存档。升级及目录迁移方式见[发布包说明](https://github.com/empty-sekai/moly/blob/v0.0.5/docs/release-package.md)。 + +本轮原生编辑与采集功能已由维护者实际体验验收。Linux、macOS 的构建通过不代表实机验收;WebGL2 提供构建,但本轮不宣称已完成播放验收。 + +[完整变更](https://github.com/empty-sekai/moly/compare/v0.0.4...v0.0.5) diff --git a/tools/mcp/package-lock.json b/tools/mcp/package-lock.json index 19f34d2b..0d2c93b2 100644 --- a/tools/mcp/package-lock.json +++ b/tools/mcp/package-lock.json @@ -1,12 +1,12 @@ { "name": "moly-mcp", - "version": "0.0.4", + "version": "0.0.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "moly-mcp", - "version": "0.0.4", + "version": "0.0.5", "license": "AGPL-3.0-only", "dependencies": { "@modelcontextprotocol/sdk": "^1.32.1", diff --git a/tools/mcp/package.json b/tools/mcp/package.json index 03c6b68a..78447b0a 100644 --- a/tools/mcp/package.json +++ b/tools/mcp/package.json @@ -1,6 +1,6 @@ { "name": "moly-mcp", - "version": "0.0.4", + "version": "0.0.5", "private": true, "license": "AGPL-3.0-only", "type": "module", diff --git a/tools/mcp/server.mjs b/tools/mcp/server.mjs index 28a0be0b..100d1ad1 100644 --- a/tools/mcp/server.mjs +++ b/tools/mcp/server.mjs @@ -924,7 +924,7 @@ async function layoutPlace(inst, { fixture_id, texture_id, center, rotate = 0, d // MCP tools // --------------------------------------------------------------------------- -const server = new McpServer({ name: 'moly', version: '0.0.4' }); +const server = new McpServer({ name: 'moly', version: '0.0.5' }); server.registerTool( 'instance_list',