diff --git a/mods/lzr_laser/tools.lua b/mods/lzr_laser/tools.lua new file mode 100644 index 0000000..7d32e0d --- /dev/null +++ b/mods/lzr_laser/tools.lua @@ -0,0 +1,27 @@ +local S = minetest.get_translator("lzr_laser") + +minetest.register_tool("lzr_laser:emit_toggler", { + description = S("Emitter Toggler"), + inventory_image = "lzr_laser_emitter_on.png", + groups = { cheat_item = 1 }, + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + local pos = pointed_thing.under + local node = minetest.get_node(pos) + local is_emit = minetest.get_item_group(node.name, "emitter") > 0 + if not is_emit then + return itemstack + end + local def = minetest.registered_nodes[node.name] + if def._lzr_inactive then + minetest.swap_node(pos, {name=def._lzr_inactive, param2=node.param2}) + elseif def._lzr_active then + minetest.swap_node(pos, {name=def._lzr_active, param2=node.param2}) + lzr_laser.emit_laser(pos) + end + return itemstack + end, +}) +