mirror of
https://github.com/luanti-org/minetest_game.git
synced 2025-05-21 06:43:17 -04:00
Merge bc8263fdf3
into 4c0c7ae146
This commit is contained in:
commit
04d6449a70
4 changed files with 84 additions and 27 deletions
|
@ -136,6 +136,7 @@ minetest.register_abm({
|
||||||
interval = 10,
|
interval = 10,
|
||||||
chance = 50,
|
chance = 50,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
|
if weather and minetest.get_heat(pos) < 5 then return end
|
||||||
local is_soil = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name].groups.soil
|
local is_soil = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name].groups.soil
|
||||||
if is_soil == nil or is_soil == 0 then return end
|
if is_soil == nil or is_soil == 0 then return end
|
||||||
print("A sapling grows into a tree at "..minetest.pos_to_string(pos))
|
print("A sapling grows into a tree at "..minetest.pos_to_string(pos))
|
||||||
|
@ -155,6 +156,7 @@ minetest.register_abm({
|
||||||
interval = 10,
|
interval = 10,
|
||||||
chance = 50,
|
chance = 50,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
|
if weather and minetest.get_heat(pos) < 15 then return end
|
||||||
local is_soil = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name].groups.soil
|
local is_soil = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name].groups.soil
|
||||||
if is_soil == nil or is_soil == 0 then return end
|
if is_soil == nil or is_soil == 0 then return end
|
||||||
print("A jungle sapling grows into a tree at "..minetest.pos_to_string(pos))
|
print("A jungle sapling grows into a tree at "..minetest.pos_to_string(pos))
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
-- 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"},
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
groups = {cracky=3, stone=1},
|
groups = {cracky=3, stone=1, melt=3000},
|
||||||
|
freezemelt = "default:lava_source",
|
||||||
drop = 'default:cobble',
|
drop = 'default:cobble',
|
||||||
legacy_mineral = true,
|
legacy_mineral = true,
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
@ -14,7 +17,8 @@ minetest.register_node("default:desert_stone", {
|
||||||
description = "Desert Stone",
|
description = "Desert Stone",
|
||||||
tiles = {"default_desert_stone.png"},
|
tiles = {"default_desert_stone.png"},
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
groups = {cracky=3, stone=1},
|
groups = {cracky=3, stone=1, melt=3000},
|
||||||
|
freezemelt = "default:lava_source",
|
||||||
drop = 'default:desert_stone',
|
drop = 'default:desert_stone',
|
||||||
legacy_mineral = true,
|
legacy_mineral = true,
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
@ -125,7 +129,8 @@ minetest.register_node("default:dirt", {
|
||||||
description = "Dirt",
|
description = "Dirt",
|
||||||
tiles = {"default_dirt.png"},
|
tiles = {"default_dirt.png"},
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
groups = {crumbly=3,soil=1},
|
groups = {crumbly=3,soil=1,melt=800},
|
||||||
|
freezemelt = "default:sand",
|
||||||
sounds = default.node_sound_dirt_defaults(),
|
sounds = default.node_sound_dirt_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -137,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 (name == "ignore" or not nodedef) then return end
|
||||||
and nodedef.liquidtype == "none"
|
if ( not ((nodedef.sunlight_propagates or nodedef.paramtype == "light") and nodedef.liquidtype == "none")) then return end
|
||||||
and (minetest.get_node_light(above) or 0) >= 13 then
|
if (weather and minetest.get_heat(pos) < -15) or name == "default:snow" or
|
||||||
if name == "default:snow" or name == "default:snowblock" then
|
name == "default:snowblock" or name == "default:ice"
|
||||||
|
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
|
||||||
|
(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({
|
||||||
|
@ -157,9 +164,30 @@ 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" or not nodedef) then return end
|
||||||
and not ((nodedef.sunlight_propagates or nodedef.paramtype == "light")
|
if ( 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" or not nodedef) then return end
|
||||||
|
if (not ((nodedef.sunlight_propagates or nodedef.paramtype == "light")
|
||||||
|
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
|
||||||
|
@ -376,7 +404,8 @@ minetest.register_node("default:glass", {
|
||||||
inventory_image = minetest.inventorycube("default_glass.png"),
|
inventory_image = minetest.inventorycube("default_glass.png"),
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
groups = {cracky=3,oddly_breakable_by_hand=3},
|
groups = {cracky=3,oddly_breakable_by_hand=3, melt=1500},
|
||||||
|
freezemelt = "default:obsidian_glass",
|
||||||
sounds = default.node_sound_glass_defaults(),
|
sounds = default.node_sound_glass_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -478,7 +507,7 @@ minetest.register_node("default:water_flowing", {
|
||||||
liquid_viscosity = WATER_VISC,
|
liquid_viscosity = WATER_VISC,
|
||||||
freezemelt = "default:snow",
|
freezemelt = "default:snow",
|
||||||
post_effect_color = {a=64, r=100, g=100, b=200},
|
post_effect_color = {a=64, r=100, g=100, b=200},
|
||||||
groups = {water=3, liquid=3, puts_out_fire=1, not_in_creative_inventory=1, freezes=1, melt_around=1},
|
groups = {water=3, liquid=3, puts_out_fire=1, not_in_creative_inventory=1, freeze=-5},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("default:water_source", {
|
minetest.register_node("default:water_source", {
|
||||||
|
@ -510,7 +539,7 @@ minetest.register_node("default:water_source", {
|
||||||
liquid_viscosity = WATER_VISC,
|
liquid_viscosity = WATER_VISC,
|
||||||
freezemelt = "default:ice",
|
freezemelt = "default:ice",
|
||||||
post_effect_color = {a=64, r=100, g=100, b=200},
|
post_effect_color = {a=64, r=100, g=100, b=200},
|
||||||
groups = {water=3, liquid=3, puts_out_fire=1, freezes=1},
|
groups = {water=3, liquid=3, puts_out_fire=1, freeze=-1},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("default:lava_flowing", {
|
minetest.register_node("default:lava_flowing", {
|
||||||
|
@ -546,7 +575,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=3, 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", {
|
||||||
|
@ -579,7 +608,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=3, igniter=1},
|
groups = {lava=3, liquid=2, hot=1200, igniter=1},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("default:torch", {
|
minetest.register_node("default:torch", {
|
||||||
|
@ -604,7 +633,7 @@ minetest.register_node("default:torch", {
|
||||||
wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5+0.6, 0.1},
|
wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5+0.6, 0.1},
|
||||||
wall_side = {-0.5, -0.3, -0.1, -0.5+0.3, 0.3, 0.1},
|
wall_side = {-0.5, -0.3, -0.1, -0.5+0.3, 0.3, 0.1},
|
||||||
},
|
},
|
||||||
groups = {choppy=2,dig_immediate=3,flammable=1,attached_node=1,hot=2},
|
groups = {choppy=2,dig_immediate=3,flammable=1,attached_node=1,hot=150},
|
||||||
legacy_wallmounted = true,
|
legacy_wallmounted = true,
|
||||||
sounds = default.node_sound_defaults(),
|
sounds = default.node_sound_defaults(),
|
||||||
})
|
})
|
||||||
|
@ -879,7 +908,7 @@ minetest.register_node("default:furnace_active", {
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
light_source = 8,
|
light_source = 8,
|
||||||
drop = "default:furnace",
|
drop = "default:furnace",
|
||||||
groups = {cracky=2, not_in_creative_inventory=1,hot=1},
|
groups = {cracky=2, not_in_creative_inventory=1,hot=60},
|
||||||
legacy_facedir_simple = true,
|
legacy_facedir_simple = true,
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
on_construct = function(pos)
|
on_construct = function(pos)
|
||||||
|
@ -1052,7 +1081,8 @@ minetest.register_node("default:cobble", {
|
||||||
description = "Cobblestone",
|
description = "Cobblestone",
|
||||||
tiles = {"default_cobble.png"},
|
tiles = {"default_cobble.png"},
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
groups = {cracky=3, stone=2},
|
freezemelt = "default:lava_source",
|
||||||
|
groups = {cracky=3, stone=2, melt=2900},
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1136,7 +1166,8 @@ minetest.register_node("default:obsidian", {
|
||||||
tiles = {"default_obsidian.png"},
|
tiles = {"default_obsidian.png"},
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
groups = {cracky=1,level=2},
|
groups = {cracky=1,level=2, melt=5000},
|
||||||
|
freezemelt = "default:lava_source",
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("default:nyancat", {
|
minetest.register_node("default:nyancat", {
|
||||||
|
@ -1321,7 +1352,7 @@ minetest.register_node("default:ice", {
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
freezemelt = "default:water_source",
|
freezemelt = "default:water_source",
|
||||||
groups = {cracky=3, melts=1},
|
groups = {cracky=3, melt=3},
|
||||||
sounds = default.node_sound_glass_defaults(),
|
sounds = default.node_sound_glass_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1342,7 +1373,7 @@ minetest.register_node("default:snow", {
|
||||||
{-0.5, -0.5, -0.5, 0.5, -0.5+2/16, 0.5},
|
{-0.5, -0.5, -0.5, 0.5, -0.5+2/16, 0.5},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
groups = {crumbly=3,falling_node=1, melts=1, float=1},
|
groups = {crumbly=3,falling_node=1, melt=1, float=1},
|
||||||
sounds = default.node_sound_dirt_defaults({
|
sounds = default.node_sound_dirt_defaults({
|
||||||
footstep = {name="default_snow_footstep", gain=0.25},
|
footstep = {name="default_snow_footstep", gain=0.25},
|
||||||
dug = {name="default_snow_footstep", gain=0.75},
|
dug = {name="default_snow_footstep", gain=0.75},
|
||||||
|
@ -1361,7 +1392,7 @@ minetest.register_node("default:snowblock", {
|
||||||
tiles = {"default_snow.png"},
|
tiles = {"default_snow.png"},
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
freezemelt = "default:water_source",
|
freezemelt = "default:water_source",
|
||||||
groups = {crumbly=3, melts=1},
|
groups = {crumbly=3, melt=2},
|
||||||
sounds = default.node_sound_dirt_defaults({
|
sounds = default.node_sound_dirt_defaults({
|
||||||
footstep = {name="default_snow_footstep", gain=0.25},
|
footstep = {name="default_snow_footstep", gain=0.25},
|
||||||
dug = {name="default_snow_footstep", gain=0.75},
|
dug = {name="default_snow_footstep", gain=0.75},
|
||||||
|
|
|
@ -9,7 +9,7 @@ minetest.register_node("fire:basic_flame", {
|
||||||
}},
|
}},
|
||||||
inventory_image = "fire_basic_flame.png",
|
inventory_image = "fire_basic_flame.png",
|
||||||
light_source = 14,
|
light_source = 14,
|
||||||
groups = {igniter=2,dig_immediate=3,hot=3},
|
groups = {igniter=2,dig_immediate=3,hot=200},
|
||||||
drop = '',
|
drop = '',
|
||||||
walkable = false,
|
walkable = false,
|
||||||
buildable_to = true,
|
buildable_to = true,
|
||||||
|
@ -190,3 +190,23 @@ minetest.register_abm({
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
-- too hot
|
||||||
|
if minetest.setting_getbool("weather") then
|
||||||
|
minetest.register_abm({
|
||||||
|
nodenames = {"group:flammable"},
|
||||||
|
interval = 5,
|
||||||
|
chance = 5,
|
||||||
|
action = function(p0, node, _, _)
|
||||||
|
-- If there is water or stuff like that around flame, don't ignite
|
||||||
|
if minetest.get_heat(p0) < 500 then return end
|
||||||
|
if fire.flame_should_extinguish(p0) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local p = fire.find_pos_for_flame_around(p0)
|
||||||
|
if p then
|
||||||
|
minetest.set_node(p, {name="fire:basic_flame"})
|
||||||
|
fire.on_flame_add_at(p)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
|
@ -140,6 +140,10 @@ minetest.register_abm({
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if minetest.setting_getbool("weather") and minetest.get_heat(pos) < 5 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
local pos0 = {x=pos.x-4,y=pos.y-4,z=pos.z-4}
|
local pos0 = {x=pos.x-4,y=pos.y-4,z=pos.z-4}
|
||||||
local pos1 = {x=pos.x+4,y=pos.y+4,z=pos.z+4}
|
local pos1 = {x=pos.x+4,y=pos.y+4,z=pos.z+4}
|
||||||
if #minetest.find_nodes_in_area(pos0, pos1, "group:flora_block") > 0 then
|
if #minetest.find_nodes_in_area(pos0, pos1, "group:flora_block") > 0 then
|
||||||
|
|
Loading…
Add table
Reference in a new issue