All checks were successful
Часть тест-фичи импорта Roblox-карт (см. rublox/studio rbxl-importer/). Что добавлено: - wasmoon (Lua 5.4 WASM) как dep. - RobloxLuaWorker.js — Worker-хост Lua-VM. - RobloxLuaSandbox.js — main-side обёртка (по аналогии с ScriptSandbox). - roblox-shim.js — math (Vector3/Color3/CFrame/UDim2), Instance прокси (game/workspace/script/GetService/IsA), Part свойства (Position/Color/Material/Anchored/CanCollide), RBXScriptSignal (Touched/Heartbeat/Stepped/Connect/Wait). - roblox-scheduler.js — корутины + wait/task.wait/task.delay/task.spawn, автоматический fire Heartbeat/Stepped/RenderStepped на tick. - roblox-tween.js — TweenService с 10 easing-функциями (Linear, Quad, Cubic, Quart, Quint, Sine, Bounce, Elastic, Back, Exponential). - roblox-services.js — Players/LocalPlayer/Character/Humanoid (Health, WalkSpeed, JumpPower, TakeDamage, Died, LoadAnimation), UserInputService, RemoteEvent (FireServer/FireClient), RemoteFunction, DataStoreService, HttpService. - roblox-physics.js — BodyVelocity/BodyGyro/BodyPosition/BodyForce/ BodyAngularVelocity/AlignPosition/LinearVelocity. Интеграция в GameRuntime: - В start() проверяется script.kind === 'roblox-lua' → _startRobloxLuaScript() запускает RobloxLuaSandbox. - _handleRobloxLuaCommand() мапит IPC команды (partSet/partVel/playerCmd) на PrimitiveManager и game.player API. - _buildRobloxLuaSceneSnap() готовит snap для workspace:GetChildren. Тесты: **36/36 passed**. - mvp (9): math, Instance proxy, Part, IsA. - wait (5): корутины, wait/task.wait/task.delay. - tween (2): TweenInfo + Linear easing. - services (8): Humanoid, DataStore, HttpService, RemoteEvent. - integration (12): KillBrick, WalkSpeed, Tween-door, BodyVelocity конвейер, leaderstats, Checkpoint, циклы с wait, task.spawn, Color/Material, RemoteEvent client→server, Heartbeat, Vector3. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
69 lines
1.9 KiB
JSON
69 lines
1.9 KiB
JSON
{
|
|
"name": "rublox-player",
|
|
"version": "1.0.0",
|
|
"type": "module",
|
|
"description": "Open-source веб-плеер игр Рублокса — платформы создания 3D-игр в стиле Roblox. Babylon.js 7 + React 18 + Vite 5.",
|
|
"keywords": [
|
|
"rublox",
|
|
"game-player",
|
|
"babylonjs",
|
|
"3d",
|
|
"webgl",
|
|
"react",
|
|
"vite",
|
|
"multiplayer",
|
|
"colyseus"
|
|
],
|
|
"homepage": "https://rublox.pro",
|
|
"bugs": {
|
|
"url": "https://git.rublox.pro/rublox/player/issues",
|
|
"email": "security@rublox.pro"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+ssh://git@git.rublox.pro:2222/rublox/player.git"
|
|
},
|
|
"license": "AGPL-3.0-or-later",
|
|
"author": {
|
|
"name": "Иванкова Виктория Сергеевна (ИП)",
|
|
"email": "maksimivankov26@yandex.ru",
|
|
"url": "https://rublox.pro"
|
|
},
|
|
"scripts": {
|
|
"start": "vite",
|
|
"dev": "vite",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"lint": "eslint . --ext .js,.jsx --max-warnings 200",
|
|
"format": "prettier --write \"src/**/*.{js,jsx,json,md,css}\"",
|
|
"format:check": "prettier --check \"src/**/*.{js,jsx,json,md,css}\"",
|
|
"fetch-assets": "node scripts/fetch-assets.js",
|
|
"postinstall": "node scripts/fetch-assets.js"
|
|
},
|
|
"dependencies": {
|
|
"@babylonjs/core": "7.54.3",
|
|
"@babylonjs/loaders": "7.54.3",
|
|
"axios": "1.8.4",
|
|
"colyseus.js": "0.16.22",
|
|
"jwt-decode": "4.0.0",
|
|
"react": "18.3.1",
|
|
"react-dom": "18.3.1",
|
|
"react-router-dom": "7.4.0",
|
|
"socket.io-client": "^4.8.3",
|
|
"wasmoon": "^1.16.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/react": "18.3.12",
|
|
"@types/react-dom": "18.3.1",
|
|
"@vitejs/plugin-react": "4.3.3",
|
|
"eslint": "^8.57.0",
|
|
"eslint-plugin-react": "^7.34.0",
|
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
"prettier": "^3.2.5",
|
|
"vite": "5.4.10"
|
|
},
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
}
|