COH2357/dsh-whale-bridge ↗★ 0

dsh-whale-bridge

串联桌宠与挂件插件,实现靠近互动与气泡播报。 适合同时使用桌宠与挂件插件的用户,实现两者靠近时的联动交互。

套件
dsh-whale-bridge
相容性
待驗證
版本
0.3.2
授權
MIT
最近更新
2026年10月2日

安裝

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

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 还开着,会重新接管(避免刷新一次就永远假装工作)。