35 lines
1 KiB
Lua
35 lines
1 KiB
Lua
-- register extra flavours of a base nodedef
|
|
walkover = {}
|
|
walkover.registered_globals = {}
|
|
|
|
function walkover.register_global(func)
|
|
table.insert(walkover.registered_globals, func)
|
|
end
|
|
|
|
local timer = 0
|
|
minetest.register_globalstep(function(dtime)
|
|
timer = timer + dtime;
|
|
if timer >= 0.3 then
|
|
for _,player in pairs(minetest.get_connected_players()) do
|
|
local pp = player:get_pos()
|
|
pp.y = math.ceil(pp.y)
|
|
local loc = vector.add(pp, {x=0,y=-1,z=0})
|
|
if loc ~= nil then
|
|
|
|
local nodeiamon = minetest.get_node(loc)
|
|
|
|
if nodeiamon ~= nil then
|
|
local def = minetest.registered_nodes[nodeiamon.name]
|
|
if def ~= nil and def.on_walk_over ~= nil then
|
|
def.on_walk_over(loc, nodeiamon, player)
|
|
end
|
|
for _, func in ipairs(walkover.registered_globals) do
|
|
func(loc, nodeiamon, player)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
timer = 0
|
|
end
|
|
end)
|