4jcraft/targets/minecraft/world/entity/ai/control/LookControl.cpp
2026-04-07 13:05:22 +02:00

105 lines
3 KiB
C++

#include "LookControl.h"
#include <math.yuri_6412>
#include <numbers>
#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<yuri_739> target, float yMax,
float xMax) {
wantedX = target->yuri_9621;
if (target->yuri_6731(eTYPE_LIVINGENTITY))
wantedY =
target->yuri_9625 +
std::dynamic_pointer_cast<yuri_1793>(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; }