1
0
mirror of https://github.com/t-affeldt/regional_weather.git synced 2024-11-18 08:20:32 +01:00

Enable dynamic cloud size

This commit is contained in:
Till Affeldt 2020-04-13 16:52:45 +02:00
parent c43e972e83
commit 79fb0a234d
5 changed files with 36 additions and 29 deletions

View File

28
ca_weathers/ambient.lua Normal file
View File

@ -0,0 +1,28 @@
local name = "regional_weather:wind"
local CLOUD_SPEED = 1.8
local conditions = {}
local function generate_effects(params)
local override = {}
override["climate_api:clouds"] = {
size = climate_api.utility.rangelim(params.humidity, 0.25, 0.9),
speed = vector.multiply(params.wind, CLOUD_SPEED)
}
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, params.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)

View File

@ -1,24 +0,0 @@
local name = "regional_weather:wind"
local CLOUD_SPEED_MULTIPLICATOR = 1.8
local conditions = {}
local function generate_effects(params)
local override = {}
override["climate_api:skybox"] = {
clouds_data = {
speed = params.wind * CLOUD_SPEED_MULTIPLICATOR
}
}
local movement_direction = vector.normalize(params.player:get_player_velocity())
local vector_product = vector.dot(movement_direction, params.wind)
local movement_penalty = climate_api.utility.logistic_growth(vector_product, 1.6, 0.15, 0.8) + 0.1
override["regional_weather:speed_buff"] = movement_penalty
return override
end
climate_api.register_weather(name, conditions, generate_effects)

View File

@ -19,14 +19,15 @@ regional_weather.settings.max_height = get_setting_number("max_height", 120)
regional_weather.settings.min_height = get_setting_number("min_height", -50) regional_weather.settings.min_height = get_setting_number("min_height", -50)
-- import individual weather types -- import individual weather types
dofile(modpath.."/ca_weathers/ambient.lua")
dofile(modpath.."/ca_weathers/hail.lua")
dofile(modpath.."/ca_weathers/pollen.lua")
dofile(modpath.."/ca_weathers/rain.lua") dofile(modpath.."/ca_weathers/rain.lua")
dofile(modpath.."/ca_weathers/rain_heavy.lua") dofile(modpath.."/ca_weathers/rain_heavy.lua")
dofile(modpath.."/ca_weathers/sandstorm.lua")
dofile(modpath.."/ca_weathers/snow.lua") dofile(modpath.."/ca_weathers/snow.lua")
dofile(modpath.."/ca_weathers/snow_heavy.lua") dofile(modpath.."/ca_weathers/snow_heavy.lua")
dofile(modpath.."/ca_weathers/storm.lua") dofile(modpath.."/ca_weathers/storm.lua")
dofile(modpath.."/ca_weathers/sandstorm.lua")
dofile(modpath.."/ca_weathers/hail.lua")
dofile(modpath.."/ca_weathers/pollen.lua")
-- register environment effects -- register environment effects
dofile(modpath.."/ca_effects/lightning.lua") dofile(modpath.."/ca_effects/lightning.lua")

View File

@ -5,6 +5,8 @@ release = 1
depends = climate_api depends = climate_api
optional_depends = lightning optional_depends = lightning
description = """ description = """
The ultimate weather mod with support not only for rain, snow, and hail, Not every biome is the same and neither should their weather be.
but also seasons, dynamic puddles and snow layers, wind, regrowing fruit and much more. Regional Weather controls it's effects with the local climate in mind.
Experience the humid air of the rain forest and harsh desert sandstorms.
""" """