feat(rbxl): Day/Night ускорение 8x для импортированных карт
Roblox Day/Night скрипт идёт wait(0.01) + 0.1 минуты = очень медленно. В оригинале это типичный паттерн, юзеру не очень видно. Ускоряем в 8x для импортированных скриптов: накопленная дельта часов от Lua-скрипта × 8 → реальный hour для setTimeOfDay. Юзер видит полный цикл день↔ночь за 10-15 секунд вместо часа. Также убрал debug-лог lightingTimeUpdate (мешал).
This commit is contained in:
parent
66aac4826e
commit
b820ad11bd
@ -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;
|
||||
// Ускоряем в 8x чтобы юзер увидел переход день↔ночь
|
||||
// в течение ~5 секунд после Play.
|
||||
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 });
|
||||
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) {
|
||||
// Δigh-час относительно стартовой
|
||||
const dGame = baseHour - this._lightBaseHour;
|
||||
const accel = 8;
|
||||
const hour = ((this._lightBaseHour + dGame * accel) % 24 + 24) % 24;
|
||||
this.scene3d?.setTimeOfDay?.(hour);
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('[lightingTimeUpdate] error:', e);
|
||||
}
|
||||
}
|
||||
} catch (_) {}
|
||||
} else if (cmd === 'particleCreated') {
|
||||
// Roblox Instance.new('Sparkles') — запомнили какие
|
||||
// partlcle-эффекты есть у Tool. При equip покажем у руки.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user