From d60fa0f4ab4b2a425779a423760c6cd8d831f699 Mon Sep 17 00:00:00 2001 From: cora Date: Tue, 31 May 2022 23:31:01 +0200 Subject: [PATCH] Add /enderdebug command to study staring detection --- mods/ENTITIES/mobs_mc/enderman.lua | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/mods/ENTITIES/mobs_mc/enderman.lua b/mods/ENTITIES/mobs_mc/enderman.lua index 9ed59bb1f..7dc5cf1e3 100644 --- a/mods/ENTITIES/mobs_mc/enderman.lua +++ b/mods/ENTITIES/mobs_mc/enderman.lua @@ -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 +})