From 56871b12fe04fdc8621ad09419268241eaae84fd Mon Sep 17 00:00:00 2001 From: nichinichisou Date: Sun, 25 Oct 2026 15:23:18 +0800 Subject: [PATCH] fix(player): register the dash button systems The dash button's resource and its spawn, place and click systems were not added by any plugin, so the button never appeared. The host schedule now initializes the resource and runs the spawn with the action buttons' spawn, and the place and click after the action buttons' click and before world picking. Co-Authored-By: Claude Opus 5.5 --- crates/game/moly-game/src/schedule.rs | 6 ++++++ crates/game/moly-world/src/player.rs | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/crates/game/moly-game/src/schedule.rs b/crates/game/moly-game/src/schedule.rs index ed5f363c..9bb8d647 100644 --- a/crates/game/moly-game/src/schedule.rs +++ b/crates/game/moly-game/src/schedule.rs @@ -398,6 +398,7 @@ pub fn install(app: &mut App) { // 摇杆层状态(手势层与玩家输入都读它;缺资源会在系统参数校验 // 处 panic,与手势层同款兜底)。 .init_resource::() + .init_resource::() // SitePlugin owns the site WorldInstanceReady observer. Registering it // again here would decrement SiteScenePending twice for one scene root. .add_observer(character::on_model_scene_ready) @@ -565,10 +566,15 @@ pub fn install(app: &mut App) { // 落在按钮上的那一下不该再打一条世界射线。 action_button::parse_tables, action_button::spawn_when_ready, + action_button::dash::spawn_when_ready, action_button::advance.before(crate::markers::ActionButtonOrder), action_button::place_ui, action_button::place_change_ui, action_button::click, + // The dash button: Setup when its screen mounts, the view, + // then its own click, after the action buttons' click. + action_button::dash::place, + action_button::dash::click, // NPC 臂冒烟口(MOLY_PICK_NPC_TAP_SECS):名册成员的 // 世界位投影点按,走同一条拾取链过配对门。 pick::smoke_npc_autotap, diff --git a/crates/game/moly-world/src/player.rs b/crates/game/moly-world/src/player.rs index ad8cc8e6..2ec30812 100644 --- a/crates/game/moly-world/src/player.rs +++ b/crates/game/moly-world/src/player.rs @@ -298,8 +298,8 @@ pub fn reseed( /// The player domain's systems that the host schedule does not list: the /// player avatar's talk-camera dither. Added by the avatar material plugin, -/// which the host registers. The dash button's own systems are installed by -/// the action button. +/// which the host registers. The host schedule lists the dash button's +/// systems with the action buttons. pub struct PlayerPlugin; impl Plugin for PlayerPlugin {