COH2357/dsh-whale-bridge ↗★ 0

dsh-whale-bridge

串联 pet-whale 与 dsh-whale-widget:桌宠靠近挂件时进入「假装工作」并转身面向挂件,挂件扫到桌宠时用默认气泡播一条默认文字(不改动两个前置插件的源文件) 适合同时使用桌宠与挂件插件的用户,实现两者靠近时的联动交互。

パッケージ
dsh-whale-bridge
互換性
未検証
バージョン
0.3.2
ライセンス
MIT
最終更新
2026/10/02

インストール

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:COH2357/dsh-whale-bridge

ドキュメント

README 全文を読む ↗

3. 配置

配置文件即设置命名空间 dsh-whale-bridge(宿主半导出了 volatile Config,DSH 会自动生成设置表单)。 优先级:设置页 > localStorage['dsh-whale-bridge:config'] > 内置默认值。

字段默认说明
enabledtrue总线开关,关掉会立刻退出假装工作并停止播报
faceWidgettrue假装工作时让桌宠贴图面向挂件(转向 + 歪头;只改内层 svg 的内联 transform,不动原插件代码/属性)
leanMaxDeg26最大歪头角度(度)。挂件相对桌宠的垂直偏差拉满时就是它
leanRangePx240垂直偏差到多少像素算"拉满"(超出按上限截断)
leanDeadPx12垂直偏差小于该值就不歪头(避免挂件与桌宠几乎等高时轻微晃动)
pitchRatio0.35仰角剪切占歪头角度的比例(skewY(θ × 该值)),0 = 只转不切
faceTransitionMs180转向/歪头的过渡时长(ms),0 = 硬切;prefers-reduced-motion 时自动归零
faceWhileDraggingtrue拖拽桌宠期间是否继续接管朝向(锁定拖拽开始时的方向、角度实时跟随;false = 拖拽期让位给 pet-whale 自己的抓取朝向)
nearGapPx140桌宠与挂件的间距 ≤ 该值算"靠近"(相交为 0)
releaseGapPx300间距 > 该值算"远离";两者之间是迟滞区,保持现状不抖动
scanGapPx200挂件视野与桌宠的间距 ≤ 该值算"看到";0 = 关闭播报
scanFacingOnlytrue只认挂件前侧那半边贴图作为视野
speakIntervalMs25000两次播报的最小间隔(防闪烁)
pretendSettleMs400靠得多近多久才进入假装工作
releaseSettleMs1000离开多久才退出假装工作
debugfalse打开后把决策日志打到 console

运行时 API(调试用)

window.__dshWhaleBridge.getConfig()          // 当前生效配置
window.__dshWhaleBridge.setConfig({ ... })   // 局部覆盖(写 localStorage,立即生效)
window.__dshWhaleBridge.resetConfig()        // 清掉本地覆盖,回到设置页/默认值
window.__dshWhaleBridge.status()             // 快照:可见性、gap、sensorGap、seeing、speakCount、pretend 所有权…
window.__dshWhaleBridge.speakNow()           // 忽略间隔,允许下一次播报
window.__dshWhaleBridge.setPretend(true)     // 手动开关一次 pretend(走合成右键,等价于用户点菜单)
window.__dshWhaleBridge.tick()               // 立即跑一次决策(调试)

不抢用户的手

  • 只有在本桥接自己打开假装工作(localStorage['dsh-whale-bridge:owned'] === '1')时才会去关它; 用户手动开着假装工作时,桥接不接管、远离也不关。
  • 自动开启后用户自己关掉 → 本轮"靠近回合"内不再抢,直到桌宠真的离开过再回来。
  • 刷新页面后如果发现 owned=1 且 pretend 还开着,会重新接管(避免刷新一次就永远假装工作)。