Add /enderdebug command to study staring detection

This commit is contained in:
cora 2022-05-31 23:31:01 +02:00
parent 5778c2d27a
commit d60fa0f4ab
1 changed files with 22 additions and 1 deletions

View File

@ -26,6 +26,8 @@
local S = minetest.get_translator("mobs_mc")
local enderdebug = false
local telesound = function(pos, is_source)
local snd
if is_source then
@ -391,11 +393,18 @@ mcl_mobs:register_mob("mobs_mc:enderman", {
--if looking in general head position, turn hostile
if minetest.line_of_sight(ender_eye_pos, look_pos_base) and vector.distance(look_pos, ender_eye_pos) <= 0.4 then
self.provoked = "staring"
self.attack = minetest.get_player_by_name(obj:get_player_name())
if not enderdebug then
self.attack = minetest.get_player_by_name(obj:get_player_name())
else
minetest.log("staring")
end
break
else -- I'm not sure what this part does, but I don't want to break anything - jordan4ibanez
if self.provoked == "staring" then
self.provoked = "broke_contact"
if enderdebug then
minetest.log("stopped staring")
end
end
end
@ -778,3 +787,15 @@ mcl_vars.mg_nether_max)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:enderman", S("Enderman"), "mobs_mc_spawn_icon_enderman.png", 0)
minetest.register_chatcommand("enderdebug",{
description = S("Toggle between enderman aggro behavior and just signal staring"),
privs = { debug = true },
func=function()
enderdebug = not enderdebug
if enderdebug then
return true, "Endermen will not attack"
end
return true, "Endermen back to normal"
end
})