local Public = {}

local get_noise = require 'utils.get_noise'
local math_abs = math.abs
local math_round = math.round

function Public.set_daytime(surface, tick)
    local noise = get_noise('n1', {x = tick * 1, y = 0}, surface.map_gen_settings.seed)
    local daytime = math_abs(math_round(noise, 5))

    local brightness_modifier = 1.55 - daytime * 1.5
    if brightness_modifier < 0 then
        brightness_modifier = 0
    end
    if brightness_modifier > 1 then
        brightness_modifier = 1
    end

    if noise > 0 then
        surface.brightness_visual_weights = {1, brightness_modifier, 1}
    else
        surface.brightness_visual_weights = {brightness_modifier, 1, 1}
    end

    global.daytime = daytime

    if daytime > 0.55 then
        daytime = 0.55
    end
    surface.daytime = daytime
end

return Public
