diff --git a/api/spawning.lua b/api/spawning.lua index b06bebb..8797055 100644 --- a/api/spawning.lua +++ b/api/spawning.lua @@ -210,8 +210,9 @@ creatura.register_abm_spawn("animalia:bat", { chance = ambient_spawn_chance, interval = 30, min_light = 0, + max_light = 6, min_height = -31000, - max_height = 1, + max_height = 128, min_group = 3, max_group = 5, spawn_cap = 6, diff --git a/mobs/bat.lua b/mobs/bat.lua index 9e442a6..3b70c90 100644 --- a/mobs/bat.lua +++ b/mobs/bat.lua @@ -19,7 +19,8 @@ local function get_home_pos(self) if not home_dist or dist < home_dist then n_pos.y = n_pos.y - 1 - if creatura.get_node_def(n_pos).name == "air" then + if creatura.get_node_def(n_pos).name == "air" and + minetest.get_node_light(n_pos) < 8 then home_dist = dist new_home = n_pos end @@ -144,8 +145,8 @@ creatura.register_mob("animalia:bat", { center = creatura.get_ground_level(center, 8) if center.y < pos.y then local under = {x = center.x, y = center.y - 1, z = center.z} - if creatura.get_node_def(under).walkable - and not minetest.is_protected(center, "") then + if creatura.get_node_def(under).walkable and + minetest.get_node_light(center, nil) < 6 then minetest.set_node(center, {name = "animalia:guano"}) end end @@ -175,4 +176,4 @@ creatura.register_mob("animalia:bat", { creatura.register_spawn_item("animalia:bat", { col1 = "392517", col2 = "321b0b" -}) \ No newline at end of file +})