fluids should fall through vapors

master
Izzy 2019-04-13 00:19:34 -06:00
parent 97b20b3f02
commit b1e28e734c
2 changed files with 11 additions and 5 deletions

View File

@ -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"}
)

View File

@ -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})