From b1c97a05107442d9be995005c677992546f7ba38 Mon Sep 17 00:00:00 2001 From: cora Date: Mon, 4 Jul 2022 01:41:45 +0200 Subject: [PATCH] prevent ground squids, variable spawn height --- mods/ENTITIES/mcl_mobs/spawning.lua | 3 ++- mods/ENTITIES/mobs_mc/squid.lua | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/mods/ENTITIES/mcl_mobs/spawning.lua b/mods/ENTITIES/mcl_mobs/spawning.lua index 8fa2e7a8a..faad27537 100644 --- a/mods/ENTITIES/mcl_mobs/spawning.lua +++ b/mods/ENTITIES/mcl_mobs/spawning.lua @@ -453,11 +453,12 @@ if mobs_spawn then and (mob_def.check_position and mob_def.check_position(spawning_position) or true) and (not is_farm_animal(mob_def.name) or is_grass) and (mob_type ~= "npc" or has_bed) + and (mob_def.type_of_spawning ~= water or is_water) then --everything is correct, spawn mob local object = minetest.add_entity(spawning_position, mob_def.name) if object then - return mob_def.on_spawn and mob_def.on_spawn(object, pos) + return mob_def.on_spawn and mob_def.on_spawn(object, spawning_position) end end current_summary_chance = current_summary_chance - mob_chance diff --git a/mods/ENTITIES/mobs_mc/squid.lua b/mods/ENTITIES/mobs_mc/squid.lua index 86b80976e..f4ca0521a 100644 --- a/mods/ENTITIES/mobs_mc/squid.lua +++ b/mods/ENTITIES/mobs_mc/squid.lua @@ -55,6 +55,17 @@ mcl_mobs:register_mob("mobs_mc:squid", { view_range = 16, runaway = true, fear_height = 4, + on_spawn = function(self) + --make sure squids always spawn in water (and at variable heights) + --can be removed once this is provided by the api + local p = self.object:get_pos() + local nn = minetest.find_nodes_in_area(vector.offset(p,-2,-1,-2),vector.offset(p,2,-15,2),{"group:water"}) + if nn and #nn > 0 then + self.object:set_pos(nn[math.random(#nn)]) + else + self.object:remove() + end + end, }) -- TODO: Behaviour: squirt