diff --git a/fluids.lua b/fluids.lua index 996352d..98ccfbb 100644 --- a/fluids.lua +++ b/fluids.lua @@ -269,7 +269,7 @@ local function register_fluid(modname, name, info) -- flowing minetest.register_abm({ nodenames = {fname}, - neighbors = {"group:"..gname, "air"}, + neighbors = {"group:"..gname, "air", "group:bitumen_vapor"}, interval = info.flow_interval or 1, chance = info.flow_chance or 1, action = function(pos) @@ -284,6 +284,11 @@ local function register_fluid(modname, name, info) minetest.set_node_level(below, mylevel) minetest.set_node(pos, {name="air"}) return + elseif (minetest.registered_nodes[nbelow].groups.bitumen_vapor or 0) > 0 then + -- fall through vapors + minetest.set_node(below, {name=fname}) + minetest.set_node_level(below, mylevel) + minetest.set_node(pos, {name=nbelow}) elseif nbelow == fname then local blevel = minetest.get_node_level(below) if blevel < 64 then @@ -321,7 +326,7 @@ local function register_fluid(modname, name, info) local air_nodes = minetest.find_nodes_in_area( {x=pos.x - 1, y=pos.y - 1, z=pos.z - 1}, {x=pos.x + 1, y=pos.y, z=pos.z + 1}, - "air" + {"air", "group:bitumen_vapor"} ) diff --git a/vapors.lua b/vapors.lua index dee0d1f..a6a41ad 100644 --- a/vapors.lua +++ b/vapors.lua @@ -13,7 +13,7 @@ minetest.register_node("bitumen:vapor_2", { -- post_effect_color = info.post_effect_color, -- tiles = { "default_copper_block.png" }, - groups = { not_in_creative_inventory = 1 }, + groups = { not_in_creative_inventory = 1, bitumen_vapor = 1 }, }) @@ -28,7 +28,7 @@ minetest.register_node("bitumen:vapor_1", { paramtype = "light", sunlight_propagates = true, -- tiles = { "default_steel_block.png" }, - groups = { not_in_creative_inventory = 1 }, + groups = { not_in_creative_inventory = 1, bitumen_vapor = 1 }, }) @@ -57,6 +57,7 @@ minetest.register_abm({ ]] + -- move around randomly minetest.register_abm({ nodenames = {"bitumen:vapor_2", "bitumen:vapor_1"}, @@ -91,7 +92,7 @@ minetest.register_abm({ ) if #air_nodes > 0 then - off = math.random(#air_nodes) + local off = math.random(#air_nodes) minetest.set_node(pos, {name="air"}) minetest.set_node(air_nodes[off], {name=name})