mcl_compatibility = mcl_compatibility or {} mcl_vars = mcl_vars or {} local modname = minetest.get_current_modname() local modpath = minetest.get_modpath(modname) if not bit then bit = {} function bit.bxor(a, b) -- fake! mock! speedify for now! TODO: make proper xor bitwise return math.ceil(math.abs(math.floor(a/0.14) * b * 1.001 + b)) end end function math.round(x) if x >= 0 then return math.floor(x + 0.5) end return math.ceil(x - 0.5) end dofile(modpath .. "/vector.lua") local minetest_get_node = minetest.get_node mcl_compatibility.sort_nodes = function(nodes) if not nodes then return {} end for _, pos in pairs(nodes) do if not pos.x or not pos.y or not pos.z then return nodes end end local new_nodes = {} for _, pos in pairs(nodes) do local node = minetest_get_node(pos) local name = node.name if not new_nodes[name] then new_nodes[name] = { pos } else table.insert(new_nodes[name], pos) end end return new_nodes end local minetest_find_nodes_in_area = minetest.find_nodes_in_area minetest.find_nodes_in_area = function(pos1, pos2, nodenames, grouped) local nodes, num = minetest_find_nodes_in_area(pos1, pos2, nodenames, grouped) if not grouped or not nodes or next(nodes) == nil then return nodes, num end return mcl_compatibility.sort_nodes(nodes) end function mcl_vars.pos_to_block(pos) return mcl_mapgen and mcl_mapgen.pos_to_block(pos) end function mcl_vars.pos_to_chunk(pos) return mcl_mapgen and mcl_mapgen.pos_to_chunk(pos) end function mcl_vars.get_chunk_number(pos) return mcl_mapgen and get_chunk_number(pos) end function mcl_vars.is_generated(pos) local node = minetest.get_node(pos) if not node then return false end if node.name == "ignore" then return false end return true end function mcl_vars.get_node(p, force, us_timeout) if not p or not p.x or not p.y or not p.z then return {name="error"} end local node = minetest.get_node(p) if node.name ~= "ignore" then return node end minetest.get_voxel_manip():read_from_map(p, p) return minetest.get_node(pos) end mcl_vars.mg_overworld_min = -62 mcl_vars.mg_overworld_max_official = 198 mcl_vars.mg_bedrock_overworld_min = -62 mcl_vars.mg_bedrock_overworld_max = -58 mcl_vars.mg_lava_overworld_max = -52 mcl_vars.mg_lava = true mcl_vars.mg_bedrock_is_rough = true mcl_vars.mg_overworld_max = 30927 mcl_vars.mg_nether_min = -29067 mcl_vars.mg_nether_max = -28939 mcl_vars.mg_bedrock_nether_bottom_min = -29067 mcl_vars.mg_bedrock_nether_top_max = -29063 mcl_vars.mg_end_min = -27073 mcl_vars.mg_end_max_official = -26817 mcl_vars.mg_end_max = -2062 mcl_vars.mg_end_platform_pos = { x = 100, y = -26999, z = 0 } mcl_vars.mg_realm_barrier_overworld_end_max = -2062 mcl_vars.mg_realm_barrier_overworld_end_min = -2073 mcl_vars.mg_dungeons = true