feat: 50 игр на Lua + импорт Roblox для всех + поддержка Lua в плеере #39

Merged
min merged 215 commits from feat/lua-50-games-bundle into main 2026-06-09 21:59:25 +00:00
Showing only changes of commit 3e928e8d4e - Show all commits

View File

@ -507,10 +507,10 @@ export class PrimitiveManager {
const matName = `${mesh.name}_mat`; const matName = `${mesh.name}_mat`;
const mat = new StandardMaterial(matName, this.scene); const mat = new StandardMaterial(matName, this.scene);
mat.diffuseColor = Color3.FromHexString(color || '#888888'); mat.diffuseColor = Color3.FromHexString(color || '#888888');
// ambient умеренный — чтобы тени не становились грязно-чёрными, // ambient (1,1,1) — позволяет scene.ambientColor (0.3,0.3,0.3) подсветить
// но сохранялся контраст между освещёнными/затенёнными гранями. // тени до 30% яркости цвета. На прямом свете diffuse доминирует.
// (1,1,1) делает картинку плоской; 0.5 — нормальный компромисс. // Без emissive — контраст света/тени сохраняется как в Roblox.
mat.ambientColor = new Color3(0.5, 0.5, 0.5); mat.ambientColor = new Color3(1, 1, 1);
// Если задан textureUrl — подгружаем PNG как diffuseTexture. Это // Если задан textureUrl — подгружаем PNG как diffuseTexture. Это
// используется для GD-скинов куба (например /gd/skins/cube_smile.png). // используется для GD-скинов куба (например /gd/skins/cube_smile.png).
@ -575,11 +575,10 @@ export class PrimitiveManager {
break; break;
case 'glossy': case 'glossy':
default: { default: {
// Roblox Plastic — лёгкий specular + чуть emissive чтобы цвет // Roblox Plastic — слабый specular, без emissive.
// не тух в тенях. 8% emissive — сохраняем контраст света/тени // diffuse=#cccccc должно выглядеть СЕРЫМ (как в Roblox).
// (как в Roblox: видны грани, объём, тени от строений). // ambient (от scene 0.3 × mat.ambient 0.4) даёт цвет в тенях,
const dc = Color3.FromHexString(color || '#cccccc'); // но не убивает контраст.
mat.emissiveColor = new Color3(dc.r * 0.08, dc.g * 0.08, dc.b * 0.08);
mat.specularColor = new Color3(0.05, 0.05, 0.05); mat.specularColor = new Color3(0.05, 0.05, 0.05);
mat.specularPower = 64; mat.specularPower = 64;
break; break;