forked from VoxeLibre/VoxeLibre
prevent ground squids, variable spawn height
This commit is contained in:
parent
ded679aaf7
commit
b1c97a0510
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue