From 661ff60bdf1ea836993545b9d36825a0e2aadbe2 Mon Sep 17 00:00:00 2001 From: min Date: Sun, 7 Jun 2026 14:51:27 +0300 Subject: [PATCH] =?UTF-8?q?fix(studio):=20=D0=B8=D0=BD=D0=B2=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=80=D1=8C=20=E2=80=94=20=D1=81=D0=BE=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D0=BE=D0=B5=20=D0=B8=D0=B4=D1=91=D1=82=20?= =?UTF-8?q?=D1=81=D0=BD=D0=B0=D1=87=D0=B0=D0=BB=D0=B0=20=D0=B2=20hotbar=20?= =?UTF-8?q?(=D0=B2=D0=B8=D0=B4=D0=B5=D0=BD),=20hotbar=20=D0=BF=D0=BE=D0=B4?= =?UTF-8?q?=D0=BD=D1=8F=D1=82=20=D0=BD=D0=B0=D0=B4=20=D0=BF=D0=BE=D0=B4?= =?UTF-8?q?=D1=81=D0=BA=D0=B0=D0=B7=D0=BA=D0=BE=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1) add() заполняет сначала hotbar, потом grid → собранные предметы сразу видны в постоянном хотбаре (раньше уходили в скрытую сетку — хотбар казался пустым). 2) Хотбар поднят bottom 14→64px, не перекрывает подсказку внизу экрана. Co-Authored-By: Claude Opus 4.8 --- src/editor/engine/InventoryUI.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/editor/engine/InventoryUI.js b/src/editor/engine/InventoryUI.js index 0a49359..86620cf 100644 --- a/src/editor/engine/InventoryUI.js +++ b/src/editor/engine/InventoryUI.js @@ -64,7 +64,7 @@ export class InventoryUI { add(itemId, count = 1) { const def = this._def(itemId); let left = count; - // 1) долить в существующие стаки (grid, потом hotbar) + // 1) долить в существующие стаки (сначала hotbar — он на виду, потом grid) const fill = (arr) => { for (let i = 0; i < arr.length && left > 0; i++) { const s = arr[i]; @@ -75,14 +75,14 @@ export class InventoryUI { } } }; - fill(this.grid); fill(this.hotbar); - // 2) в пустые слоты (grid, потом hotbar) + fill(this.hotbar); fill(this.grid); + // 2) в пустые слоты (сначала hotbar — собранное видно сразу, потом grid) const place = (arr) => { for (let i = 0; i < arr.length && left > 0; i++) { if (!arr[i]) { const take = Math.min(def.maxStack, left); arr[i] = { itemId, count: take }; left -= take; } } }; - place(this.grid); place(this.hotbar); + place(this.hotbar); place(this.grid); const added = count - left; if (added > 0) { this._emit('added', { itemId, count: added }); this._changed(); } return { added, overflow: left }; @@ -194,7 +194,7 @@ export class InventoryUI { mountHotbar() { if (this.hotbarRoot) return; const r = document.createElement('div'); - r.style.cssText = 'position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:48;display:flex;gap:6px;pointer-events:auto;font-family:Inter,system-ui,sans-serif'; + r.style.cssText = 'position:absolute;left:50%;bottom:64px;transform:translateX(-50%);z-index:48;display:flex;gap:6px;pointer-events:auto;font-family:Inter,system-ui,sans-serif'; this._parent().appendChild(r); this.hotbarRoot = r; this._renderHotbar(); }