dsh-pighub 0.9.77 → 0.9.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/client.js CHANGED
@@ -112,7 +112,7 @@ window.__ModuleLoader__.load({
112
112
  '.pighub-house-img{width:100%;height:100%;display:block;object-fit:fill;user-select:none;pointer-events:none;',
113
113
  'transform-origin:50% 100%;transition:transform .16s ease}',
114
114
  // 开关门 / 猪出入库时「弹一下」:开门用一次性缩放动画
115
- '.pighub-house-img.is-open{animation:pighub-house-pop .34s cubic-bezier(.2,1.6,.4,1)}',
115
+ '.pighub-house-img.is-pop{animation:pighub-house-pop .34s cubic-bezier(.2,1.6,.4,1)}',
116
116
  '@keyframes pighub-house-pop{0%{transform:scale(1)}45%{transform:scale(1.06) translateY(-2px)}100%{transform:scale(1)}}',
117
117
  '.pighub-house-wall{fill:color-mix(in oklab,#f2d8b0 84%,var(--dsw-alias-bg-elevated,#fff))}',
118
118
  '.pighub-house-wall-sh{fill:color-mix(in oklab,#cba57a 82%,var(--dsw-alias-bg-elevated,#fff))}',
@@ -1975,14 +1975,30 @@ window.__ModuleLoader__.load({
1975
1975
  * 必须在 return 之前算,因为名次是**整圈相对**的,不是单只猪的函数;
1976
1976
  * 每帧重渲染都会重算(游走、拖动、落地、回圈都触发渲染)。 */
1977
1977
  /* 拖着猪经过仓库上方 → 开门(用户口径 2026-11-14)。盒子与 .pighub-house 的 CSS 同源。 */
1978
+ /* 谷仓弹跳(用户口径 2026-11-14):开关门各弹一次。
1979
+ * CSS 动画只在「类名从无到有」那一刻触发,同元素改 src 时经常不重放;
1980
+ * 所以用 popSeq 递增 + 给 <img> 换 key,强制重挂载,动画一定重放。 */
1981
+ const [housePop, setHousePop] = useState(0);
1982
+ /* 注意:state.drag 的 x/y 是 **clientX/clientY 像素**(见 STORE.moveDrag 的调用点),
1983
+ * 不是猪圈百分比——早先拿它们当百分比比较,所以谷仓永远不开门、也就没有动画。
1984
+ * 这里先换算成猪圈百分比,再和 .pighub-house 的盒子(10%..36.5% × 6.9%..31.8%)比。 */
1978
1985
  const houseOpen = (() => {
1979
1986
  const drag = state.drag;
1980
1987
  if (!drag || drag.x === undefined || drag.y === undefined) return false;
1981
- const dx = Number(drag.x);
1982
- const dy = Number(drag.y);
1983
- return dx >= 12 && dx <= 33 && dy >= 0 && dy <= 33;
1988
+ let rect = null;
1989
+ try { rect = penRef && penRef.current ? penRef.current.getBoundingClientRect() : null; } catch { rect = null; }
1990
+ if (!rect || !rect.width || !rect.height) return false;
1991
+ const px = ((Number(drag.x) - rect.left) / rect.width) * 100;
1992
+ const py = ((Number(drag.y) - rect.top) / rect.height) * 100;
1993
+ return px >= 10 && px <= 36.5 && py >= 0 && py <= 31.8;
1984
1994
  })();
1985
1995
 
1996
+ // 开门 / 关门 / 猪进库 / 猪出库,各弹一次
1997
+ useEffect(() => { setHousePop((n) => n + 1); }, [houseOpen]);
1998
+ const storedCount = (state.data && state.data.store ? state.data.store.length : 0)
1999
+ + (state.data && state.data.pets ? state.data.pets.length : 0);
2000
+ useEffect(() => { setHousePop((n) => n + 1); }, [storedCount]);
2001
+
1986
2002
  const zById = penZIndexMap(penPigs, actors, state.drag && state.drag.active ? state.drag.id : null);
1987
2003
 
1988
2004
  return h('div', { className: 'pighub-panel' },
@@ -2020,7 +2036,8 @@ window.__ModuleLoader__.load({
2020
2036
  /* 仓库两个状态(用户口径 2026-11-14):平时关门;拖着猪移到上面时开门,放下关门入库。
2021
2037
  * 主题可用 house.image(关)/ house.openImage(开)覆盖,没给就用包内这两张。 */
2022
2038
  h('img', {
2023
- className: 'pighub-house-img' + (houseOpen ? ' is-open' : ''),
2039
+ key: 'house-' + (houseOpen ? 'open' : 'closed') + '-' + housePop,
2040
+ className: 'pighub-house-img is-pop',
2024
2041
  draggable: false,
2025
2042
  alt: '',
2026
2043
  src: houseOpen
package/lib/index.js CHANGED
@@ -44,7 +44,7 @@ export const inject = ['tools'];
44
44
  import { startDesktopPet, stopDesktopPet, syncDesktopPet, desktopPetState, sayOnDesktop, reclaimStaleSessions } from './desktop-pet.js';
45
45
 
46
46
  const here = dirname(fileURLToPath(import.meta.url));
47
- const VERSION = '0.9.77';
47
+ const VERSION = '0.9.79';
48
48
  /** 桌面桌宠的精灵边长(CSS px 基准,= manifest 里 sizeRatio 的中位数)。 */
49
49
  const DESKTOP_PET_SIZE = 96;
50
50
  /** 全局尺寸系数(用户口径 2026-11-13:「整体猪猪缩小到 75% 大小」)。三层一起乘。 */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-pighub",
3
- "version": "0.9.77",
3
+ "version": "0.9.79",
4
4
  "description": "猪猪库 PigHub 的 DeepSeek Harness 插件:侧边栏猪圈面板、每日一只猪猪、重复获得升星、可拖出的置顶桌宠,数据落在 ~/.PigHub。不内嵌任何上游图片。",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",