From 7bf1c958e49b15c435617b0f552c23f855b69bde Mon Sep 17 00:00:00 2001
From: teknomunk <teknomunk@protonmail.com>
Date: Fri, 10 Jan 2025 06:48:52 -0600
Subject: [PATCH] Start converting mob spawn registrations to use
 mcl_mobs:spawn_setup()

---
 mods/ENTITIES/mobs_mc/axolotl.lua | 171 +++++++++++++++---------------
 mods/ENTITIES/mobs_mc/bat.lua     | 152 +++++++++++++-------------
 mods/ENTITIES/mobs_mc/blaze.lua   |  25 ++---
 mods/ENTITIES/mobs_mc/chicken.lua |  94 ++++++++--------
 4 files changed, 223 insertions(+), 219 deletions(-)

diff --git a/mods/ENTITIES/mobs_mc/axolotl.lua b/mods/ENTITIES/mobs_mc/axolotl.lua
index 171dacc39..260ed36d8 100644
--- a/mods/ENTITIES/mobs_mc/axolotl.lua
+++ b/mods/ENTITIES/mobs_mc/axolotl.lua
@@ -96,91 +96,92 @@ mcl_mobs.register_mob("mobs_mc:axolotl", axolotl)
 
 local water = 0
 
-mcl_mobs:spawn_specific(
-"mobs_mc:axolotl",
-"overworld",
-"water",
-{
-"Swampland",
-"MushroomIsland",
-"RoofedForest",
-"FlowerForest_beach",
-"Forest_beach",
-"StoneBeach",
-"Taiga_beach",
-"Savanna_beach",
-"Plains_beach",
-"ExtremeHills_beach",
-"Swampland_shore",
-"MushroomIslandShore",
-"JungleM_shore",
-"Jungle_shore",
-"RoofedForest_ocean",
-"JungleEdgeM_ocean",
-"BirchForestM_ocean",
-"BirchForest_ocean",
-"IcePlains_deep_ocean",
-"Jungle_deep_ocean",
-"Savanna_ocean",
-"MesaPlateauF_ocean",
-"SunflowerPlains_ocean",
-"Swampland_ocean",
-"ExtremeHillsM_ocean",
-"Mesa_ocean",
-"StoneBeach_ocean",
-"Plains_ocean",
-"MesaPlateauFM_ocean",
-"MushroomIsland_ocean",
-"MegaTaiga_ocean",
-"StoneBeach_deep_ocean",
-"SavannaM_ocean",
-"ExtremeHills_ocean",
-"Forest_ocean",
-"JungleEdge_ocean",
-"MesaBryce_ocean",
-"MegaSpruceTaiga_ocean",
-"ExtremeHills+_ocean",
-"Jungle_ocean",
-"FlowerForest_ocean",
-"Desert_ocean",
-"Taiga_ocean",
-"JungleM_ocean",
-"FlowerForest_underground",
-"JungleEdge_underground",
-"StoneBeach_underground",
-"MesaBryce_underground",
-"Mesa_underground",
-"RoofedForest_underground",
-"Jungle_underground",
-"Swampland_underground",
-"MushroomIsland_underground",
-"BirchForest_underground",
-"Plains_underground",
-"MesaPlateauF_underground",
-"ExtremeHills_underground",
-"MegaSpruceTaiga_underground",
-"BirchForestM_underground",
-"SavannaM_underground",
-"MesaPlateauFM_underground",
-"Desert_underground",
-"Savanna_underground",
-"Forest_underground",
-"SunflowerPlains_underground",
-"MegaTaiga_underground",
-"Taiga_underground",
-"ExtremeHills+_underground",
-"JungleM_underground",
-"ExtremeHillsM_underground",
-"JungleEdgeM_underground",
-"LushCaves",
-},
-0,
-minetest.LIGHT_MAX+1,
-30,
-100,
-3,
-water-16,
-water+1)
+mcl_mobs:spawn_setup({
+	name = "mobs_mc:axolotl",
+	dimension = "overworld",
+	type_of_spawning = "water",
+	biomes = {
+		"Swampland",
+		"MushroomIsland",
+		"RoofedForest",
+		"FlowerForest_beach",
+		"Forest_beach",
+		"StoneBeach",
+		"Taiga_beach",
+		"Savanna_beach",
+		"Plains_beach",
+		"ExtremeHills_beach",
+		"Swampland_shore",
+		"MushroomIslandShore",
+		"JungleM_shore",
+		"Jungle_shore",
+		"RoofedForest_ocean",
+		"JungleEdgeM_ocean",
+		"BirchForestM_ocean",
+		"BirchForest_ocean",
+		"IcePlains_deep_ocean",
+		"Jungle_deep_ocean",
+		"Savanna_ocean",
+		"MesaPlateauF_ocean",
+		"SunflowerPlains_ocean",
+		"Swampland_ocean",
+		"ExtremeHillsM_ocean",
+		"Mesa_ocean",
+		"StoneBeach_ocean",
+		"Plains_ocean",
+		"MesaPlateauFM_ocean",
+		"MushroomIsland_ocean",
+		"MegaTaiga_ocean",
+		"StoneBeach_deep_ocean",
+		"SavannaM_ocean",
+		"ExtremeHills_ocean",
+		"Forest_ocean",
+		"JungleEdge_ocean",
+		"MesaBryce_ocean",
+		"MegaSpruceTaiga_ocean",
+		"ExtremeHills+_ocean",
+		"Jungle_ocean",
+		"FlowerForest_ocean",
+		"Desert_ocean",
+		"Taiga_ocean",
+		"JungleM_ocean",
+		"FlowerForest_underground",
+		"JungleEdge_underground",
+		"StoneBeach_underground",
+		"MesaBryce_underground",
+		"Mesa_underground",
+		"RoofedForest_underground",
+		"Jungle_underground",
+		"Swampland_underground",
+		"MushroomIsland_underground",
+		"BirchForest_underground",
+		"Plains_underground",
+		"MesaPlateauF_underground",
+		"ExtremeHills_underground",
+		"MegaSpruceTaiga_underground",
+		"BirchForestM_underground",
+		"SavannaM_underground",
+		"MesaPlateauFM_underground",
+		"Desert_underground",
+		"Savanna_underground",
+		"Forest_underground",
+		"SunflowerPlains_underground",
+		"MegaTaiga_underground",
+		"Taiga_underground",
+		"ExtremeHills+_underground",
+		"JungleM_underground",
+		"ExtremeHillsM_underground",
+		"JungleEdgeM_underground",
+		"LushCaves",
+	},
+	min_light = 0,
+	max_light = core.LIGHT_MAX + 1,
+	chance = 30,
+	interval = 100,
+	aoc = 3,
+	min_height = mobs_mc.water_level - 16,
+	max_height = mobs_mc.water_level + 1,
+})
 
 -- spawn eggs
 mcl_mobs.register_egg("mobs_mc:axolotl", S("Axolotl"), "#e890bf", "#b83D7e", 0)
diff --git a/mods/ENTITIES/mobs_mc/bat.lua b/mods/ENTITIES/mobs_mc/bat.lua
index cc36e3836..e4190bcde 100644
--- a/mods/ENTITIES/mobs_mc/bat.lua
+++ b/mods/ENTITIES/mobs_mc/bat.lua
@@ -79,82 +79,82 @@ else
 end
 
 -- Spawn on solid blocks at or below Sea level and the selected light level
-mcl_mobs:spawn_specific(
-"mobs_mc:bat",
-"overworld",
-"ground",
-{
-"FlowerForest_underground",
-"JungleEdge_underground",
-"StoneBeach_underground",
-"MesaBryce_underground",
-"Mesa_underground",
-"RoofedForest_underground",
-"Jungle_underground",
-"Swampland_underground",
-"MushroomIsland_underground",
-"BirchForest_underground",
-"Plains_underground",
-"MesaPlateauF_underground",
-"ExtremeHills_underground",
-"MegaSpruceTaiga_underground",
-"BirchForestM_underground",
-"SavannaM_underground",
-"MesaPlateauFM_underground",
-"Desert_underground",
-"Savanna_underground",
-"Forest_underground",
-"SunflowerPlains_underground",
-"ColdTaiga_underground",
-"IcePlains_underground",
-"IcePlainsSpikes_underground",
-"MegaTaiga_underground",
-"Taiga_underground",
-"ExtremeHills+_underground",
-"JungleM_underground",
-"ExtremeHillsM_underground",
-"JungleEdgeM_underground",
-"Mesa",
-"FlowerForest",
-"Swampland",
-"Taiga",
-"ExtremeHills",
-"Jungle",
-"Savanna",
-"BirchForest",
-"MegaSpruceTaiga",
-"MegaTaiga",
-"ExtremeHills+",
-"Forest",
-"Plains",
-"Desert",
-"ColdTaiga",
-"MushroomIsland",
-"IcePlainsSpikes",
-"SunflowerPlains",
-"IcePlains",
-"RoofedForest",
-"ExtremeHills+_snowtop",
-"MesaPlateauFM_grasstop",
-"JungleEdgeM",
-"ExtremeHillsM",
-"JungleM",
-"BirchForestM",
-"MesaPlateauF",
-"MesaPlateauFM",
-"MesaPlateauF_grasstop",
-"MesaBryce",
-"JungleEdge",
-"SavannaM",
-},
-0,
-maxlight,
-20,
-100,
-2,
-mcl_vars.mg_overworld_min,
-mobs_mc.water_level-1)
-
+mcl_mobs:spawn_setup({
+	name = "mobs_mc:bat",
+	dimension = "overworld",
+	type_of_spawning = "ground",
+	biomes = {
+		"FlowerForest_underground",
+		"JungleEdge_underground",
+		"StoneBeach_underground",
+		"MesaBryce_underground",
+		"Mesa_underground",
+		"RoofedForest_underground",
+		"Jungle_underground",
+		"Swampland_underground",
+		"MushroomIsland_underground",
+		"BirchForest_underground",
+		"Plains_underground",
+		"MesaPlateauF_underground",
+		"ExtremeHills_underground",
+		"MegaSpruceTaiga_underground",
+		"BirchForestM_underground",
+		"SavannaM_underground",
+		"MesaPlateauFM_underground",
+		"Desert_underground",
+		"Savanna_underground",
+		"Forest_underground",
+		"SunflowerPlains_underground",
+		"ColdTaiga_underground",
+		"IcePlains_underground",
+		"IcePlainsSpikes_underground",
+		"MegaTaiga_underground",
+		"Taiga_underground",
+		"ExtremeHills+_underground",
+		"JungleM_underground",
+		"ExtremeHillsM_underground",
+		"JungleEdgeM_underground",
+		"Mesa",
+		"FlowerForest",
+		"Swampland",
+		"Taiga",
+		"ExtremeHills",
+		"Jungle",
+		"Savanna",
+		"BirchForest",
+		"MegaSpruceTaiga",
+		"MegaTaiga",
+		"ExtremeHills+",
+		"Forest",
+		"Plains",
+		"Desert",
+		"ColdTaiga",
+		"MushroomIsland",
+		"IcePlainsSpikes",
+		"SunflowerPlains",
+		"IcePlains",
+		"RoofedForest",
+		"ExtremeHills+_snowtop",
+		"MesaPlateauFM_grasstop",
+		"JungleEdgeM",
+		"ExtremeHillsM",
+		"JungleM",
+		"BirchForestM",
+		"MesaPlateauF",
+		"MesaPlateauFM",
+		"MesaPlateauF_grasstop",
+		"MesaBryce",
+		"JungleEdge",
+		"SavannaM",
+	},
+	min_light = 0,
+	max_light = maxlight,
+	chance = 20,
+	interval = 100,
+	aoc = 2,
+	min_height = mcl_vars.mg_overworld_min,
+	max_height = mobs_mc.water_level - 1,
+})
 
 -- spawn eggs
 mcl_mobs.register_egg("mobs_mc:bat", S("Bat"), "#4c3e30", "#0f0f0f", 0)
diff --git a/mods/ENTITIES/mobs_mc/blaze.lua b/mods/ENTITIES/mobs_mc/blaze.lua
index f75236a5d..cddf2c886 100644
--- a/mods/ENTITIES/mobs_mc/blaze.lua
+++ b/mods/ENTITIES/mobs_mc/blaze.lua
@@ -143,18 +143,19 @@ mcl_mobs.register_mob("mobs_mc:blaze", {
 	spawn_check = spawn_check,
 })
 
-mcl_mobs:spawn_specific(
-"mobs_mc:blaze",
-"nether",
-"ground",
-{"Nether"},
-0,
-minetest.LIGHT_MAX+1,
-30,
-1000,
-3,
-mcl_vars.mg_nether_min,
-mcl_vars.mg_nether_max)
+mcl_mobs:spawn_setup({
+	name = "mobs_mc:blaze",
+	dimension = "nether",
+	type_of_spawning = "ground",
+	biomes = {"Nether"},
+	min_light = 0,
+	max_light = minetest.LIGHT_MAX + 1,
+	chance = 30,
+	interval = 1000,
+	aoc = 3,
+	min_height = mcl_vars.mg_nether_min,
+	max_height = mcl_vars.mg_nether_max
+})
 
 -- Blaze fireball
 mcl_mobs.register_arrow("mobs_mc:blaze_fireball", {
diff --git a/mods/ENTITIES/mobs_mc/chicken.lua b/mods/ENTITIES/mobs_mc/chicken.lua
index 11392dc7f..51cc4f0b0 100644
--- a/mods/ENTITIES/mobs_mc/chicken.lua
+++ b/mods/ENTITIES/mobs_mc/chicken.lua
@@ -114,52 +114,54 @@ mcl_mobs.register_mob("mobs_mc:chicken", {
 })
 
 --spawn
-mcl_mobs:spawn_specific(
-"mobs_mc:chicken",
-"overworld",
-"ground",
-{
-	"flat",
-	"IcePlainsSpikes",
-	"ColdTaiga",
-	"ColdTaiga_beach",
-	"ColdTaiga_beach_water",
-	"MegaTaiga",
-	"MegaSpruceTaiga",
-	"ExtremeHills",
-	"ExtremeHills_beach",
-	"ExtremeHillsM",
-	"ExtremeHills+",
-	"Plains",
-	"Plains_beach",
-	"SunflowerPlains",
-	"Taiga",
-	"Taiga_beach",
-	"Forest",
-	"Forest_beach",
-	"FlowerForest",
-	"FlowerForest_beach",
-	"BirchForest",
-	"BirchForestM",
-	"RoofedForest",
-	"Savanna",
-	"Savanna_beach",
-	"SavannaM",
-	"Jungle",
-	"Jungle_shore",
-	"JungleM",
-	"JungleM_shore",
-	"JungleEdge",
-	"JungleEdgeM",
-	"Swampland",
-	"Swampland_shore"
-},
-9,
-minetest.LIGHT_MAX+1,
-30, 100,
-3,
-mobs_mc.water_level,
-mcl_vars.mg_overworld_max)
+mcl_mobs:spawn_setup({
+	name = "mobs_mc:chicken",
+	dimension = "overworld",
+	type_of_spawning = "ground",
+	biomes = {
+		"flat",
+		"IcePlainsSpikes",
+		"ColdTaiga",
+		"ColdTaiga_beach",
+		"ColdTaiga_beach_water",
+		"MegaTaiga",
+		"MegaSpruceTaiga",
+		"ExtremeHills",
+		"ExtremeHills_beach",
+		"ExtremeHillsM",
+		"ExtremeHills+",
+		"Plains",
+		"Plains_beach",
+		"SunflowerPlains",
+		"Taiga",
+		"Taiga_beach",
+		"Forest",
+		"Forest_beach",
+		"FlowerForest",
+		"FlowerForest_beach",
+		"BirchForest",
+		"BirchForestM",
+		"RoofedForest",
+		"Savanna",
+		"Savanna_beach",
+		"SavannaM",
+		"Jungle",
+		"Jungle_shore",
+		"JungleM",
+		"JungleM_shore",
+		"JungleEdge",
+		"JungleEdgeM",
+		"Swampland",
+		"Swampland_shore"
+	},
+	min_light = 9,
+	max_light = minetest.LIGHT_MAX + 1,
+	chance = 30,
+	interval = 100,
+	aoc = 3,
+	min_height = mobs_mc.water_level,
+	max_height = mcl_vars.mg_overworld_max
+})
 
 -- spawn eggs
 mcl_mobs.register_egg("mobs_mc:chicken", S("Chicken"), "#a1a1a1", "#ff0000", 0)