From 2626a475ee8cfe02c18342127496f364827cf6e2 Mon Sep 17 00:00:00 2001
From: teknomunk <teknomunk@protonmail.com>
Date: Tue, 7 Jan 2025 07:13:41 -0600
Subject: [PATCH] Redo guardian spawn registration (copy biomes from glow
 squid)

---
 mods/ENTITIES/mcl_mobs/spawning.lua      |   2 +-
 mods/ENTITIES/mobs_mc/guardian.lua       | 154 ++++++++++++++++++++++-
 mods/ENTITIES/mobs_mc/guardian_elder.lua | 154 ++++++++++++++++++++++-
 3 files changed, 307 insertions(+), 3 deletions(-)

diff --git a/mods/ENTITIES/mcl_mobs/spawning.lua b/mods/ENTITIES/mcl_mobs/spawning.lua
index 7ce34fccd..db7aeecbb 100644
--- a/mods/ENTITIES/mcl_mobs/spawning.lua
+++ b/mods/ENTITIES/mcl_mobs/spawning.lua
@@ -449,7 +449,7 @@ function mcl_mobs:spawn_specific(name, dimension, type_of_spawning, biomes, min_
 		aoc = aoc,
 		min_height = min_height,
 		max_height = max_height,
-		day_toggle = day_toggle,
+		day_toggle = day_toggle, -- Currently unused
 		check_position = check_position,
 		on_spawn = on_spawn
 	}
diff --git a/mods/ENTITIES/mobs_mc/guardian.lua b/mods/ENTITIES/mobs_mc/guardian.lua
index ab4051626..d4f6c50c7 100644
--- a/mods/ENTITIES/mobs_mc/guardian.lua
+++ b/mods/ENTITIES/mobs_mc/guardian.lua
@@ -99,7 +99,159 @@ mcl_mobs.register_mob("mobs_mc:guardian", {
 	view_range = 16,
 })
 
-mcl_mobs:spawn_specific("mobs_mc:guardian", { "mcl_core:water_source", "mclx_core:river_water_source" }, { "mcl_core:water_source", "mclx_core:river_water_source" }, 0, minetest.LIGHT_MAX+1, 30, 25000, 2, mcl_vars.mg_overworld_min, mobs_mc.water_level - 10, mobs_mc.water_level)
+mcl_mobs:spawn_specific(
+	"mobs_mc:guardian", -- name
+	"overworld", -- dimension
+	"water", -- type_of_spawning
+	{	-- biomes
+		"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",
+		"FlowerForest_beach",
+		"Forest_beach",
+		"StoneBeach",
+		"ColdTaiga_beach_water",
+		"Taiga_beach",
+		"Savanna_beach",
+		"Plains_beach",
+		"ExtremeHills_beach",
+		"ColdTaiga_beach",
+		"Swampland_shore",
+		"MushroomIslandShore",
+		"JungleM_shore",
+		"Jungle_shore",
+		"MesaPlateauFM_sandlevel",
+		"MesaPlateauF_sandlevel",
+		"MesaBryce_sandlevel",
+		"Mesa_sandlevel",
+		"RoofedForest_ocean",
+		"JungleEdgeM_ocean",
+		"BirchForestM_ocean",
+		"BirchForest_ocean",
+		"IcePlains_deep_ocean",
+		"Jungle_deep_ocean",
+		"Savanna_ocean",
+		"MesaPlateauF_ocean",
+		"ExtremeHillsM_deep_ocean",
+		"Savanna_deep_ocean",
+		"SunflowerPlains_ocean",
+		"Swampland_deep_ocean",
+		"Swampland_ocean",
+		"MegaSpruceTaiga_deep_ocean",
+		"ExtremeHillsM_ocean",
+		"JungleEdgeM_deep_ocean",
+		"SunflowerPlains_deep_ocean",
+		"BirchForest_deep_ocean",
+		"IcePlainsSpikes_ocean",
+		"Mesa_ocean",
+		"StoneBeach_ocean",
+		"Plains_deep_ocean",
+		"JungleEdge_deep_ocean",
+		"SavannaM_deep_ocean",
+		"Desert_deep_ocean",
+		"Mesa_deep_ocean",
+		"ColdTaiga_deep_ocean",
+		"Plains_ocean",
+		"MesaPlateauFM_ocean",
+		"Forest_deep_ocean",
+		"JungleM_deep_ocean",
+		"FlowerForest_deep_ocean",
+		"MushroomIsland_ocean",
+		"MegaTaiga_ocean",
+		"StoneBeach_deep_ocean",
+		"IcePlainsSpikes_deep_ocean",
+		"ColdTaiga_ocean",
+		"SavannaM_ocean",
+		"MesaPlateauF_deep_ocean",
+		"MesaBryce_deep_ocean",
+		"ExtremeHills+_deep_ocean",
+		"ExtremeHills_ocean",
+		"MushroomIsland_deep_ocean",
+		"Forest_ocean",
+		"MegaTaiga_deep_ocean",
+		"JungleEdge_ocean",
+		"MesaBryce_ocean",
+		"MegaSpruceTaiga_ocean",
+		"ExtremeHills+_ocean",
+		"Jungle_ocean",
+		"RoofedForest_deep_ocean",
+		"IcePlains_ocean",
+		"FlowerForest_ocean",
+		"ExtremeHills_deep_ocean",
+		"MesaPlateauFM_deep_ocean",
+		"Desert_ocean",
+		"Taiga_ocean",
+		"BirchForestM_deep_ocean",
+		"Taiga_deep_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",
+		"ColdTaiga_underground",
+		"IcePlains_underground",
+		"IcePlainsSpikes_underground",
+		"MegaTaiga_underground",
+		"Taiga_underground",
+		"ExtremeHills+_underground",
+		"JungleM_underground",
+		"ExtremeHillsM_underground",
+		"JungleEdgeM_underground",
+	},
+	0, -- min_light
+	core.LIGHT_MAX+1, -- max_light
+	30, -- interval
+	25000, -- chance
+	2, -- aoc
+	mcl_vars.mg_overworld_min, -- min_height
+	mobs_mc.water_level - 10 -- max_height
+)
 mcl_mobs:non_spawn_specific("mobs_mc:guardian","overworld",0,minetest.LIGHT_MAX+1)
 -- spawn eggs
 mcl_mobs.register_egg("mobs_mc:guardian", S("Guardian"), "#5a8272", "#f17d31", 0)
diff --git a/mods/ENTITIES/mobs_mc/guardian_elder.lua b/mods/ENTITIES/mobs_mc/guardian_elder.lua
index be787216c..9e79f1f1a 100644
--- a/mods/ENTITIES/mobs_mc/guardian_elder.lua
+++ b/mods/ENTITIES/mobs_mc/guardian_elder.lua
@@ -112,7 +112,159 @@ mcl_mobs.register_mob("mobs_mc:guardian_elder", {
 	},
 })
 
-mcl_mobs:spawn_specific("mobs_mc:guardian_elder", { "mcl_core:water_source", "mclx_core:river_water_source" }, { "mcl_core:water_source", "mclx_core:river_water_source" }, 0, minetest.LIGHT_MAX+1, 30, 40000, 2, mcl_vars.mg_overworld_min, mobs_mc.water_level-18, mobs_mc.water_level)
+mcl_mobs:spawn_specific(
+	"mobs_mc:guardian_elder", -- name
+	"overworld", -- dimension
+	"water", -- type_of_spawning
+	{	-- biomes
+		"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",
+		"FlowerForest_beach",
+		"Forest_beach",
+		"StoneBeach",
+		"ColdTaiga_beach_water",
+		"Taiga_beach",
+		"Savanna_beach",
+		"Plains_beach",
+		"ExtremeHills_beach",
+		"ColdTaiga_beach",
+		"Swampland_shore",
+		"MushroomIslandShore",
+		"JungleM_shore",
+		"Jungle_shore",
+		"MesaPlateauFM_sandlevel",
+		"MesaPlateauF_sandlevel",
+		"MesaBryce_sandlevel",
+		"Mesa_sandlevel",
+		"RoofedForest_ocean",
+		"JungleEdgeM_ocean",
+		"BirchForestM_ocean",
+		"BirchForest_ocean",
+		"IcePlains_deep_ocean",
+		"Jungle_deep_ocean",
+		"Savanna_ocean",
+		"MesaPlateauF_ocean",
+		"ExtremeHillsM_deep_ocean",
+		"Savanna_deep_ocean",
+		"SunflowerPlains_ocean",
+		"Swampland_deep_ocean",
+		"Swampland_ocean",
+		"MegaSpruceTaiga_deep_ocean",
+		"ExtremeHillsM_ocean",
+		"JungleEdgeM_deep_ocean",
+		"SunflowerPlains_deep_ocean",
+		"BirchForest_deep_ocean",
+		"IcePlainsSpikes_ocean",
+		"Mesa_ocean",
+		"StoneBeach_ocean",
+		"Plains_deep_ocean",
+		"JungleEdge_deep_ocean",
+		"SavannaM_deep_ocean",
+		"Desert_deep_ocean",
+		"Mesa_deep_ocean",
+		"ColdTaiga_deep_ocean",
+		"Plains_ocean",
+		"MesaPlateauFM_ocean",
+		"Forest_deep_ocean",
+		"JungleM_deep_ocean",
+		"FlowerForest_deep_ocean",
+		"MushroomIsland_ocean",
+		"MegaTaiga_ocean",
+		"StoneBeach_deep_ocean",
+		"IcePlainsSpikes_deep_ocean",
+		"ColdTaiga_ocean",
+		"SavannaM_ocean",
+		"MesaPlateauF_deep_ocean",
+		"MesaBryce_deep_ocean",
+		"ExtremeHills+_deep_ocean",
+		"ExtremeHills_ocean",
+		"MushroomIsland_deep_ocean",
+		"Forest_ocean",
+		"MegaTaiga_deep_ocean",
+		"JungleEdge_ocean",
+		"MesaBryce_ocean",
+		"MegaSpruceTaiga_ocean",
+		"ExtremeHills+_ocean",
+		"Jungle_ocean",
+		"RoofedForest_deep_ocean",
+		"IcePlains_ocean",
+		"FlowerForest_ocean",
+		"ExtremeHills_deep_ocean",
+		"MesaPlateauFM_deep_ocean",
+		"Desert_ocean",
+		"Taiga_ocean",
+		"BirchForestM_deep_ocean",
+		"Taiga_deep_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",
+		"ColdTaiga_underground",
+		"IcePlains_underground",
+		"IcePlainsSpikes_underground",
+		"MegaTaiga_underground",
+		"Taiga_underground",
+		"ExtremeHills+_underground",
+		"JungleM_underground",
+		"ExtremeHillsM_underground",
+		"JungleEdgeM_underground",
+	},
+	0, -- min_light
+	core.LIGHT_MAX+1, -- max_light
+	30, -- interval
+	40000, -- chance
+	2, -- aoc
+	mcl_vars.mg_overworld_min, -- min_height
+	mobs_mc.water_level - 18 -- max_height
+)
 
 -- spawn eggs
 mcl_mobs.register_egg("mobs_mc:guardian_elder", S("Elder Guardian"), "#ceccba", "#747693", 0)