forked from VoxeLibre/VoxeLibre
Pile up snow while snowing
This commit is contained in:
parent
eb5378afec
commit
2aaeed7720
|
@ -67,6 +67,7 @@ function mcl_weather.has_snow(pos)
|
||||||
local bn = minetest.get_biome_name(bd.biome)
|
local bn = minetest.get_biome_name(bd.biome)
|
||||||
local minheight = -64
|
local minheight = -64
|
||||||
if bn:find("Taiga") then minheight = 100 end
|
if bn:find("Taiga") then minheight = 100 end
|
||||||
|
if bn:find("ColdTaiga") then minheight = 0 end
|
||||||
if bn:find("MegaSpruce") then minheight = 140 end
|
if bn:find("MegaSpruce") then minheight = 140 end
|
||||||
if pos.y < minheight then return false end
|
if pos.y < minheight then return false end
|
||||||
if table.indexof(snow_biomes,bn) ~= -1 then return true end
|
if table.indexof(snow_biomes,bn) ~= -1 then return true end
|
||||||
|
@ -143,3 +144,34 @@ if mcl_weather.reg_weathers.snow == nil then
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
minetest.register_abm({
|
||||||
|
label = "Snow piles up",
|
||||||
|
nodenames = {"group:opaque","group:leaves","group:snow_cover"},
|
||||||
|
neighbors = {"air"},
|
||||||
|
interval = 27,
|
||||||
|
chance = 33,
|
||||||
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
|
if node.name == "mcl_core:snowblock" then return end
|
||||||
|
local above = vector.offset(pos,0,1,0)
|
||||||
|
local above_node = minetest.get_node(above)
|
||||||
|
if above_node.name ~= "air" then return end
|
||||||
|
if (mcl_weather.state == "rain" or mcl_weather.state == "thunder" or mcl_weather.state == "snow") and mcl_weather.is_outdoor(pos) and mcl_weather.has_snow(pos) then
|
||||||
|
local nn = nil
|
||||||
|
if node.name:find("snow") then
|
||||||
|
local l = node.name:sub(-1)
|
||||||
|
l = tonumber(l)
|
||||||
|
if node.name == "mcl_core:snow" then
|
||||||
|
nn={name = "mcl_core:snow_2"}
|
||||||
|
elseif l and l < 7 then
|
||||||
|
nn={name="mcl_core:snow_"..tostring(math.min(8,l + 1))}
|
||||||
|
elseif l and l >= 7 then
|
||||||
|
nn={name = "mcl_core:snowblock"}
|
||||||
|
end
|
||||||
|
if nn then minetest.set_node(pos,nn) end
|
||||||
|
else
|
||||||
|
minetest.set_node(above,{name = "mcl_core:snow"})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
Loading…
Reference in New Issue