From 15ed7895cda57be8378a013d1d537edb414727c7 Mon Sep 17 00:00:00 2001 From: teknomunk <teknomunk@protonmail.com> Date: Sun, 9 Feb 2025 16:59:22 +0100 Subject: [PATCH] Fix crash in skyblock spawning (#4905) Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4905 Reviewed-by: kno10 <kno10@noreply.git.minetest.land> Co-authored-by: teknomunk <teknomunk@protonmail.com> Co-committed-by: teknomunk <teknomunk@protonmail.com> --- mods/ENTITIES/mcl_mobs/spawning.lua | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/mods/ENTITIES/mcl_mobs/spawning.lua b/mods/ENTITIES/mcl_mobs/spawning.lua index 1eba6449d..4f474577f 100644 --- a/mods/ENTITIES/mcl_mobs/spawning.lua +++ b/mods/ENTITIES/mcl_mobs/spawning.lua @@ -526,8 +526,23 @@ function mcl_mobs.register_custom_biomecheck(custom_biomecheck) mcl_mobs.custom_biomecheck = custom_biomecheck end +local custom_biome_ids = {} +local custom_biome_names = {} +local next_custom_biome_id = 0 + local function get_biome_name(pos) - if mcl_mobs.custom_biomecheck then return mcl_mobs.custom_biomecheck(pos) end + if mcl_mobs.custom_biomecheck then + local biome_name = mcl_mobs.custom_biomecheck(pos) + local biome_id = custom_biome_ids[biome_name] + if not biome_id then + biome_id = next_custom_biome_id + next_custom_biome_name = biome_id + 1 + + custom_biome_ids[biome_name] = biome_id + custom_biome_names[biome_id] = biome_name + end + return biome_name, biome_id + end local biome_data = core.get_biome_data(pos) local biome_id = biome_data and biome_data.biome local biome_name = biome_id and mt_get_biome_name(biome_id)