123456789101112131415161718192021222324252627282930313233343536373839 |
- function mesecon:swap_node(pos, name)
- local node = minetest.env:get_node(pos)
- local data = minetest.env:get_meta(pos):to_table()
- node.name = name
- minetest.env:add_node(pos, node)
- minetest.env:get_meta(pos):from_table(data)
- end
- function mesecon:move_node(pos, newpos)
- local node = minetest.env:get_node(pos)
- local meta = minetest.env:get_meta(pos):to_table()
- minetest.env:remove_node(pos)
- minetest.env:add_node(newpos, node)
- minetest.env:get_meta(pos):from_table(meta)
- end
- function mesecon:addPosRule(p, r)
- return {x = p.x + r.x, y = p.y + r.y, z = p.z + r.z}
- end
- function mesecon:cmpPos(p1, p2)
- return (p1.x == p2.x and p1.y == p2.y and p1.z == p2.z)
- end
- function mesecon:tablecopy(table) -- deep table copy
- local newtable = {}
- for idx, item in pairs(table) do
- if type(item) == "table" then
- newtable[idx] = mesecon:tablecopy(item)
- else
- newtable[idx] = item
- end
- end
- return newtable
- end
|