Some mode developers have shown an interest in having an on_walk_over event. This is useful for pressure-plates and the like.
See this issue - https://github.com/minetest/minetest/issues/247
I have implemented a server_side version in lua using globalstep which people might find useful. Of course this would better implemented via a client-based "on walk over", but it is sufficient for my needs now.
Latest downloadable version now as a WIP mod at viewtopic.php?f=9&t=15991&p=241701#p241701
Example Usage:
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
- Code: Select all
minetest.register_node("somemod:someblock", {
description = key,
tiles = {"somemod_someblock.png"},
groups = {cracky=1},
on_walk_over = function(pos, node, player)
minetest.chat_send_player(player, "Hey! Watch it!")
end
})
Here's the code:
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
- Code: Select all
local timer = 0
minetest.register_globalstep(function(dtime)
timer = timer + dtime;
if timer >= 1 then
for _,player in pairs(minetest.get_connected_players()) do
local loc = vector.add(player:getpos(),{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
end
end
end
timer = 0
end
end)