mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/4jcraft.git
synced 2026-07-17 11:38:06 +00:00
chore: format Minecraft.World
This commit is contained in:
@@ -3,86 +3,86 @@
|
||||
#include "../../Headers/net.minecraft.world.phys.h"
|
||||
#include "RandomPos.h"
|
||||
|
||||
Vec3 *RandomPos::tempDir = Vec3::newPermanent(0, 0, 0);
|
||||
Vec3* RandomPos::tempDir = Vec3::newPermanent(0, 0, 0);
|
||||
|
||||
Vec3 *RandomPos::getPos(std::shared_ptr<PathfinderMob> mob, int xzDist, int yDist, int quadrant/*=-1*/) // 4J - added quadrant
|
||||
Vec3* RandomPos::getPos(std::shared_ptr<PathfinderMob> mob, int xzDist,
|
||||
int yDist, int quadrant /*=-1*/) // 4J - added quadrant
|
||||
{
|
||||
return generateRandomPos(mob, xzDist, yDist, NULL, quadrant);
|
||||
return generateRandomPos(mob, xzDist, yDist, NULL, quadrant);
|
||||
}
|
||||
|
||||
Vec3 *RandomPos::getPosTowards(std::shared_ptr<PathfinderMob> mob, int xzDist, int yDist, Vec3 *towardsPos)
|
||||
{
|
||||
tempDir->x = towardsPos->x - mob->x;
|
||||
tempDir->y = towardsPos->y - mob->y;
|
||||
tempDir->z = towardsPos->z - mob->z;
|
||||
return generateRandomPos(mob, xzDist, yDist, tempDir);
|
||||
Vec3* RandomPos::getPosTowards(std::shared_ptr<PathfinderMob> mob, int xzDist,
|
||||
int yDist, Vec3* towardsPos) {
|
||||
tempDir->x = towardsPos->x - mob->x;
|
||||
tempDir->y = towardsPos->y - mob->y;
|
||||
tempDir->z = towardsPos->z - mob->z;
|
||||
return generateRandomPos(mob, xzDist, yDist, tempDir);
|
||||
}
|
||||
|
||||
Vec3 *RandomPos::getPosAvoid(std::shared_ptr<PathfinderMob> mob, int xzDist, int yDist, Vec3 *avoidPos)
|
||||
{
|
||||
tempDir->x = mob->x - avoidPos->x;
|
||||
tempDir->y = mob->y - avoidPos->y;
|
||||
tempDir->z = mob->z - avoidPos->z;
|
||||
return generateRandomPos(mob, xzDist, yDist, tempDir);
|
||||
Vec3* RandomPos::getPosAvoid(std::shared_ptr<PathfinderMob> mob, int xzDist,
|
||||
int yDist, Vec3* avoidPos) {
|
||||
tempDir->x = mob->x - avoidPos->x;
|
||||
tempDir->y = mob->y - avoidPos->y;
|
||||
tempDir->z = mob->z - avoidPos->z;
|
||||
return generateRandomPos(mob, xzDist, yDist, tempDir);
|
||||
}
|
||||
|
||||
Vec3 *RandomPos::generateRandomPos(std::shared_ptr<PathfinderMob> mob, int xzDist, int yDist, Vec3 *dir, int quadrant/*=-1*/) // 4J - added quadrant
|
||||
Vec3* RandomPos::generateRandomPos(std::shared_ptr<PathfinderMob> mob,
|
||||
int xzDist, int yDist, Vec3* dir,
|
||||
int quadrant /*=-1*/) // 4J - added quadrant
|
||||
{
|
||||
Random *random = mob->getRandom();
|
||||
bool hasBest = false;
|
||||
int xBest = 0, yBest = 0, zBest = 0;
|
||||
float best = -99999;
|
||||
Random* random = mob->getRandom();
|
||||
bool hasBest = false;
|
||||
int xBest = 0, yBest = 0, zBest = 0;
|
||||
float best = -99999;
|
||||
|
||||
// 4J Stu - restrict is a reserved keyword
|
||||
bool bRestrict;
|
||||
if (mob->hasRestriction())
|
||||
{
|
||||
double restDist = mob->getRestrictCenter()->distSqr(Mth::floor(mob->x), Mth::floor(mob->y), Mth::floor(mob->z)) + 4;
|
||||
double radius = mob->getRestrictRadius() + xzDist;
|
||||
bRestrict = restDist < radius * radius;
|
||||
}
|
||||
else bRestrict = false;
|
||||
// 4J Stu - restrict is a reserved keyword
|
||||
bool bRestrict;
|
||||
if (mob->hasRestriction()) {
|
||||
double restDist =
|
||||
mob->getRestrictCenter()->distSqr(
|
||||
Mth::floor(mob->x), Mth::floor(mob->y), Mth::floor(mob->z)) +
|
||||
4;
|
||||
double radius = mob->getRestrictRadius() + xzDist;
|
||||
bRestrict = restDist < radius * radius;
|
||||
} else
|
||||
bRestrict = false;
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
int xt, yt, zt;
|
||||
// 4J - added quadrant here so that we can choose to select positions only within the one quadrant. Passing a parameter of -1 will
|
||||
// lead to normal java behaviour
|
||||
if( quadrant == -1 )
|
||||
{
|
||||
xt = random->nextInt(2 * xzDist) - xzDist;
|
||||
zt = random->nextInt(2 * xzDist) - xzDist;
|
||||
}
|
||||
else
|
||||
{
|
||||
int sx = ( ( quadrant & 1 ) ? -1 : 1 );
|
||||
int sz = ( ( quadrant & 2 ) ? -1 : 1 );
|
||||
xt = random->nextInt(xzDist) * sx;
|
||||
zt = random->nextInt(xzDist) * sz;
|
||||
}
|
||||
yt = random->nextInt(2 * yDist) - yDist;
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int xt, yt, zt;
|
||||
// 4J - added quadrant here so that we can choose to select positions
|
||||
// only within the one quadrant. Passing a parameter of -1 will lead to
|
||||
// normal java behaviour
|
||||
if (quadrant == -1) {
|
||||
xt = random->nextInt(2 * xzDist) - xzDist;
|
||||
zt = random->nextInt(2 * xzDist) - xzDist;
|
||||
} else {
|
||||
int sx = ((quadrant & 1) ? -1 : 1);
|
||||
int sz = ((quadrant & 2) ? -1 : 1);
|
||||
xt = random->nextInt(xzDist) * sx;
|
||||
zt = random->nextInt(xzDist) * sz;
|
||||
}
|
||||
yt = random->nextInt(2 * yDist) - yDist;
|
||||
|
||||
if (dir != NULL && xt * dir->x + zt * dir->z < 0) continue;
|
||||
if (dir != NULL && xt * dir->x + zt * dir->z < 0) continue;
|
||||
|
||||
xt += Mth::floor(mob->x);
|
||||
yt += Mth::floor(mob->y);
|
||||
zt += Mth::floor(mob->z);
|
||||
xt += Mth::floor(mob->x);
|
||||
yt += Mth::floor(mob->y);
|
||||
zt += Mth::floor(mob->z);
|
||||
|
||||
if (bRestrict && !mob->isWithinRestriction(xt, yt, zt)) continue;
|
||||
float value = mob->getWalkTargetValue(xt, yt, zt);
|
||||
if (value > best)
|
||||
{
|
||||
best = value;
|
||||
xBest = xt;
|
||||
yBest = yt;
|
||||
zBest = zt;
|
||||
hasBest = true;
|
||||
}
|
||||
}
|
||||
if (hasBest)
|
||||
{
|
||||
return Vec3::newTemp(xBest, yBest, zBest);
|
||||
}
|
||||
if (bRestrict && !mob->isWithinRestriction(xt, yt, zt)) continue;
|
||||
float value = mob->getWalkTargetValue(xt, yt, zt);
|
||||
if (value > best) {
|
||||
best = value;
|
||||
xBest = xt;
|
||||
yBest = yt;
|
||||
zBest = zt;
|
||||
hasBest = true;
|
||||
}
|
||||
}
|
||||
if (hasBest) {
|
||||
return Vec3::newTemp(xBest, yBest, zBest);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
return NULL;
|
||||
}
|
||||
Reference in New Issue
Block a user