Improved portal detection, using the already existing collision detection logic instead of abms

master
Fernando Carmona Varo 2015-11-07 09:57:35 +01:00
parent 6b5cbd4939
commit 234cac868e
2 changed files with 6 additions and 28 deletions

View File

@ -268,6 +268,12 @@ local function on_player_gamestep(player, gameid)
elseif node.name == "mario:mushroom" then
minetest.remove_node(pos)
mario.on_player_got_mushroom(player, 15)
elseif node.name == "mario:portal_right" then
player_pos.x = player_pos.x -31
player:setpos(player_pos)
elseif node.name == "mario:portal_left" then
player_pos.x = player_pos.x +31
player:setpos(player_pos)
end
end
end

View File

@ -46,31 +46,3 @@ minetest.register_abm({
end
end
})
minetest.register_abm({
nodenames = {"mario:portal_left"},
interval = 0.5,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local objs = minetest.env:get_objects_inside_radius(pos, 2)
for k, player in pairs(objs) do
if player:get_player_name() then
player:setpos({x=pos.x+31,y=pos.y+0.5,z=pos.z})
end
end
end
})
minetest.register_abm({
nodenames = {"mario:portal_right"},
interval = 0.5,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local objs = minetest.env:get_objects_inside_radius(pos, 2)
for k, player in pairs(objs) do
if player:get_player_name() then
player:setpos({x=pos.x-31,y=pos.y+0.5,z=pos.z})
end
end
end
})