Загрузка данных


local Lighting = game:GetService("Lighting")

--------------------------------------------------
-- SETTINGS
--------------------------------------------------

local MORNING_DURATION = 20 * 60
local EVENING_DURATION = 20 * 60
local NIGHT_DURATION = 20 * 60

local UPDATE_RATE = 0.1

--------------------------------------------------
-- TIME
--------------------------------------------------

local MORNING_START = 6
local EVENING_START = 18
local NIGHT_START = 0

--------------------------------------------------
-- CHANGE TIME
--------------------------------------------------

local function changeTime(startTime, endTime, duration)

	local elapsed = 0

	while elapsed < duration do

		local alpha = elapsed / duration

		local clockTime =
			startTime
			+
			(endTime - startTime) * alpha

		Lighting.ClockTime = clockTime % 24

		task.wait(UPDATE_RATE)

		elapsed += UPDATE_RATE
	end

end

--------------------------------------------------
-- DAY/NIGHT CYCLE
--------------------------------------------------

while true do

	-- Morning
	changeTime(
		MORNING_START,
		EVENING_START,
		MORNING_DURATION
	)

	-- Evening
	changeTime(
		EVENING_START,
		24,
		EVENING_DURATION
	)

	-- Night
	changeTime(
		NIGHT_START,
		MORNING_START,
		NIGHT_DURATION
	)

end