From ffdbdf792ea9bfcd1d31b3e5d01f9639814ddc55 Mon Sep 17 00:00:00 2001 From: Till Affeldt Date: Sat, 16 May 2020 16:20:47 +0200 Subject: [PATCH] Fix MTG warning, add configurability for lightning chances, nerf movement penalties --- ca_effects/lightning.lua | 3 ++- ca_weathers/ambient.lua | 2 +- init.lua | 15 ++++++++++----- settingtypes.txt | 4 ++++ 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/ca_effects/lightning.lua b/ca_effects/lightning.lua index 2914d3d..c95ea7b 100644 --- a/ca_effects/lightning.lua +++ b/ca_effects/lightning.lua @@ -6,6 +6,7 @@ Expects an integer indicating a chance (between 0 and 1) for lightning to strike ]] if not minetest.get_modpath("lightning") then return end +if regional_weather.settings.lightning == 0 then return end local EFFECT_NAME = "regional_weather:lightning" @@ -46,7 +47,7 @@ local function handle_effect(player_data) chance = chance + value - (chance * value) end local random = math.random() - if random <= chance then + if random <= chance * regional_weather.settings.lightning then local player = minetest.get_player_by_name(playername) local ppos = player:get_pos() local position = choose_pos(ppos) diff --git a/ca_weathers/ambient.lua b/ca_weathers/ambient.lua index afc5657..e9fe022 100644 --- a/ca_weathers/ambient.lua +++ b/ca_weathers/ambient.lua @@ -58,7 +58,7 @@ local function generate_effects(params) 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 + local movement_penalty = climate_api.utility.sigmoid(vector_product, 1.5, 0.15, 0.9) + 0.2 override["regional_weather:speed_buff"] = movement_penalty return override end diff --git a/init.lua b/init.lua index 15df265..f096e98 100644 --- a/init.lua +++ b/init.lua @@ -1,14 +1,18 @@ local modname = minetest.get_current_modname() local modpath = minetest.get_modpath(modname) -local function get_setting_bool(name, default) - local value = minetest.settings:get_bool("regional_weather_" .. name) +local function get_setting_bool(name, default, is_global) + local prefix = "" + if not is_global then prefix = "regional_weather_" end + local value = minetest.settings:get_bool(prefix .. name) if type(value) == "nil" then value = default end return minetest.is_yes(value) end -local function get_setting_number(name, default) - local value = minetest.settings:get("regional_weather_" .. name) +local function get_setting_number(name, default, is_global) + local prefix = "" + if not is_global then prefix = "regional_weather_" end + local value = minetest.settings:get(prefix .. name) if type(value) == "nil" then value = default end return tonumber(value) end @@ -23,6 +27,7 @@ regional_weather.settings.soil = get_setting_bool("soil", true) regional_weather.settings.fire = get_setting_bool("fire", true) regional_weather.settings.ice = get_setting_bool("ice", true) regional_weather.settings.pedology = get_setting_bool("pedology", true) +regional_weather.settings.lightning = get_setting_number("lightning", 1) 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.cloud_height = get_setting_number("cloud_height", 120) @@ -31,7 +36,7 @@ regional_weather.settings.cloud_scale = get_setting_number("cloud_scale", 40) -- warn about clouds being overriden by MTG weather if climate_mod.settings.skybox and minetest.get_modpath("weather") -and get_setting_bool("enable_weather", true) then +and get_setting_bool("enable_weather", true, true) then minetest.log("warning", "[Regional Weather] Disable MTG weather for the best experience") end diff --git a/settingtypes.txt b/settingtypes.txt index 63e7358..8d8a99d 100644 --- a/settingtypes.txt +++ b/settingtypes.txt @@ -25,6 +25,10 @@ regional_weather_fire (Extinguish fire) bool true # If set to true, rain will wetten or dry nodes from pedology mod. regional_weather_pedology (Wetten pedology nodes) bool true +# Multiplier for lightning strike chances +# Require lightning mod to be installed +regional_weather_lightning (Lightning chance modifier) float 1 0 20 + [World Configuration] # No visual effects will be applied below this height.