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 e45a9968c4 - Show all commits

View File

@ -7776,6 +7776,15 @@ export class BabylonScene {
crosshair: this._crosshair || 'dot', crosshair: this._crosshair || 'dot',
shadowQuality: this._shadowQuality || 'soft', shadowQuality: this._shadowQuality || 'soft',
environment: this.environment ? this.environment.serialize() : null, environment: this.environment ? this.environment.serialize() : null,
// Кастомные настройки света — слайдеры из «Свет и атмосфера»
lighting: {
sunIntensity: this._sunIntensity ?? this._sunLight?.intensity ?? 0.8,
hemiIntensity: this._hemiIntensity ?? this._hemiLight?.intensity ?? 0.65,
sceneAmbient: this._sceneAmbient ?? 0.3,
exposure: this._exposure ?? 1.0,
contrast: this._contrast ?? 1.0,
saturation: this._saturation ?? 1.0,
},
skybox: this.skybox ? this.skybox.serialize() : null, skybox: this.skybox ? this.skybox.serialize() : null,
leaderstats: this.leaderstats ? this.leaderstats.serialize() : null, leaderstats: this.leaderstats ? this.leaderstats.serialize() : null,
achievements: this.achievements ? this.achievements.serialize() : null, achievements: this.achievements ? this.achievements.serialize() : null,
@ -8260,6 +8269,12 @@ export class BabylonScene {
if (state.scene.environment && this.environment) { if (state.scene.environment && this.environment) {
this.environment.load(state.scene.environment); this.environment.load(state.scene.environment);
} }
// Кастомные настройки света/цветокоррекции — применяем через
// setLightingProps (он сам подхватит default-ы если значения нет).
if (state.scene.lighting) {
try { this.setLightingProps(state.scene.lighting); }
catch (e) { console.warn('[BabylonScene] lighting load failed:', e); }
}
// Кастомное небо (задача 16) // Кастомное небо (задача 16)
if (state.scene.skybox && this.skybox) { if (state.scene.skybox && this.skybox) {
this.skybox.load(state.scene.skybox); this.skybox.load(state.scene.skybox);