Merge pull request #1 from HybridDog/item_vel

setvelocity works better than moveto to make the items pop out
master
Don 2015-11-08 06:07:08 -08:00
commit 2773c87250
1 changed files with 19 additions and 15 deletions

View File

@ -1,5 +1,5 @@
--To add or delete items modify the lines below. --To add or delete items modify the lines below.
--Add or delete local item# --Add or delete local item#
--For each local item# add or delete the minetest.spawn_item in the next section. --For each local item# add or delete the minetest.spawn_item in the next section.
local item1 = "default:diamond 3" local item1 = "default:diamond 3"
@ -8,30 +8,34 @@ local item3 = "default:sand 5"
local item4 = "default:pick_steel" local item4 = "default:pick_steel"
local item5 = "default:mese_crystal 3" local item5 = "default:mese_crystal 3"
local item_spawn = function(pos, node, player, itemstack, pointed_thing) local item_spawn = function(pos, node)
minetest.add_node(pos, {name="myitemchest:chest_open_storage", param2=node.param2}) pos.y = pos.y-0.3
minetest.add_node({x=pos.x,y=pos.y+1,z=pos.z}, {name="myitemchest:chest_formspec", param2=node.param2}) local objs = {
minetest.spawn_item(pos, item1) minetest.spawn_item(pos, item1),
minetest.spawn_item(pos, item2) minetest.spawn_item(pos, item2),
minetest.spawn_item(pos, item3) minetest.spawn_item(pos, item3),
minetest.spawn_item(pos, item4) minetest.spawn_item(pos, item4),
minetest.spawn_item(pos, item5) minetest.spawn_item(pos, item5)
local objs = minetest.get_objects_inside_radius(pos, 0.5) }
for k, objects in pairs(objs) do pos.y = pos.y+0.3
objects:moveto({x=pos.x,y=pos.y+1,z=pos.z}) minetest.add_node(pos, {name="myitemchest:chest_open_storage", param2=node.param2})
end minetest.add_node({x=pos.x,y=pos.y+1,z=pos.z}, {name="myitemchest:chest_formspec", param2=node.param2})
--pos.y = pos.y-0.5
for _,object in pairs(objs) do
object:setvelocity({x=0, y=4.5, z=0})
end end
end
local check_air = function(itemstack, placer, pointed_thing) local check_air = function(itemstack, placer, pointed_thing)
local pos = pointed_thing.above local pos = pointed_thing.above
local nodea = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z}) local nodea = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z})
if nodea.name ~= "air" then if nodea.name ~= "air" then
minetest.chat_send_player( placer:get_player_name(), "Need room above chest" ) minetest.chat_send_player( placer:get_player_name(), "Need room above chest" )
return return
end end
return minetest.item_place(itemstack, placer, pointed_thing) return minetest.item_place(itemstack, placer, pointed_thing)
end end
local dig_it = function(pos, node, digger) local dig_it = function(pos, node, digger)
local meta = minetest.get_meta({x=pos.x,y=pos.y+1,z=pos.z}); local meta = minetest.get_meta({x=pos.x,y=pos.y+1,z=pos.z});
local inv = meta:get_inventory() local inv = meta:get_inventory()