Add max_height param to spawn

master
PilzAdam 2012-09-22 13:03:00 +02:00
parent 2ddad10cd7
commit 67b25e00ab
2 changed files with 11 additions and 8 deletions

View File

@ -325,7 +325,7 @@ function mobs:register_mob(name, def)
}) })
end end
function mobs:register_spawn(name, nodes, max_light, min_light, chance, mobs_per_30_block_radius) function mobs:register_spawn(name, nodes, max_light, min_light, chance, mobs_per_30_block_radius, max_height)
minetest.register_abm({ minetest.register_abm({
nodenames = nodes, nodenames = nodes,
neighbors = nodes, neighbors = nodes,
@ -342,6 +342,9 @@ function mobs:register_spawn(name, nodes, max_light, min_light, chance, mobs_per
if minetest.env:get_node_light(pos) < min_light then if minetest.env:get_node_light(pos) < min_light then
return return
end end
if pos.y > max_height then
return
end
if minetest.env:get_node(pos).name ~= "air" then if minetest.env:get_node(pos).name ~= "air" then
return return
end end

View File

@ -26,7 +26,7 @@ mobs:register_mob("mobs:dirt_monster", {
on_rightclick = nil, on_rightclick = nil,
attack_type = "dogfight", attack_type = "dogfight",
}) })
mobs:register_spawn("mobs:dirt_monster", {"default:dirt_with_grass"}, 3, -1, 7000, 3) mobs:register_spawn("mobs:dirt_monster", {"default:dirt_with_grass"}, 3, -1, 7000, 3, 31000)
mobs:register_mob("mobs:stone_monster", { mobs:register_mob("mobs:stone_monster", {
type = "monster", type = "monster",
@ -54,7 +54,7 @@ mobs:register_mob("mobs:stone_monster", {
light_damage = 0, light_damage = 0,
attack_type = "dogfight", attack_type = "dogfight",
}) })
mobs:register_spawn("mobs:stone_monster", {"default:stone"}, 3, -1, 7000, 3) mobs:register_spawn("mobs:stone_monster", {"default:stone"}, 3, -1, 7000, 3, 0)
mobs:register_mob("mobs:sand_monster", { mobs:register_mob("mobs:sand_monster", {
@ -83,7 +83,7 @@ mobs:register_mob("mobs:sand_monster", {
light_damage = 0, light_damage = 0,
attack_type = "dogfight", attack_type = "dogfight",
}) })
mobs:register_spawn("mobs:sand_monster", {"default:desert_sand"}, 20, -1, 7000, 3) mobs:register_spawn("mobs:sand_monster", {"default:desert_sand"}, 20, -1, 7000, 3, 31000)
mobs:register_mob("mobs:sheep", { mobs:register_mob("mobs:sheep", {
type = "animal", type = "animal",
@ -122,7 +122,7 @@ mobs:register_mob("mobs:sheep", {
end end
end, end,
}) })
mobs:register_spawn("mobs:sheep", {"default:dirt_with_grass"}, 20, 8, 9000, 0) mobs:register_spawn("mobs:sheep", {"default:dirt_with_grass"}, 20, 8, 9000, 0, 31000)
minetest.register_craftitem("mobs:meat_raw", { minetest.register_craftitem("mobs:meat_raw", {
description = "Raw Meat", description = "Raw Meat",
@ -165,7 +165,7 @@ mobs:register_mob("mobs:rat", {
end end
end, end,
}) })
mobs:register_spawn("mobs:rat", {"default:dirt_with_grass", "default:stone"}, 20, -1, 7000, 1) mobs:register_spawn("mobs:rat", {"default:dirt_with_grass", "default:stone"}, 20, -1, 7000, 1, 31000)
minetest.register_craftitem("mobs:rat", { minetest.register_craftitem("mobs:rat", {
description = "Rat", description = "Rat",
@ -215,7 +215,7 @@ mobs:register_mob("mobs:oerkki", {
light_damage = 0, light_damage = 0,
attack_type = "dogfight", attack_type = "dogfight",
}) })
mobs:register_spawn("mobs:oerkki", {"default:stone"}, 2, -1, 7000, 3) mobs:register_spawn("mobs:oerkki", {"default:stone"}, 2, -1, 7000, 3, -10)
mobs:register_mob("mobs:dungeon_master", { mobs:register_mob("mobs:dungeon_master", {
type = "monster", type = "monster",
@ -248,7 +248,7 @@ mobs:register_mob("mobs:dungeon_master", {
attack = "mobs_fireball", attack = "mobs_fireball",
}, },
}) })
mobs:register_spawn("mobs:dungeon_master", {"default:stone"}, 2, -1, 7000, 0) mobs:register_spawn("mobs:dungeon_master", {"default:stone"}, 2, -1, 7000, 0, -50)
mobs:register_arrow("mobs:fireball", { mobs:register_arrow("mobs:fireball", {
visual = "sprite", visual = "sprite",