weather dirt

This commit is contained in:
proller 2013-11-03 03:48:15 +04:00
parent 40672e067c
commit 84224165b6

View file

@ -1,5 +1,7 @@
-- mods/default/nodes.lua -- mods/default/nodes.lua
local weather = minetest.setting_getbool("weather")
minetest.register_node("default:stone", { minetest.register_node("default:stone", {
description = "Stone", description = "Stone",
tiles = {"default_stone.png"}, tiles = {"default_stone.png"},
@ -140,16 +142,18 @@ minetest.register_abm({
local above = {x=pos.x, y=pos.y+1, z=pos.z} local above = {x=pos.x, y=pos.y+1, z=pos.z}
local name = minetest.get_node(above).name local name = minetest.get_node(above).name
local nodedef = minetest.registered_nodes[name] local nodedef = minetest.registered_nodes[name]
if nodedef and (nodedef.sunlight_propagates or nodedef.paramtype == "light") if (weather and minetest.get_heat(pos) < -15) or name == "default:snow" or
and nodedef.liquidtype == "none" name == "default:snowblock" or name == "default:ice"
and (minetest.get_node_light(above) or 0) >= 13 then then
if name == "default:snow" or name == "default:snowblock" then
minetest.set_node(pos, {name = "default:dirt_with_snow"}) minetest.set_node(pos, {name = "default:dirt_with_snow"})
else elseif (not weather or minetest.get_heat(pos) > 5) and
nodedef and (nodedef.sunlight_propagates or nodedef.paramtype == "light") and
nodedef.liquidtype == "none" and
(minetest.get_node_light(above) or 0) >= 13
then
minetest.set_node(pos, {name = "default:dirt_with_grass"}) minetest.set_node(pos, {name = "default:dirt_with_grass"})
end end
end end
end
}) })
minetest.register_abm({ minetest.register_abm({
@ -160,9 +164,28 @@ minetest.register_abm({
local above = {x=pos.x, y=pos.y+1, z=pos.z} local above = {x=pos.x, y=pos.y+1, z=pos.z}
local name = minetest.get_node(above).name local name = minetest.get_node(above).name
local nodedef = minetest.registered_nodes[name] local nodedef = minetest.registered_nodes[name]
if name ~= "ignore" and nodedef if (name ~= "ignore" and nodedef
and not ((nodedef.sunlight_propagates or nodedef.paramtype == "light") and not ((nodedef.sunlight_propagates or nodedef.paramtype == "light")
and nodedef.liquidtype == "none") then and nodedef.liquidtype == "none")) or (weather
and (minetest.get_heat(pos) < -5 or minetest.get_heat(pos) > 60))
or name == "default:snow" or name == "default:snowblock" or name == "default:ice"
then
minetest.set_node(pos, {name = "default:dirt"})
end
end
})
minetest.register_abm({
nodenames = {"default:dirt_with_snow"},
interval = 2,
chance = 200,
action = function(pos, node)
local above = {x=pos.x, y=pos.y+1, z=pos.z}
local name = minetest.get_node(above).name
local nodedef = minetest.registered_nodes[name]
if (name ~= "ignore" and nodedef and (nodedef.liquidtype ~= "none" or
(weather and minetest.get_heat(pos) > 3 and name ~= "default:snow" and name ~= "default:snowblock" and name ~= "default:ice")))
then
minetest.set_node(pos, {name = "default:dirt"}) minetest.set_node(pos, {name = "default:dirt"})
end end
end end
@ -732,7 +755,7 @@ minetest.register_node("default:lava_flowing", {
liquid_renewable = false, liquid_renewable = false,
damage_per_second = 4*2, damage_per_second = 4*2,
post_effect_color = {a=192, r=255, g=64, b=0}, post_effect_color = {a=192, r=255, g=64, b=0},
groups = {lava=3, liquid=2, hot=150, igniter=1, not_in_creative_inventory=1}, groups = {lava=3, liquid=2, hot=700, igniter=1, not_in_creative_inventory=1},
}) })
minetest.register_node("default:lava_source", { minetest.register_node("default:lava_source", {
@ -765,7 +788,7 @@ minetest.register_node("default:lava_source", {
liquid_renewable = false, liquid_renewable = false,
damage_per_second = 4*2, damage_per_second = 4*2,
post_effect_color = {a=192, r=255, g=64, b=0}, post_effect_color = {a=192, r=255, g=64, b=0},
groups = {lava=3, liquid=2, hot=200, igniter=1}, groups = {lava=3, liquid=2, hot=1200, igniter=1},
}) })
minetest.register_node("default:torch", { minetest.register_node("default:torch", {