| | |
| | | minetest.swap_node = minetest.swap_node or function(pos, node) |
| | | local oldmeta = minetest.get_meta(pos):to_table() |
| | | minetest.set_node(pos, node) |
| | | minetest.get_meta(pos):from_table(oldmeta) |
| | | end |
| | | |
| | | -- Only changes name, keeps other params |
| | | function technic.swap_node(pos, name) |
| | | local node = minetest.get_node(pos) |
| | |
| | | stack:set_metadata(minetest.serialize(meta)) |
| | | return stack |
| | | end |
| | | |
| | | local function resolve_name(function_name) |
| | | local a = _G |
| | | for key in string.gmatch(function_name, "([^%.]+)(%.?)") do |
| | | if a[key] then |
| | | a = a[key] |
| | | else |
| | | return nil |
| | | end |
| | | end |
| | | return a |
| | | end |
| | | |
| | | function technic.function_exists(function_name) |
| | | return type(resolve_name(function_name)) == 'function' |
| | | end |
| | | |