Improve code using Linuxdirk's fix

master^2
LoneWolfHT 2019-06-13 08:11:53 -07:00
parent 3f5f33b81f
commit a2e6957370
1 changed files with 17 additions and 25 deletions

View File

@ -2,7 +2,7 @@ minetest.register_craftitem("superpick:setter", {
description = "Super Setter", description = "Super Setter",
inventory_image = "default_tool_steelpick.png^default_obsidian_shard.png", inventory_image = "default_tool_steelpick.png^default_obsidian_shard.png",
groups = {not_in_creative_inventory = 1}, groups = {not_in_creative_inventory = 1},
on_use = function(itemstack, user, pointed_thing) on_use = function(_, user, pointed_thing)
if not minetest.check_player_privs(user, "superpick") then if not minetest.check_player_privs(user, "superpick") then
return {name = "default:pick_steel"} return {name = "default:pick_steel"}
end end
@ -47,7 +47,7 @@ minetest.register_tool("superpick:pick", {
minetest.register_privilege("superpick", {description = "Ability to wield the mighty admin pickaxe!"}) minetest.register_privilege("superpick", {description = "Ability to wield the mighty admin pickaxe!"})
local function kill_node(pos, node, puncher) local function kill_node(pos, _, puncher)
if puncher:get_wielded_item():get_name() == "superpick:pick" then if puncher:get_wielded_item():get_name() == "superpick:pick" then
if not minetest.check_player_privs( if not minetest.check_player_privs(
puncher:get_player_name(), {superpick = true}) then puncher:get_player_name(), {superpick = true}) then
@ -73,28 +73,20 @@ local function kill_node(pos, node, puncher)
end end
end end
minetest.register_on_punchnode(function(pos, node, puncher) minetest.register_on_mods_loaded(function()
kill_node(pos, node, puncher) for node in pairs(minetest.registered_nodes) do
end) local def = minetest.registered_nodes[node]
for i in pairs(def) do
minetest.after(0.01, function () if i == "on_punch" then
minetest.after(0.01, function () local rem = def.on_punch
for node in pairs(minetest.registered_nodes) do local function new_on_punch(pos, new_node, puncher, pointed_thing)
local def = minetest.registered_nodes[node] kill_node(pos, new_node, puncher)
for i in pairs(def) do return rem(pos, new_node, puncher, pointed_thing)
if i == "on_punch" then end
minetest.override_item(node, {
local rem = def.on_punch on_punch = new_on_punch
local function new_on_punch(pos, node, puncher, pointed_thing) })
kill_node(pos, node, puncher) end
return rem(pos, node, puncher, pointed_thing)
end
minetest.override_item(node, {
on_punch = new_on_punch
})
end end
end end
end end)
end)
end)