From 6c05c5631d71c537ffe85fe855ea9afbcecf8329 Mon Sep 17 00:00:00 2001 From: min Date: Fri, 5 Jun 2026 02:05:17 +0300 Subject: [PATCH] =?UTF-8?q?fix(player):=20game.self.rotate=20(=D0=BF=D0=BE?= =?UTF-8?q?=D1=80=D1=82)=20=E2=80=94=20=D1=84=D0=B8=D1=87=D0=B0-=D0=BF?= =?UTF-8?q?=D0=B0=D1=80=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D1=81=20=D1=81?= =?UTF-8?q?=D1=82=D1=83=D0=B4=D0=B8=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit self.rotate(ry)/rotateY шлёт scene.rotate с ref носителя (обработчик scene.rotate в плеере уже был). Иначе вращающиеся объекты падали бы в плеере. Co-Authored-By: Claude Opus 4.8 --- src/engine/ScriptSandboxWorker.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/engine/ScriptSandboxWorker.js b/src/engine/ScriptSandboxWorker.js index 6345d06..102416e 100644 --- a/src/engine/ScriptSandboxWorker.js +++ b/src/engine/ScriptSandboxWorker.js @@ -669,6 +669,15 @@ function _buildSelfApi() { _send('self.move', { target: _target, x: nx, y: ny, z: nz }); } }, + /** Повернуть объект-носитель вокруг оси Y на угол ry (радианы). */ + rotate(ry) { + const r = Number(ry); + if (!Number.isFinite(r)) return; + const k = _target.kind; + const id = _target.id ?? _target.ref; + _send('scene.rotate', { kind: k, id, ref: (k && id != null) ? (k + ':' + id) : undefined, rotationY: r }); + }, + rotateY(ry) { this.rotate(ry); }, delete() { _send('self.delete', { target: _target }); },