1 local minetest,math,vector,ipairs = minetest,math,vector,ipairs
5 minetest.register_on_joinplayer(function(player)
6 name = player:get_player_name()
11 minetest.register_on_leaveplayer(function(player)
12 name = player:get_player_name()
16 --The item collection magnet
24 local function magnet(player)
25 --don't magnetize to dead players
26 name = player:get_player_name()
27 if player:get_hp() > 0 then
28 pos = player:get_pos()
29 inv = player:get_inventory()
30 if tick == true and pool[name] > 0 then
31 minetest.sound_play("pickup", {
32 to_player = player:get_player_name(),
34 pitch = math.random(60,100)/100
36 if pool[name] > 6 then
39 pool[name] = pool[name] - 1
43 for _,object in ipairs(minetest.get_objects_inside_radius({x=pos.x,y=pos.y+0.5,z=pos.z}, 2)) do
44 if not object:is_player() then
45 entity = object:get_luaentity()
46 if entity.name == "__builtin:item" and entity.collectable == true and object:get_luaentity().collected == false then
47 pos2 = object:get_pos()
48 diff = vector.subtract(pos2,pos).y
49 if diff >= 0 and inv:room_for_item("main", entity.itemstring) then
50 pool[name] = pool[name] + 1
51 inv:add_item("main", entity.itemstring)
52 entity.collector = player:get_player_name()
53 entity.collected = true
56 elseif not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "experience:orb" then
57 entity.collector = player:get_player_name()
58 entity.collected = true
68 minetest.register_globalstep(function(dtime)
70 for _,player in ipairs(minetest.get_connected_players()) do