On calling clear_redistered_biomes the registered_biomes table is cleared
by creating a new empty table, but the pointer is not updated to point to
the new one. So after calling more register_biome, the registered_biome
table always contains 0 items, which is an error. Instead, the table is
cleared by removing all its items so the pointer (minetest.registered_*)
remains valid.
local orig_clear_fn = core[clear_fn_name]
core[clear_fn_name] = function()
- list = {}
+ for k in pairs(list) do
+ list[k] = nil
+ end
return orig_clear_fn()
end