From 7db4e20fd7ee7cf1c25d5c2c5e9e1b1cf97d4c97 Mon Sep 17 00:00:00 2001 From: Debucquoy Anthony tonitch Date: Tue, 26 Sep 2023 23:54:37 +0200 Subject: adding endermite (#5460) * First Draft of adding endermite * Update src/Mobs/Endermite.h Co-authored-by: x12xx12x <44411062+12xx12@users.noreply.github.com> * Adding Protocols + SpawnEgg TODO: don't forget to put the endermite in core plugin for the summon command * Adding endermite to monster.ini * Adding 5% change of spawning endermite when throwing enderpearl * Spawn endermite at last position instead of Hit Position + .cache to .gitignore * fixup! Spawn endermite at last position instead of Hit Position + .cache to .gitignore * destroy endermite if 2 min, not if name is set * Syntax * Adding Enderman targeting endermite + fixing syntax * Fixing compile error + return error [but crash on enderman spawn] * Fix crash but enderman doesn't target * Enderman targeting endermite finished * checking style because i'm a noob at git... * fixup! checking style because i'm a noob at git... * Added endermite egg meta to docs * Final touches Removed unnecesary imports fixed callback to run only in sight distance and actually check sigtlines * Fixed error after not pulling branch --------- Co-authored-by: x12xx12x <44411062+12xx12@users.noreply.github.com> Co-authored-by: Debucquoy --- src/Mobs/Enderman.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/Mobs/Enderman.cpp') diff --git a/src/Mobs/Enderman.cpp b/src/Mobs/Enderman.cpp index 656668fb3..3711d7f07 100644 --- a/src/Mobs/Enderman.cpp +++ b/src/Mobs/Enderman.cpp @@ -149,6 +149,29 @@ void cEnderman::Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk) return; } + if (m_EMState != CHASING) + { + cMonster * EndermiteFound = GetMonsterOfTypeInSight(mtEndermite, 64); + if (EndermiteFound != nullptr) + { + SetTarget(EndermiteFound); + m_EMState = CHASING; + m_bIsScreaming = true; + } + } + else + { + const auto Target = GetTarget(); + if (Target != nullptr) + { + if (!Target->IsTicking()) + { + m_EMState = IDLE; + m_bIsScreaming = false; + } + } + } + PREPARE_REL_AND_CHUNK(GetPosition().Floor(), a_Chunk); if (!RelSuccess) { -- cgit v1.2.3