Use ABM to propagate / remove the beam

This commit is contained in:
cora 2022-07-27 16:38:37 +02:00
parent 2f868afedb
commit bcfd664e9b
1 changed files with 24 additions and 1 deletions

View File

@ -46,6 +46,9 @@ minetest.register_node("mcl_beacons:beacon_beam",{
light_source = 15,
walkable = false,
pointable = false,
-- diggable = false,
floodable = false,
buildable_to = true,
groups = {not_in_creative_inventory=1},
_mcl_blast_resistance = 1200,
})
@ -289,8 +292,28 @@ function register_beaconfuel(itemstring)
table.insert(beacon_fuellist, itemstring)
end
local timer = 0
minetest.register_abm({
label = "Beacon beams propagation",
nodenames ={ "mcl_beacons:beacon_beam" },
neighbors = { "air" },
interval = 3,
chance = 1,
action = function(pos,node)
local p1 = vector.offset(pos,0,-1,0)
local p2 = vector.offset(pos,0,1,0)
local n1 = minetest.get_node(p1)
local n2 = minetest.get_node(p2)
if n1.name == "air" then
minetest.remove_node(pos)
return
elseif n2.name == "air" then
minetest.set_node(p2,node)
end
end
})
local timer = 0
minetest.register_globalstep(function(dtime)
timer = timer + dtime
if timer >= 3 then