feat(lighting): persistence настроек света в проект
Слайдеры sun/hemi/ambient/exposure/contrast/saturation теперь сохраняются в projectData.scene.lighting при save и применяются обратно при load. Раньше параметры жили только в текущей сессии — после refresh страницы возвращались к дефолтам. Импортированные .rbxl карты также сохраняют выставленные пользователем параметры света.
This commit is contained in:
parent
5b44a286a9
commit
e45a9968c4
@ -7776,6 +7776,15 @@ export class BabylonScene {
|
||||
crosshair: this._crosshair || 'dot',
|
||||
shadowQuality: this._shadowQuality || 'soft',
|
||||
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,
|
||||
leaderstats: this.leaderstats ? this.leaderstats.serialize() : null,
|
||||
achievements: this.achievements ? this.achievements.serialize() : null,
|
||||
@ -8260,6 +8269,12 @@ export class BabylonScene {
|
||||
if (state.scene.environment && this.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)
|
||||
if (state.scene.skybox && this.skybox) {
|
||||
this.skybox.load(state.scene.skybox);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user