]> git.lizzy.rs Git - Crafter.git/blob - mods/itemhandling/magnet.lua
Add player node suffocation
[Crafter.git] / mods / itemhandling / magnet.lua
1 --The item collection magnet
2 --Item collection
3 minetest.register_globalstep(function(dtime)
4         --collection
5         for _,player in ipairs(minetest.get_connected_players()) do
6                 --don't magnetize to dead players
7                 if player:get_hp() > 0 then
8                         local pos = player:getpos()
9                         local inv = player:get_inventory()
10                         --radial detection
11                         for _,object in ipairs(minetest.get_objects_inside_radius({x=pos.x,y=pos.y+0.5,z=pos.z}, 2)) do
12                                 if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "__builtin:item" then
13                                         local pos2 = object:getpos()
14                                         local diff = vector.subtract(pos2,pos).y
15                                         if diff >= 0 and inv and inv:room_for_item("main", ItemStack(object:get_luaentity().itemstring)) then
16                                                 if object:get_luaentity().collectable == true and object:get_luaentity().collected == false then
17                                                         minetest.sound_play("pickup", {
18                                                                 to_player = player,
19                                                                 gain = 0.4,
20                                                                 pitch = math.random(60,100)/100
21                                                         })
22                                                         inv:add_item("main", ItemStack(object:get_luaentity().itemstring))
23                                                         object:get_luaentity().collector = player:get_player_name()
24                                                         object:get_luaentity().collected = true
25                                                          -- print("Set flag at item: "..dump(object:getpos()))
26                                                         --object:moveto({x=pos.x,y=pos.y+eye_height,z=pos.z,continuous=true})
27                                                         
28                                                 end
29                                         end
30                                 end
31                         end
32                 end
33         end
34 end)