diff --git a/src/engine/BabylonScene.js b/src/engine/BabylonScene.js index 0d3b9a1..0b19b10 100644 --- a/src/engine/BabylonScene.js +++ b/src/engine/BabylonScene.js @@ -5956,6 +5956,18 @@ export class BabylonScene { try { this._onStdHudVisibilityChange?.(this._stdHudVisible); } catch (e) {} } + /** Скрыть/показать только хотбар (5 слотов инвентаря снизу). */ + _setHotbarVisible(visible) { + this._hotbarVisible = !!visible; + try { this._onHotbarVisibilityChange?.(this._hotbarVisible); } catch (e) {} + } + + /** Скрыть/показать только HP-индикатор (полоска жизней). */ + _setHpVisible(visible) { + this._hpVisible = !!visible; + try { this._onHpVisibilityChange?.(this._hpVisible); } catch (e) {} + } + /** Колбэк смены cursor-режима (ui/game) скриптом через game.input.setCursorMode. * Редактор подписан чтобы синхронизировать React-state uiCursorMode (для бейджа). */ setOnCursorModeChange(cb) { diff --git a/src/engine/GameRuntime.js b/src/engine/GameRuntime.js index 92604a4..fc9ccaa 100644 --- a/src/engine/GameRuntime.js +++ b/src/engine/GameRuntime.js @@ -1962,6 +1962,14 @@ export class GameRuntime { } catch (e) {} return; } + if (cmd === 'hud.setHotbarVisible') { + try { this.scene3d?._setHotbarVisible?.(!!payload?.visible); } catch (e) {} + return; + } + if (cmd === 'hud.setHpVisible') { + try { this.scene3d?._setHpVisible?.(!!payload?.visible); } catch (e) {} + return; + } if (cmd === 'input.setCursorMode') { try { const mode = payload?.mode === 'ui' ? 'ui' : 'game'; diff --git a/src/engine/ScriptSandboxWorker.js b/src/engine/ScriptSandboxWorker.js index 0ac66fc..91df928 100644 --- a/src/engine/ScriptSandboxWorker.js +++ b/src/engine/ScriptSandboxWorker.js @@ -1910,6 +1910,15 @@ const game = { setVisible(visible) { _send('hud.setVisible', { visible: !!visible }); }, + /** Скрыть/показать только хотбар (5 слотов инвентаря снизу). + * Для игр где инвентарь не нужен (магазин/головоломка/симулятор). */ + setHotbarVisible(visible) { + _send('hud.setHotbarVisible', { visible: !!visible }); + }, + /** Скрыть/показать только HP-индикатор (полоска жизней). */ + setHpVisible(visible) { + _send('hud.setHpVisible', { visible: !!visible }); + }, }, /** * Задача 04: модальные сцены (затемнение + GUI поверх + блок ввода).