| | |
| | | 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) |
| | |
| | | return stack |
| | | end |
| | | |
| | | -------------------------------------------------------------------------------- |
| | | local function resolve_name(function_name) |
| | | local a = _G |
| | | for key in string.gmatch(function_name, "([^%.]+)(%.?)") do |
| | |
| | | function technic.function_exists(function_name) |
| | | return type(resolve_name(function_name)) == 'function' |
| | | end |
| | | -------------------------------------------------------------------------------- |
| | | |
| | | -- if the node is loaded, returns it. If it isn't loaded, load it and return nil. |
| | | function technic.get_or_load_node(pos) |
| | | local node_or_nil = minetest.get_node_or_nil(pos) |
| | | if node_or_nil then return node_or_nil end |
| | | local vm = VoxelManip() |
| | | local MinEdge, MaxEdge = vm:read_from_map(pos, pos) |
| | | return nil |
| | | end |