Improved portal detection, using the already existing collision detection logic instead of abms
parent
6b5cbd4939
commit
234cac868e
|
@ -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
|
||||
|
|
|
@ -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
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue