From 065685eab1872c7c5bb9d2b2c790292c5feae0b4 Mon Sep 17 00:00:00 2001 From: PilzAdam Date: Sat, 1 Sep 2012 03:50:13 +0200 Subject: [PATCH] Complete rewrite --- init_old.lua | 146 --------------------------------------------------- 1 file changed, 146 deletions(-) delete mode 100644 init_old.lua diff --git a/init_old.lua b/init_old.lua deleted file mode 100644 index c5163c1..0000000 --- a/init_old.lua +++ /dev/null @@ -1,146 +0,0 @@ -function item_drop(pos, oldnode, digger) - local anzahl = 1 - if oldnode.name.items ~= nil then - local drops = {} - local max_items = oldnode.name.max_items - for i,item in ipairs(oldnode.name.items) do - local rarity - if item.rarity == nil then - rarity = 1 - else - rarity = item.rarity - end - if math.random(1, rarity) == 1 then - table.insert(drops, item.items[1]) - end - if #drops == max_items then - for j,it in ipairs(drops) do - item_drop(pos, {name=it}, digger) - end - return - end - end - return - else - if string.find(oldnode.name, " ") ~= nil then - oldnode.name = oldnode.name:gsub('"',""):gsub("craft ",""):gsub("item ",""):gsub("node ","") - anzahl = string.sub(oldnode.name, string.find(oldnode.name, " ")+1, string.len(oldnode.name)) - oldnode.name = string.sub(oldnode.name, 1, string.find(oldnode.name, " ")-1) - end - end - - if oldnode.name == "" then - return - end - - for i=1,anzahl do - if digger:get_inventory():room_for_item("main", ItemStack(oldnode.name)) then - digger:get_inventory():remove_item("main", ItemStack(oldnode.name)) - end - local item = minetest.env:add_item(pos, oldnode) - if item ~= nil then - item:get_luaentity().collect = true - local x = math.random(1, 5) - if math.random(1,2) == 1 then - x = -x - end - local z = math.random(1, 5) - if math.random(1,2) == 1 then - z = -z - end - item:setvelocity({x=1/x, y=item:getvelocity().y, z=1/z}) - end - end -end - -local item_timer = {} - -minetest.register_globalstep(function(dtime) - for i,player in ipairs(minetest.get_connected_players()) do - local pos = player:getpos() - pos.y = pos.y+0.5 - local items = minetest.env:get_objects_inside_radius(pos,1) - for j,item in ipairs(items) do - if not item:is_player() and item:get_luaentity().itemstring ~= nil then - if item:get_luaentity().itemstring ~= "" and player:get_inventory():room_for_item("main", ItemStack(item:get_luaentity().itemstring)) and item:get_luaentity().collect then - player:get_inventory():add_item("main", ItemStack(item:get_luaentity().itemstring)) - minetest.sound_play("item_drop_pickup", { - to_player = player, - }) - item:remove() - item:get_luaentity().itemstring = "" - end - end - end - - items = minetest.env:get_objects_inside_radius(pos, 2) - for j,item in ipairs(items) do - if not item:is_player() and item:get_luaentity().itemstring ~= nil then - if player:get_inventory():room_for_item("main", ItemStack(item:get_luaentity().itemstring)) and item:get_luaentity().collect then - local p = player:getpos() - p.y = p.y+0.5 - local i = item:getpos() - local move = {x=(p.x-i.x)*15, y=(p.y-i.y)*15, z=(p.z-i.z)*15} - item:setacceleration(move) - end - - if item:get_luaentity().collect == nil and item:get_luaentity().itemstring ~= "" then - if item:get_luaentity().timer == nil then - item:get_luaentity().timer = 0 - table.insert(item_timer, item) - end - end - end - end - end - - for i,item in ipairs(item_timer) do - if item:get_luaentity() == nil then - table.remove(item_timer, i) - else - item:get_luaentity().timer = item:get_luaentity().timer + dtime - if item:get_luaentity().timer > 1 then - item:get_luaentity().collect = true - table.remove(item_timer, i) - end - end - end -end) - -minetest.after(0, function() - for name,node in pairs(minetest.registered_nodes) do - local func - if node.drop == nil then - if node.after_dig_node == nil then - func = function(pos, oldnode, oldmetadata, digger) - item_drop(pos, oldnode, digger) - end - else - func = function(pos, oldnode, oldmetadata, digger) - item_drop(pos, oldnode, digger) - end - end - else - if node.after_dig_node == nil then - func = function(pos, oldnode, oldmetadata, digger) - oldnode.name = node.drop - item_drop(pos, oldnode, digger) - end - else - func = function(pos, oldnode, oldmetadata, digger) - oldnode.name = node.drop - item_drop(pos, oldnode, digger) - end - end - end - - local new_node = { - after_dig_node = func, - } - for str,val in pairs(node) do - new_node[str] = val - end - minetest.register_node(":"..new_node.name, new_node) - end -end) -