From b3feddfef372618c8a9d7a0abcaf18cfad866c18 Mon Sep 17 00:00:00 2001 From: daoge <3523206925@qq.com> Date: Tue, 3 Mar 2026 03:04:10 +0800 Subject: feat: TU19 (Dec 2014) Features & Content (#155) * try to resolve merge conflict * feat: TU19 (Dec 2014) Features & Content (#32) * December 2014 files * Working release build * Fix compilation issues * Add sound to Windows64Media * Add DLC content and force Tutorial DLC * Revert "Add DLC content and force Tutorial DLC" This reverts commit 97a43994725008e35fceb984d5549df9c8cea470. * Disable broken light packing * Disable breakpoint during DLC texture map load Allows DLC loading but the DLC textures are still broken * Fix post build not working * ... * fix vs2022 build * fix cmake build --------- Co-authored-by: Loki --- Minecraft.World/HurtByTargetGoal.cpp | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) (limited to 'Minecraft.World/HurtByTargetGoal.cpp') diff --git a/Minecraft.World/HurtByTargetGoal.cpp b/Minecraft.World/HurtByTargetGoal.cpp index a146c47d..32bcd3c7 100644 --- a/Minecraft.World/HurtByTargetGoal.cpp +++ b/Minecraft.World/HurtByTargetGoal.cpp @@ -4,42 +4,38 @@ #include "net.minecraft.world.level.h" #include "HurtByTargetGoal.h" -HurtByTargetGoal::HurtByTargetGoal(Mob *mob, bool alertSameType) : TargetGoal(mob, 16, false) +HurtByTargetGoal::HurtByTargetGoal(PathfinderMob *mob, bool alertSameType) : TargetGoal(mob, false) { this->alertSameType = alertSameType; setRequiredControlFlags(TargetGoal::TargetFlag); + timestamp = 0; } bool HurtByTargetGoal::canUse() { - return canAttack(mob->getLastHurtByMob(), false); + int ts = mob->getLastHurtByMobTimestamp(); + return ts != timestamp && canAttack(mob->getLastHurtByMob(), false); } void HurtByTargetGoal::start() { mob->setTarget(mob->getLastHurtByMob()); - oldHurtByMob = mob->getLastHurtByMob(); + timestamp = mob->getLastHurtByMobTimestamp(); if (alertSameType) { + double within = getFollowDistance(); vector > *nearby = mob->level->getEntitiesOfClass(typeid(*mob), AABB::newTemp(mob->x, mob->y, mob->z, mob->x + 1, mob->y + 1, mob->z + 1)->grow(within, 4, within)); for(AUTO_VAR(it, nearby->begin()); it != nearby->end(); ++it) { - shared_ptr other = dynamic_pointer_cast(*it); + shared_ptr other = dynamic_pointer_cast(*it); if (this->mob->shared_from_this() == other) continue; if (other->getTarget() != NULL) continue; + if (other->isAlliedTo(mob->getLastHurtByMob())) continue; // don't target allies other->setTarget(mob->getLastHurtByMob()); } delete nearby; } TargetGoal::start(); -} - -void HurtByTargetGoal::tick() -{ - if (mob->getLastHurtByMob() != NULL && mob->getLastHurtByMob() != oldHurtByMob) - { - this->start(); - } -} +} \ No newline at end of file -- cgit v1.2.3