Scripts/resources/[renewed]/Renewed-Weathersync/client/time.lua

48 lines
1.4 KiB
Lua
Raw Normal View History

2024-12-30 10:15:34 +00:00
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)