Scripts/resources/[renewed]/Renewed-Weathersync/client/time.lua
2024-12-30 11:15:34 +01:00

48 lines
1.4 KiB
Lua

local timeScale = GlobalState.timeScale
local currentTime = GlobalState.currentTime
local timeFrozen = GlobalState.freezeTime
local playerState = LocalPlayer.state
AddStateBagChangeHandler('currentTime', 'global', function(_, _, value)
if value and next(value) then
if playerState.syncWeather then
NetworkOverrideClockTime(value.hour, value.minute, 0)
end
currentTime = value
end
end)
AddStateBagChangeHandler('timeScale', 'global', function(_, _, value)
if value then
if playerState.syncWeather then
NetworkOverrideClockMillisecondsPerGameMinute(value)
end
timeScale = value
end
end)
AddStateBagChangeHandler('freezeTime', 'global', function(_, _, value)
if playerState.syncWeather then
NetworkOverrideClockMillisecondsPerGameMinute(value and 99999999 or timeScale)
end
timeFrozen = value
end)
NetworkOverrideClockMillisecondsPerGameMinute(timeScale)
AddStateBagChangeHandler('syncWeather', ('player:%s'):format(cache.serverId), function(_, _, value)
if value then
NetworkOverrideClockTime(currentTime.hour, currentTime.minute, 0)
if not timeFrozen then
NetworkOverrideClockMillisecondsPerGameMinute(timeScale)
end
else
NetworkOverrideClockMillisecondsPerGameMinute(99999999)
NetworkOverrideClockTime(18, 0, 0)
end
end)