local name = "regional_weather:ambient" local CLOUD_SPEED = 1.8 local conditions = {} local function generate_effects(params) local override = {} local wind = climate_api.environment.get_wind() local skybox = {priority = 10} skybox.cloud_data = { density = climate_api.utility.rangelim(params.humidity / 100, 0.25, 0.75), speed = vector.multiply(wind, CLOUD_SPEED), thickness = climate_api.utility.rangelim(params.base_humidity * 0.2, 1, 18) } if params.height > -100 and params.humidity > 65 then skybox.sky_data = { type = "regular", clouds = true, sky_color = { day_sky = "#6a828e", day_horizon = "#5c7a8a", dawn_sky = "#b2b5d7", dawn_horizon = "#b7bce1", night_sky = "#2373e1", night_horizon = "#315d9b" } } end override["climate_api:skybox"] = skybox local movement = params.player:get_player_velocity() local movement_direction if (vector.length(movement) < 0.1) then movement_direction = vector.new(0, 0, 0) else movement_direction = vector.normalize(movement) end local vector_product = vector.dot(movement_direction, wind) local movement_penalty = climate_api.utility.sigmoid(vector_product, 1.6, 0.2, 0.8) + 0.2 override["regional_weather:speed_buff"] = movement_penalty return override end climate_api.register_weather(name, conditions, generate_effects)