feat(rbxl): XML-������ ������ .rbxl + Day/Night + Tool/Mouse/Backpack flow #38
@ -213,26 +213,22 @@ export class GameRuntime {
|
||||
}
|
||||
} else if (cmd === 'lightingTimeUpdate') {
|
||||
// Roblox Lighting:SetMinutesAfterMidnight → Babylon небо.
|
||||
const now = performance.now();
|
||||
if (!this._lastLightUpdate || now - this._lastLightUpdate > 250) {
|
||||
this._lastLightUpdate = now;
|
||||
try {
|
||||
const hour = Number(payload?.hour);
|
||||
// Debug-лог (первые несколько раз)
|
||||
if (!this._lightDbgCount) this._lightDbgCount = 0;
|
||||
if (this._lightDbgCount < 5) {
|
||||
this._lightDbgCount++;
|
||||
console.log('[lightingTimeUpdate]', { payload, hour,
|
||||
hasSetTimeOfDay: typeof this.scene3d?.setTimeOfDay,
|
||||
hasEnvironment: !!this.scene3d?.environment });
|
||||
// Ускоряем в 8x чтобы юзер увидел переход день↔ночь
|
||||
// в течение ~5 секунд после Play.
|
||||
try {
|
||||
const baseHour = Number(payload?.hour);
|
||||
if (baseHour >= 0 && baseHour < 24) {
|
||||
if (this._lightBaseHour == null) {
|
||||
this._lightBaseHour = baseHour;
|
||||
this._lightStartReal = performance.now();
|
||||
}
|
||||
if (hour >= 0 && hour < 24) {
|
||||
this.scene3d?.setTimeOfDay?.(hour);
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('[lightingTimeUpdate] error:', e);
|
||||
// Δigh-час относительно стартовой
|
||||
const dGame = baseHour - this._lightBaseHour;
|
||||
const accel = 8;
|
||||
const hour = ((this._lightBaseHour + dGame * accel) % 24 + 24) % 24;
|
||||
this.scene3d?.setTimeOfDay?.(hour);
|
||||
}
|
||||
}
|
||||
} catch (_) {}
|
||||
} else if (cmd === 'particleCreated') {
|
||||
// Roblox Instance.new('Sparkles') — запомнили какие
|
||||
// partlcle-эффекты есть у Tool. При equip покажем у руки.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user