4jcraft/Minecraft.World/AI/Goals/RandomLookAroundGoal.cpp
2026-03-13 17:06:56 -05:00

33 lines
1 KiB
C++

#include "../../Platform/stdafx.h"
#include "../../Headers/net.minecraft.world.entity.h"
#include "../../Headers/net.minecraft.world.entity.ai.control.h"
#include "RandomLookAroundGoal.h"
RandomLookAroundGoal::RandomLookAroundGoal(Mob* mob) {
relX = relZ = 0.0;
lookTime = 0;
this->mob = mob;
setRequiredControlFlags(Control::MoveControlFlag |
Control::LookControlFlag);
}
bool RandomLookAroundGoal::canUse() {
return mob->getRandom()->nextFloat() < 0.02f;
}
bool RandomLookAroundGoal::canContinueToUse() { return lookTime >= 0; }
void RandomLookAroundGoal::start() {
double rnd = 2 * PI * mob->getRandom()->nextDouble();
relX = cos(rnd);
relZ = sin(rnd);
lookTime = 20 + mob->getRandom()->nextInt(20);
}
void RandomLookAroundGoal::tick() {
--lookTime;
mob->getLookControl()->setLookAt(mob->x + relX,
mob->y + mob->getHeadHeight(),
mob->z + relZ, 10, mob->getMaxHeadXRot());
}