mirror of
https://github.com/t-affeldt/climate_api.git
synced 2025-04-30 08:21:46 -04:00
Compare commits
18 commits
Author | SHA1 | Date | |
---|---|---|---|
|
85e4553f2a | ||
|
8b846b23dc | ||
|
8e3ce58015 | ||
|
04cfef309a | ||
|
2093eea77f | ||
|
c23277284a | ||
|
5448e04d85 | ||
|
79233a2cb1 | ||
|
f3f0eaac2a | ||
|
0dd5c74d42 | ||
|
d1c70e904b | ||
|
7d299edb5b | ||
|
bf2d4e09ca | ||
|
4d0b080dd5 | ||
|
eff85fbd2b | ||
|
5635ab4daa | ||
|
e8f4048670 | ||
|
dd769dfdd0 |
13 changed files with 140 additions and 69 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
*.code-workspace
|
48
init.lua
48
init.lua
|
@ -25,27 +25,41 @@ end
|
|||
|
||||
-- load settings from config file
|
||||
climate_mod.settings = {
|
||||
damage = get_setting_bool("damage", true),
|
||||
raycast = get_setting_bool("raycast", true),
|
||||
particles = get_setting_bool("particles", true),
|
||||
skybox = get_setting_bool("skybox", true),
|
||||
sound = get_setting_bool("sound", true),
|
||||
hud_overlay = get_setting_bool("hud_overlay", true),
|
||||
wind = get_setting_bool("wind", true),
|
||||
seasons = get_setting_bool("seasons", true),
|
||||
fahrenheit = get_setting_bool("fahrenheit", false),
|
||||
block_updates = get_setting_bool("block_updates", true),
|
||||
heat = get_setting_number("heat_base", 0),
|
||||
humidity = get_setting_number("humidity_base", 0),
|
||||
time_spread = get_setting_number("time_spread", 1),
|
||||
particle_count = get_setting_number("particle_count", 1),
|
||||
tick_speed = get_setting_number("tick_speed", 1),
|
||||
volume = get_setting_number("volume", 1),
|
||||
ceiling_checks = get_setting_number("ceiling_checks", 10),
|
||||
damage = get_setting_bool("damage", true),
|
||||
raycast = get_setting_bool("raycast", true),
|
||||
particles = get_setting_bool("particles", true),
|
||||
skybox = get_setting_bool("skybox", true),
|
||||
sound = get_setting_bool("sound", true),
|
||||
hud_overlay = get_setting_bool("hud_overlay", true),
|
||||
wind = get_setting_bool("wind", true),
|
||||
seasons = get_setting_bool("seasons", true),
|
||||
fahrenheit = get_setting_bool("fahrenheit", false),
|
||||
block_updates = get_setting_bool("block_updates", true),
|
||||
heat = get_setting_number("heat_base", 0),
|
||||
humidity = get_setting_number("humidity_base", 0),
|
||||
time_spread = get_setting_number("time_spread", 1),
|
||||
particle_count = get_setting_number("particle_count", 1),
|
||||
tick_speed = get_setting_number("tick_speed", 1),
|
||||
volume = get_setting_number("volume", 1),
|
||||
ceiling_checks = get_setting_number("ceiling_checks", 10)
|
||||
}
|
||||
|
||||
climate_mod.i18n = minetest.get_translator("climate_api")
|
||||
|
||||
-- attempt to disable MTG weather mod
|
||||
if climate_mod.settings.skybox and minetest.get_modpath("weather") then
|
||||
if weather ~= nil and weather.get ~= nil then
|
||||
weather.get = function(player)
|
||||
return {}
|
||||
end
|
||||
elseif minetest.settings:get_bool("enable_weather") then
|
||||
-- old version with no API support
|
||||
-- warn about clouds being overriden by MTG weather
|
||||
minetest.log("warning", "[Regional Weather] " ..
|
||||
climate_mod.i18n("Disable MTG weather for the best experience. Check the forum for more information."))
|
||||
end
|
||||
end
|
||||
|
||||
-- initialize empty registers
|
||||
climate_mod.weathers = {}
|
||||
climate_mod.effects = {}
|
||||
|
|
|
@ -57,7 +57,7 @@ minetest.register_chatcommand("weather", {
|
|||
|
||||
-- set base heat to increase or decrease global climate temperatures
|
||||
minetest.register_chatcommand("set_base_heat", {
|
||||
params = "<heat>",
|
||||
params = S("<heat>"),
|
||||
description = S("Override the weather algorithm's base heat"),
|
||||
privs = { weather = true },
|
||||
func = function(playername, param)
|
||||
|
@ -73,7 +73,7 @@ minetest.register_chatcommand("set_base_heat", {
|
|||
|
||||
-- override global heat levels with given value
|
||||
minetest.register_chatcommand("set_heat", {
|
||||
params = "<heat>",
|
||||
params = S("<heat>"),
|
||||
description = S("Override the weather algorithm's heat"),
|
||||
privs = { weather = true },
|
||||
func = function(playername, param)
|
||||
|
@ -93,7 +93,7 @@ minetest.register_chatcommand("set_heat", {
|
|||
|
||||
-- set base heat to increase or decrease global climate humidity
|
||||
minetest.register_chatcommand("set_base_humidity", {
|
||||
params = "<humidity>",
|
||||
params = S("<humidity>"),
|
||||
description = S("Override the weather algorithm's base humidity"),
|
||||
privs = { weather = true },
|
||||
func = function(playername, param)
|
||||
|
@ -109,7 +109,7 @@ minetest.register_chatcommand("set_base_humidity", {
|
|||
|
||||
-- override global humidity with given value
|
||||
minetest.register_chatcommand("set_humidity", {
|
||||
params = "<humidity>",
|
||||
params = S("<humidity>"),
|
||||
description = S("Override the weather algorithm's humidity"),
|
||||
privs = { weather = true },
|
||||
func = function(playername, param)
|
||||
|
@ -129,7 +129,7 @@ minetest.register_chatcommand("set_humidity", {
|
|||
|
||||
-- override wind direction and speed with given values
|
||||
minetest.register_chatcommand("set_wind", {
|
||||
params = "<wind>",
|
||||
params = S("<wind>"),
|
||||
description = S("Override the weather algorithm's windspeed"),
|
||||
privs = { weather = true },
|
||||
func = function(playername, param)
|
||||
|
@ -171,7 +171,7 @@ minetest.register_chatcommand("weather_settings", {
|
|||
|
||||
-- force a weather preset or disable it
|
||||
minetest.register_chatcommand("set_weather", {
|
||||
params ="<weather> <status>",
|
||||
params = S("<weather> <status>"),
|
||||
description = S("Turn the specified weather preset on or off for all players or reset it to automatic"),
|
||||
privs = { weather = true },
|
||||
func = function(playername, param)
|
||||
|
@ -229,4 +229,18 @@ minetest.register_chatcommand("weather_influences", {
|
|||
minetest.chat_send_player(playername, dump2(value, influence))
|
||||
end
|
||||
end
|
||||
})
|
||||
})
|
||||
|
||||
-- used to debug downfall
|
||||
minetest.register_chatcommand("explain_humidity", {
|
||||
description = S("Explains how the humidity value got calculated"),
|
||||
func = function(playername)
|
||||
local base = climate_mod.settings.humidity
|
||||
local biome = minetest.get_humidity((minetest.get_player_by_name(playername)):get_pos())
|
||||
local random = climate_mod.state:get_float("humidity_random");
|
||||
local random_base = climate_mod.state:get_float("humidity_base");
|
||||
minetest.chat_send_player(playername, dump2(base, "base"))
|
||||
minetest.chat_send_player(playername, dump2(biome, "biome"))
|
||||
minetest.chat_send_player(playername, dump2(random, "random"))
|
||||
end
|
||||
})
|
||||
|
|
|
@ -9,7 +9,7 @@ function environment.get_heat(pos)
|
|||
local height = climate_api.utility.rangelim((-pos.y + 10) / 15, -10, 10)
|
||||
local time = climate_api.utility.normalized_cycle(minetest.get_timeofday()) * 0.6 + 0.7
|
||||
local random = climate_mod.state:get_float("heat_random");
|
||||
return (base + biome + height) * time * random
|
||||
return base + ((biome + height) * time * random)
|
||||
end
|
||||
|
||||
function environment.get_humidity(pos)
|
||||
|
@ -19,8 +19,7 @@ function environment.get_humidity(pos)
|
|||
local base = climate_mod.settings.humidity
|
||||
local biome = minetest.get_humidity(pos)
|
||||
local random = climate_mod.state:get_float("humidity_random");
|
||||
local random_base = climate_mod.state:get_float("humidity_base");
|
||||
return (base + biome * 0.7 + random_base * 0.3) * random
|
||||
return base + ((biome * 0.7 + 40 * 0.3) * random)
|
||||
end
|
||||
|
||||
function environment.get_wind(pos)
|
||||
|
|
|
@ -10,7 +10,7 @@ climate_api.register_influence("humidity",
|
|||
climate_api.environment.get_humidity
|
||||
)
|
||||
|
||||
climate_api.register_influence("base_humidity",
|
||||
climate_api.register_influence("biome_humidity",
|
||||
minetest.get_humidity
|
||||
)
|
||||
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
local GSCYCLE = 0.03 * climate_mod.settings.tick_speed -- only process event loop after this amount of time
|
||||
local WORLD_CYCLE = 30.00 * climate_mod.settings.tick_speed -- only update global environment influences after this amount of time
|
||||
local GSCYCLE = 0.06 * climate_mod.settings.tick_speed -- only process event loop after this amount of time
|
||||
local WORLD_CYCLE = 30.00 * climate_mod.settings.tick_speed -- only update global environment influences after this amount of time
|
||||
|
||||
local gs_timer = 0
|
||||
local world_timer = 0
|
||||
minetest.register_globalstep(function(dtime)
|
||||
local player_list = minetest.get_connected_players()
|
||||
if #player_list == 0 then return end
|
||||
|
||||
gs_timer = gs_timer + dtime
|
||||
world_timer = world_timer + dtime
|
||||
|
||||
|
@ -26,7 +29,7 @@ minetest.register_globalstep(function(dtime)
|
|||
end
|
||||
end
|
||||
|
||||
local current_effects = climate_mod.trigger.get_active_effects()
|
||||
local current_effects = climate_mod.trigger.get_active_effects(player_list)
|
||||
|
||||
for name, effect in pairs(climate_mod.effects) do
|
||||
local cycle = climate_mod.cycles[name].timespan * climate_mod.settings.tick_speed
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
local mod_lighting_monoid = minetest.get_modpath("lighting_monoid") ~= nil
|
||||
|
||||
local default_sky = {
|
||||
sky_data = {
|
||||
base_color = nil,
|
||||
|
@ -74,12 +76,11 @@ local function set_skybox(playername, sky)
|
|||
player:set_moon(sky.moon_data)
|
||||
player:set_sun(sky.sun_data)
|
||||
player:set_stars(sky.star_data)
|
||||
if player.set_lighting then
|
||||
player:set_lighting({
|
||||
shadows = { intensity = sky.light_data.shadow_intensity },
|
||||
saturation = sky.light_data.saturation
|
||||
})
|
||||
end
|
||||
local lighting = {
|
||||
shadows = { intensity = sky.light_data.shadow_intensity },
|
||||
saturation = sky.light_data.saturation
|
||||
}
|
||||
lighting_monoid:add_change(player, lighting, "climate_api:merged_lighting")
|
||||
end
|
||||
|
||||
function skybox.update(playername)
|
||||
|
|
|
@ -9,7 +9,7 @@ function trigger.get_global_environment()
|
|||
end
|
||||
|
||||
function trigger.get_position_environment(pos)
|
||||
local env = table.copy(climate_mod.global_environment)
|
||||
local env = trigger.get_global_environment()
|
||||
for influence, func in pairs(climate_mod.influences) do
|
||||
env[influence] = func(pos)
|
||||
end
|
||||
|
@ -83,20 +83,18 @@ local function get_weather_effects(player, weather_config, env)
|
|||
return effects
|
||||
end
|
||||
|
||||
function trigger.get_active_effects()
|
||||
function trigger.get_active_effects(players)
|
||||
local environments = {}
|
||||
local effects = {}
|
||||
climate_mod.current_weather = {}
|
||||
|
||||
for _, player in ipairs(minetest.get_connected_players()) do
|
||||
for _, player in ipairs(players) do
|
||||
local pname = player:get_player_name()
|
||||
local hp = player:get_hp()
|
||||
-- skip weather presets for dead players
|
||||
if hp ~= nil and hp > 0 then
|
||||
environments[pname] = trigger.get_player_environment(player)
|
||||
end
|
||||
local env = environments[pname]
|
||||
if env ~= nil then
|
||||
local env = trigger.get_player_environment(player)
|
||||
environments[pname] = env
|
||||
for wname, wconfig in pairs(climate_mod.weathers) do
|
||||
if is_weather_active(player, wname, env) then
|
||||
if climate_mod.current_weather[pname] == nil then
|
||||
|
|
|
@ -6,9 +6,8 @@ local WIND_SCALE = 2
|
|||
local HEAT_SPREAD = 400
|
||||
local HEAT_SCALE = 0.3
|
||||
local HUMIDITY_SPREAD = 150
|
||||
local HUMIDITY_SCALE = 0.5
|
||||
local HUMIDITY_BASE_SPREAD = 800
|
||||
local HUMIDITY_BASE_SCALE = 40
|
||||
local HUMIDITY_SCALE = 1
|
||||
local HUMIDITY_TIMESCALE = 1
|
||||
|
||||
local nobj_wind_x
|
||||
local nobj_wind_z
|
||||
|
@ -47,23 +46,14 @@ local pn_heat = {
|
|||
}
|
||||
|
||||
local pn_humidity = {
|
||||
offset = 0,
|
||||
offset = 1,
|
||||
scale = HUMIDITY_SCALE,
|
||||
spread = {x = HUMIDITY_SPREAD, y = HUMIDITY_SPREAD, z = HUMIDITY_SPREAD},
|
||||
seed = 8374061,
|
||||
octaves = 2,
|
||||
persist = 0.5,
|
||||
lacunarity = 2
|
||||
}
|
||||
|
||||
local pn_humidity_base = {
|
||||
offset = 50,
|
||||
scale = HUMIDITY_BASE_SCALE,
|
||||
spread = {x = HUMIDITY_BASE_SPREAD, y = HUMIDITY_BASE_SPREAD, z = HUMIDITY_BASE_SPREAD},
|
||||
seed = 3803465,
|
||||
octaves = 2,
|
||||
persist = 0.5,
|
||||
lacunarity = 2
|
||||
lacunarity = 2,
|
||||
flags = "noeased"
|
||||
}
|
||||
|
||||
local function update_wind(timer)
|
||||
|
@ -83,11 +73,8 @@ end
|
|||
|
||||
local function update_humidity(timer)
|
||||
nobj_humidity = nobj_humidity or minetest.get_perlin(pn_humidity)
|
||||
local n_humidity = nobj_humidity:get_2d({x = timer, y = 0})
|
||||
local n_humidity = nobj_humidity:get_2d({x = timer * HUMIDITY_TIMESCALE, y = 0})
|
||||
climate_mod.state:set_float("humidity_random", n_humidity)
|
||||
nobj_humidity_base = nobj_humidity_base or minetest.get_perlin(pn_humidity_base)
|
||||
local n_humidity_base = nobj_humidity_base:get_2d({x = timer, y = 0})
|
||||
climate_mod.state:set_float("humidity_base", n_humidity_base)
|
||||
end
|
||||
|
||||
function world.update_status(timer)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# textdomain:climate_api
|
||||
# textdomain: climate_api
|
||||
Make changes to the current weather=Ändere das aktuelle Wetter
|
||||
Display weather information=Betrachte Informationen zum Wetter
|
||||
The following weather presets are active for you:=Die folgenden Wetterklassen sind gerade aktiv
|
||||
|
@ -8,6 +8,7 @@ scorching=stechend heiße
|
|||
pleasant=angenehme
|
||||
chilly=kühle
|
||||
It is a @1 @2 right now and humidity is at @3%.=Es sind gerade @1 @2 und die Luftfeuchtigkeit liegt bei @3%.
|
||||
<heat>=
|
||||
Override the weather algorithm's base heat=Überschreibe die Standard-Temperatur
|
||||
Provide a number to modify the base heat=Gebe eine Zahl an, um die Standard-Temperatur anzupassen
|
||||
Base heat changed=Die Standard-Temperatur wurde geändert
|
||||
|
@ -15,6 +16,7 @@ Override the weather algorithm's heat=Überschreibe die tatsächliche Temperatur
|
|||
Provide a number to modify the heat=Gebe eine Zahl an, um die Temperatur anzupassen
|
||||
Heat value reset=Die Temperatur wurde zurückgesetzt
|
||||
Heat value changed=Die Temperatur wurde geändert
|
||||
<humidity>=
|
||||
Override the weather algorithm's base humidity=Überschreibe die Standard-Luftfeuchtigkeit
|
||||
Provide a number to modify the base humidity=Gebe eine Zahl an, um die Standard-Temperatur anzupassen
|
||||
Base humidity changed=Die Standard-Luftfeuchtigkeit wurde geändert
|
||||
|
@ -22,6 +24,7 @@ Override the weather algorithm's humidity=Überschreibe die tatsächliche Luftfe
|
|||
Provide a number to modify the humidity=Gebe eine Zahl an, um die Luftfeuchtigkeit anzupassen
|
||||
Humidity value reset=Die Luftfeuchtigkeit wurde zurückgesetzt
|
||||
Humidity value changed=Die Luftfeuchtigkeit wurde geändert
|
||||
<wind>=
|
||||
Override the weather algorithm's windspeed=Überschreibe die Windgeschwindigkeit
|
||||
Provide a vector of two numbers to modify the wind=Gebe einen Vektor aus zwei Zahlen an, um die Windgeschwindigkeit anzupassen
|
||||
Wind reset=Der Wind wurde zurückgesetzt
|
||||
|
@ -29,6 +32,7 @@ Invalid wind configuration=Fehlerhafte Windkonfiguration
|
|||
Wind changed=Der Wind wurde geändert
|
||||
Print the active Climate API configuration=Betrachte die Einstellungen für Climate API
|
||||
Current Settings=Aktuelle Einstellungen
|
||||
<weather> <status>=
|
||||
Turn the specified weather preset on or off for all players or reset it to automatic=Schalte für alle Spieler die angegebene Wetterklasse an, aus oder schalte sie auf automatisch
|
||||
Unknown weather preset=Unbekannte Wetterklasse
|
||||
Invalid weather status. Set the preset to either on, off or auto.=Unbekannter Status. Setze die Wetterklasse entweder auf on, off oder auto
|
||||
|
@ -36,4 +40,5 @@ Weather @1 successfully set to @2=Wetter @1 wurde erfolgreich auf @2 gesetzt
|
|||
Prints which weather presets are enforced or disabled=Betrachte, welche Wetterklassen erzwungen oder deaktiviert sind
|
||||
Current activation rules:=Aktuelle Aktivierungsregeln
|
||||
Prints which weather influences cause your current weather=Betrachte, welche Umwelteinflüsse das aktuelle Wetter hervorrufen
|
||||
Current influences rules:=Aktuelle Einflussfaktoren
|
||||
Current influences rules:=Aktuelle Einflussfaktoren
|
||||
Explains how the humidity value got calculated=
|
||||
|
|
44
locale/climate_api.eo.tr
Normal file
44
locale/climate_api.eo.tr
Normal file
|
@ -0,0 +1,44 @@
|
|||
# textdomain: climate_api
|
||||
Make changes to the current weather=Ŝanĝi la nunan veteron
|
||||
Display weather information=Montri veterajn informojn
|
||||
The following weather presets are active for you:=La jenaj veteragordoj estas ŝaltitaj por vi:
|
||||
Your sky is clear. No weather presets are currently active.=La suno brilas. Neniu veteragordo estas ŝaltita.
|
||||
As a result, the following environment effects are applied:=Pro tio, la jenaj efikoj estas aktivaj:
|
||||
scorching=Varmas
|
||||
pleasant=Komfortas
|
||||
chilly=Malvarmas
|
||||
It is a @1 @2 right now and humidity is at @3%.=@1 je @2 ĝuste nun, kun aermalsekeco je @3 gradoj.
|
||||
<heat>=<varm>
|
||||
Override the weather algorithm's base heat=Anstataŭigi la bazan varmecon de la vetera algoritmo
|
||||
Provide a number to modify the base heat=Doni nombron anstataŭiguntan la bazan varmecon
|
||||
Base heat changed=Baza varmeco ŝanĝita
|
||||
Override the weather algorithm's heat=Anstataŭigi la varmecon de la vetera algoritmo
|
||||
Provide a number to modify the heat=Doni nombron anstataŭiguntan la varmecon
|
||||
Heat value reset=Varmeco malagordita
|
||||
Heat value changed=Varmeco ŝanĝita
|
||||
<humidity>=<aermalsek>
|
||||
Override the weather algorithm's base humidity=Anstataŭigi la bazan aermalsekecon de la vetera algoritmo
|
||||
Provide a number to modify the base humidity=Doni nombron anstataŭiguntan la bazan aermalsekecon
|
||||
Base humidity changed=Baza aermalsekeco ŝanĝita
|
||||
Override the weather algorithm's humidity=Anstataŭigi la aermalsekecon de la vetera algoritmo
|
||||
Provide a number to modify the humidity=Doni nombron anstataŭiguntan la aermalsekecon
|
||||
Humidity value reset=Aermalsekeco malagordita
|
||||
Humidity value changed=Aermalsekeca ŝanĝita
|
||||
<wind>=<vent>
|
||||
Override the weather algorithm's windspeed=Anstataŭigi la ventforton de la vetera algoritmo
|
||||
Provide a vector of two numbers to modify the wind=Doni nombroparon anstataŭiguntan la ventoforton
|
||||
Wind reset=Ventoforto malagordita
|
||||
Invalid wind configuration=Nevalida ventagordo
|
||||
Wind changed=Vento ŝanĝita
|
||||
Print the active Climate API configuration=Presi la nunan agordon por Climate API
|
||||
Current Settings=Nunaj Agordoj
|
||||
<weather> <status>=<veter> <ŝaltec>
|
||||
Turn the specified weather preset on or off for all players or reset it to automatic=Agordi veteragordon por ĉiuj ludantoj: «on» (ŝalti), «off» (malŝalti), «reset» (malfari)
|
||||
Unknown weather preset=Nekonata veteragordo
|
||||
Invalid weather status. Set the preset to either on, off or auto.=Nevalida veterostato. Agordu la veteragordon al «on» (ŝalti), «off» (malŝalti), aŭ «auto» (memagi).
|
||||
Weather @1 successfully set to @2=Vetero @1 sukcese agordita al @2
|
||||
Prints which weather presets are enforced or disabled=Listigas veterstatojn laŭ ŝaltiteco
|
||||
Current activation rules:=Nunaj aktivigaj reguloj:
|
||||
Prints which weather influences cause your current weather=Presas la influojn kiuj venigis la nunan veteron
|
||||
Current influences rules:=Nunaj influaj reguloj:
|
||||
Explains how the humidity value got calculated=Klarigas kiel la aermalseka valoro kalkuliĝis
|
|
@ -1,4 +1,4 @@
|
|||
# textdomain:climate_api
|
||||
# textdomain: climate_api
|
||||
Make changes to the current weather=
|
||||
Display weather information=
|
||||
The following weather presets are active for you:=
|
||||
|
@ -8,6 +8,7 @@ scorching=
|
|||
pleasant=
|
||||
chilly=
|
||||
It is a @1 @2 right now and humidity is at @3%.=
|
||||
<heat>=
|
||||
Override the weather algorithm's base heat=
|
||||
Provide a number to modify the base heat=
|
||||
Base heat changed=
|
||||
|
@ -15,6 +16,7 @@ Override the weather algorithm's heat=
|
|||
Provide a number to modify the heat=
|
||||
Heat value reset=
|
||||
Heat value changed=
|
||||
<humidity>=
|
||||
Override the weather algorithm's base humidity=
|
||||
Provide a number to modify the base humidity=
|
||||
Base humidity changed=
|
||||
|
@ -22,6 +24,7 @@ Override the weather algorithm's humidity=
|
|||
Provide a number to modify the humidity=
|
||||
Humidity value reset=
|
||||
Humidity value changed=
|
||||
<wind>=
|
||||
Override the weather algorithm's windspeed=
|
||||
Provide a vector of two numbers to modify the wind=
|
||||
Wind reset=
|
||||
|
@ -29,6 +32,7 @@ Invalid wind configuration=
|
|||
Wind changed=
|
||||
Print the active Climate API configuration=
|
||||
Current Settings=
|
||||
<weather> <status>=
|
||||
Turn the specified weather preset on or off for all players or reset it to automatic=
|
||||
Unknown weather preset=
|
||||
Invalid weather status. Set the preset to either on, off or auto.=
|
||||
|
@ -36,4 +40,5 @@ Weather @1 successfully set to @2=
|
|||
Prints which weather presets are enforced or disabled=
|
||||
Current activation rules:=
|
||||
Prints which weather influences cause your current weather=
|
||||
Current influences rules:=
|
||||
Current influences rules:=
|
||||
Explains how the humidity value got calculated=
|
||||
|
|
4
mod.conf
4
mod.conf
|
@ -1,8 +1,8 @@
|
|||
name = climate_api
|
||||
title = Climate API
|
||||
author = TestificateMods
|
||||
release = 10001
|
||||
optional_depends = player_monoids, playerphysics, pova
|
||||
depends = lighting_monoid
|
||||
optional_depends = player_monoids, playerphysics, pova, weather
|
||||
description = """
|
||||
A powerful engine for weather presets and visual effects.
|
||||
Use the regional climate to set up different effects for different regions.
|
||||
|
|
Loading…
Add table
Reference in a new issue