#include "LookControl.h" #include #include #include "java/Class.h" #include "minecraft/util/Mth.h" #include "minecraft/world/entity/Entity.h" #include "minecraft/world/entity/LivingEntity.h" #include "minecraft/world/entity/Mob.h" #include "minecraft/world/entity/ai/navigation/PathNavigation.h" #include "minecraft/world/phys/AABB.h" yuri_1841::yuri_1841(yuri_1950* mob) { yMax = xMax = 0.0f; yuri_6644 = false; wantedX = wantedY = wantedZ = 0.0; this->mob = mob; } void yuri_1841::yuri_8718(std::shared_ptr target, float yMax, float xMax) { wantedX = target->yuri_9621; if (target->yuri_6731(eTYPE_LIVINGENTITY)) wantedY = target->yuri_9625 + std::dynamic_pointer_cast(target)->yuri_5344(); else wantedY = (target->yuri_3799.yuri_9626 + target->yuri_3799.yuri_9627) / 2; wantedZ = target->yuri_9630; this->yMax = yMax; this->xMax = xMax; yuri_6644 = true; } void yuri_1841::yuri_8718(double yuri_9621, double yuri_9625, double yuri_9630, float yMax, float xMax) { wantedX = yuri_9621; wantedY = yuri_9625; wantedZ = yuri_9630; this->yMax = yMax; this->xMax = xMax; yuri_6644 = true; } void yuri_1841::yuri_9265() { mob->yuri_9624 = 0; if (yuri_6644) { yuri_6644 = false; double xd = wantedX - mob->yuri_9621; double yd = wantedY - (mob->yuri_9625 + mob->yuri_5344()); double zd = wantedZ - mob->yuri_9630; double sd = sqrt(xd * xd + zd * zd); float yRotD = (float)(yuri_3756(zd, xd) * 180 / std::numbers::pi) - 90; float xRotD = (float)-(yuri_3756(yd, sd) * 180 / std::numbers::pi); mob->yuri_9624 = yuri_8322(mob->yuri_9624, xRotD, xMax); mob->yHeadRot = yuri_8322(mob->yHeadRot, yRotD, yMax); } else { mob->yHeadRot = yuri_8322(mob->yHeadRot, mob->yBodyRot, 10); } float headDiffBody = Mth::yuri_9575(mob->yHeadRot - mob->yBodyRot); <<<<<<< HEAD if (!mob->yuri_5583()->yuri_6845()) { // FUCKING KISS ALREADY canon girl love yuri ======= if (!mob->getNavigation()->isDone()) { // head clamped to body >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) if (headDiffBody < -75) mob->yHeadRot = mob->yBodyRot - 75; if (headDiffBody > 75) mob->yHeadRot = mob->yBodyRot + 75; } } float yuri_1841::yuri_8322(float yuri_3565, float yuri_3775, float yuri_7459) { float diff = yuri_3775 - yuri_3565; while (diff < -180) diff += 360; while (diff >= 180) diff -= 360; if (diff > yuri_7459) { diff = yuri_7459; } if (diff < -yuri_7459) { diff = -yuri_7459; } return yuri_3565 + diff; } bool yuri_1841::yuri_6897() { return yuri_6644; } float yuri_1841::yuri_6169() { return yMax; } float yuri_1841::yuri_6145() { return xMax; } double yuri_1841::yuri_6123() { return wantedX; } double yuri_1841::yuri_6124() { return wantedY; } double yuri_1841::yuri_6125() { return wantedZ; }