Add spawn counts per mob to /mobstats

This commit is contained in:
cora 2022-10-07 22:46:13 +02:00
parent 1a380da960
commit 39a0353a49

View File

@ -25,6 +25,7 @@ local table_remove = table.remove
local pairs = pairs local pairs = pairs
local dbg_spawn_attempts = 0 local dbg_spawn_attempts = 0
local dbg_spawn_succ = 0 local dbg_spawn_succ = 0
local dbg_spawn_counts = {}
-- range for mob count -- range for mob count
local aoc_range = 136 local aoc_range = 136
@ -473,6 +474,11 @@ function mcl_mobs.spawn(pos,id)
if not def or (def.can_spawn and not def.can_spawn(pos)) or not def.is_mob then if not def or (def.can_spawn and not def.can_spawn(pos)) or not def.is_mob then
return false return false
end end
if not dbg_spawn_counts[def.name] then
dbg_spawn_counts[def.name] = 1
else
dbg_spawn_counts[def.name] = dbg_spawn_counts[def.name] + 1
end
return minetest.add_entity(pos, def.name) return minetest.add_entity(pos, def.name)
end end
@ -672,6 +678,7 @@ end
minetest.register_chatcommand("mobstats",{ minetest.register_chatcommand("mobstats",{
privs = { debug = true }, privs = { debug = true },
func = function(n,param) func = function(n,param)
minetest.chat_send_player(n,dump(dbg_spawn_counts))
local pos = minetest.get_player_by_name(n):get_pos() local pos = minetest.get_player_by_name(n):get_pos()
minetest.chat_send_player(n,"mobs within 32 radius of player:"..count_mobs(pos,32)) minetest.chat_send_player(n,"mobs within 32 radius of player:"..count_mobs(pos,32))
minetest.chat_send_player(n,"total mobs:"..count_mobs_total()) minetest.chat_send_player(n,"total mobs:"..count_mobs_total())