From 04cb919f2bf9b0cc676689fdf0070360b6a97bfe Mon Sep 17 00:00:00 2001 From: cora Date: Sat, 5 Nov 2022 00:55:17 +0100 Subject: [PATCH] structure-spawning: make water spawns possible --- mods/MAPGEN/mcl_structures/api.lua | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/mods/MAPGEN/mcl_structures/api.lua b/mods/MAPGEN/mcl_structures/api.lua index b33f171d7..cf47b4e30 100644 --- a/mods/MAPGEN/mcl_structures/api.lua +++ b/mods/MAPGEN/mcl_structures/api.lua @@ -227,9 +227,19 @@ local function process_queue() minetest.after(0.5,process_queue) end -function mcl_structures.spawn_mobs(mob,spawnon,p1,p2,pr,n) +function mcl_structures.spawn_mobs(mob,spawnon,p1,p2,pr,n,water) n = n or 1 - local sp = minetest.find_nodes_in_area_under_air(p1,p2,spawnon) + local sp = {} + if water then + local nn = minetest.find_nodes_in_area(p1,p2,spawnon) + for k,v in pairs(nn) do + if minetest.get_item_group(minetest.get_node(vector.offset(v,0,1,0)).name,"water") > 0 then + table.insert(sp,v) + end + end + else + sp = minetest.find_nodes_in_area_under_air(p1,p2,spawnon) + end table.shuffle(sp) for i,node in pairs(sp) do if not peaceful and i <= n then