forked from mtcontrib/regional_weather
Improve heavy snow performance, add pedology support, add documentation
This commit is contained in:
@ -8,7 +8,14 @@ local BLOCK_NAME = "regional_weather:ice"
|
||||
minetest.register_node(BLOCK_NAME, {
|
||||
tiles = {"(default_ice.png^[colorize:#ffffff:50)^[opacity:200"},
|
||||
paramtype = "light",
|
||||
groups = {cracky = 3, cools_lava = 1, slippery = 3, dig_immediate = 2},
|
||||
groups = {
|
||||
cracky = 3,
|
||||
cools_lava = 1,
|
||||
slippery = 3,
|
||||
dig_immediate = 2,
|
||||
melts = 1
|
||||
},
|
||||
freezemelt = "default:river_water_source",
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
use_texture_alpha = true,
|
||||
drop = "",
|
||||
|
28
abms/pedology.lua
Normal file
28
abms/pedology.lua
Normal file
@ -0,0 +1,28 @@
|
||||
if not regional_weather.settings.pedology
|
||||
or not minetest.get_modpath("pedology")
|
||||
then return end
|
||||
|
||||
climate_api.register_abm({
|
||||
label = "wetten or dry pedology nodes",
|
||||
nodenames = { "group:sucky" },
|
||||
neighbors = { "air" },
|
||||
interval = 25,
|
||||
chance = 30,
|
||||
catch_up = false,
|
||||
|
||||
conditions = {
|
||||
min_height = regional_weather.settings.min_height,
|
||||
max_height = regional_weather.settings.max_height,
|
||||
min_heat = 25,
|
||||
min_light = 15
|
||||
},
|
||||
|
||||
action = function (pos, node, env)
|
||||
local wetness = minetest.get_item_group(node.name, "wet") or 0
|
||||
if wetness < 2 and env.humidity > 55 then
|
||||
pedology.wetten(pos)
|
||||
elseif wetness > 0 and wetness < 3 and env.humidity < 40 then
|
||||
pedology.dry(pos)
|
||||
end
|
||||
end
|
||||
})
|
@ -77,7 +77,7 @@ climate_api.register_abm({
|
||||
end,
|
||||
|
||||
action = function (pos, node, env)
|
||||
if minetest.get_node(pos).name ~= "air" then return end
|
||||
if node.name ~= "air" then return end
|
||||
local base = minetest.get_node(vector.add(pos, {x=0, y=-1, z=0})).name
|
||||
local is_soil = minetest.get_item_group(base, "soil") or 0
|
||||
local is_stone = minetest.get_item_group(base, "stone") or 0
|
||||
@ -109,8 +109,7 @@ climate_api.register_abm({
|
||||
},
|
||||
|
||||
action = function (pos, node, env)
|
||||
local node_name = minetest.get_node(pos).name
|
||||
local value = minetest.get_item_group(node_name, "regional_weather_snow_cover")
|
||||
local value = minetest.get_item_group(node.name, "regional_weather_snow_cover")
|
||||
if value == nil then value = 0 end
|
||||
if value < 5 then
|
||||
minetest.set_node(pos, { name = BLOCK_PREFIX .. (value + 1) })
|
||||
@ -130,8 +129,7 @@ climate_api.register_abm({
|
||||
},
|
||||
|
||||
action = function (pos, node, env)
|
||||
local node_name = minetest.get_node(pos).name
|
||||
local value = minetest.get_item_group(node_name, "regional_weather_snow_cover")
|
||||
local value = minetest.get_item_group(node.name, "regional_weather_snow_cover")
|
||||
if value == nil then value = 0 end
|
||||
if value > 1 then
|
||||
minetest.set_node(pos, { name = BLOCK_PREFIX .. (value - 1) })
|
||||
|
Reference in New Issue
Block a user