feat: 50 игр на Lua + импорт Roblox для всех + поддержка Lua в плеере #39
@ -121,11 +121,14 @@ export class GameRuntime {
|
|||||||
// скрипты (с маркером // @roblox-lua) теперь идут через ОДИН LuaSharedSandbox.
|
// скрипты (с маркером // @roblox-lua) теперь идут через ОДИН LuaSharedSandbox.
|
||||||
// .rbxl-скрипты распаковываем из JS-комментария-обёртки в чистый Lua.
|
// .rbxl-скрипты распаковываем из JS-комментария-обёртки в чистый Lua.
|
||||||
const luaUserBatch = [];
|
const luaUserBatch = [];
|
||||||
// Импортированные .rbxl-скрипты выполняются по умолчанию (батчами по 20
|
// Импортированные .rbxl-скрипты НЕ запускаются по умолчанию:
|
||||||
// через setTimeout, чтобы не подвешивать UI). Падения скриптов изолированы
|
// Roblox-карты содержат сотни скриптов (DataStore, Tools, PlayerGui,
|
||||||
// pcall'ом в shim — один битый скрипт не валит остальных.
|
// UserInputService), наш runtime их не реализует — попытка их выполнить
|
||||||
// Выключить можно через window.__RBXL_SKIP_IMPORTED = true.
|
// подвешивает страницу даже с stub'ами.
|
||||||
const runImportedRbxl = !(typeof window !== 'undefined' && window.__RBXL_SKIP_IMPORTED === true);
|
// Импорт работает как ВИЗУАЛЬНЫЙ ПОРТЕР: геометрия, GUI, материалы,
|
||||||
|
// физика. Юзер добавляет свои Lua-скрипты под наш Этап 1-7 API.
|
||||||
|
// Энтузиасты могут включить через: window.__RBXL_RUN_IMPORTED = true.
|
||||||
|
const runImportedRbxl = typeof window !== 'undefined' && window.__RBXL_RUN_IMPORTED === true;
|
||||||
let rbxlSkipped = 0;
|
let rbxlSkipped = 0;
|
||||||
for (const s of scripts) {
|
for (const s of scripts) {
|
||||||
if (s && typeof s.code === 'string' && s.code.startsWith('// @roblox-lua')) {
|
if (s && typeof s.code === 'string' && s.code.startsWith('// @roblox-lua')) {
|
||||||
@ -220,7 +223,7 @@ export class GameRuntime {
|
|||||||
this._log('info', `Запущено Roblox-Lua скриптов (импортированных): ${rbxlImported}`);
|
this._log('info', `Запущено Roblox-Lua скриптов (импортированных): ${rbxlImported}`);
|
||||||
}
|
}
|
||||||
if (rbxlSkipped > 0) {
|
if (rbxlSkipped > 0) {
|
||||||
this._log('info', `Импортированных .rbxl-скриптов пропущено: ${rbxlSkipped}. Вернуть: убрать window.__RBXL_SKIP_IMPORTED`);
|
this._log('info', `Импортированных .rbxl-скриптов пропущено: ${rbxlSkipped} (Roblox-скрипты не поддерживаются — пиши свои Lua-скрипты под Этап 1-7 API)`);
|
||||||
}
|
}
|
||||||
if (luaWritten > 0) {
|
if (luaWritten > 0) {
|
||||||
this._log('info', `Запущено Lua-скриптов юзера: ${luaWritten}`);
|
this._log('info', `Запущено Lua-скриптов юзера: ${luaWritten}`);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user