From cc76a79a7d6d99ca7f290698cb52e1d08fe7eba6 Mon Sep 17 00:00:00 2001 From: Nils Dagsson Moskopp Date: Sat, 4 Sep 2021 02:36:49 +0200 Subject: [PATCH] work around bug in lava cooling (WIP) --- mods/ITEMS/mcl_core/nodes_liquid.lua | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/mods/ITEMS/mcl_core/nodes_liquid.lua b/mods/ITEMS/mcl_core/nodes_liquid.lua index f12a8de4..f853c07b 100644 --- a/mods/ITEMS/mcl_core/nodes_liquid.lua +++ b/mods/ITEMS/mcl_core/nodes_liquid.lua @@ -108,6 +108,20 @@ S("• When water is directly below lava, the water turns into stone."), _mcl_hardness = -1, }) +function cool_lava_next_to_water_flow(pos) + local node = minetest.get_node(pos) + if 1 ~= minetest.get_item_group(node.name, "lava") then + return + end + local lavatype = minetest.registered_nodes[node.name].liquidtype + if lavatype == "flowing" then + minetest.set_node(pos, {name="mcl_core:cobble"}) + elseif lavatype == "source" then + minetest.set_node(pos, {name="mcl_core:obsidian"}) + end + minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}, true) +end + function flow_water_downwards(pos, node, limit) if limit == 0 then return @@ -124,6 +138,15 @@ function flow_water_downwards(pos, node, limit) param2 = 15, } ) + local neighbours_pos = { + {x=pos.x+1, y=pos.y, z=pos.z}, + {x=pos.x-1, y=pos.y, z=pos.z}, + {x=pos.x, y=pos.y, z=pos.z+1}, + {x=pos.x, y=pos.y, z=pos.z-1}, + } + for _, neighbour_pos in ipairs(neighbours_pos) do + cool_lava_next_to_water_flow(neighbour_pos) + end local below_pos = {x=pos.x, y=pos.y-1, z=pos.z} local below_node = minetest.get_node(below_pos) minetest.after(