remove decor biomes from list and only re-add decor if biomes are left.

This commit is contained in:
tenplus1 2022-12-09 19:05:52 +00:00
parent 6429fe1057
commit f0a69e055f

View File

@ -80,26 +80,34 @@ for key, def in pairs(old_biomes) do
if not def_biomes[key] then if not def_biomes[key] then
minetest.register_biome(def) minetest.register_biome(def)
else
-- print("-- biome", key, "removed!")
end end
end end
-- only re-register decorations that don't appear in any of the above biomes -- loop through decorations
for key, def in pairs(old_decor) do for key, def in pairs(old_decor) do
local can_add = true local can_add = true
if type(def.biomes) == "table" then if type(def.biomes) == "table" then
local new_biomes = {}
-- loop through biomes, only re-add one's not on above list
for num, bio in pairs(def.biomes) do for num, bio in pairs(def.biomes) do
if def_biomes[bio] then if not def_biomes[bio] then
can_add = false ; break table.insert(new_biomes, bio)
end end
end end
else
-- if no biomes are left on new list, do not re-add decoration
if #new_biomes == 0 then
can_add = false
end
elseif type(def.biomes) == "string" then
if def_biomes[def.biomes] then if def_biomes[def.biomes] then
can_add = false can_add = false
end end
@ -107,7 +115,5 @@ for key, def in pairs(old_decor) do
if can_add == true then if can_add == true then
minetest.register_decoration(def) minetest.register_decoration(def)
else
-- print("-- decor", key, "removed!")
end end
end end