mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/4jcraft.git
synced 2026-05-30 21:06:08 +00:00
chore: format Minecraft.World
This commit is contained in:
@@ -5,50 +5,46 @@
|
||||
|
||||
const float BodyControl::maxClampAngle = 75.0f;
|
||||
|
||||
BodyControl::BodyControl(Mob *mob)
|
||||
{
|
||||
this->mob = mob;
|
||||
BodyControl::BodyControl(Mob* mob) {
|
||||
this->mob = mob;
|
||||
|
||||
timeStill = 0;
|
||||
lastHeadY = 0.0f;
|
||||
timeStill = 0;
|
||||
lastHeadY = 0.0f;
|
||||
}
|
||||
|
||||
void BodyControl::clientTick()
|
||||
{
|
||||
double xd = mob->x - mob->xo;
|
||||
double zd = mob->z - mob->zo;
|
||||
void BodyControl::clientTick() {
|
||||
double xd = mob->x - mob->xo;
|
||||
double zd = mob->z - mob->zo;
|
||||
|
||||
if (xd * xd + zd * zd > MoveControl::MIN_SPEED_SQR)
|
||||
{
|
||||
// we are moving.
|
||||
mob->yBodyRot = mob->yRot;
|
||||
mob->yHeadRot = clamp(mob->yBodyRot, mob->yHeadRot, maxClampAngle);
|
||||
lastHeadY = mob->yHeadRot;
|
||||
timeStill = 0;
|
||||
return;
|
||||
}
|
||||
if (xd * xd + zd * zd > MoveControl::MIN_SPEED_SQR) {
|
||||
// we are moving.
|
||||
mob->yBodyRot = mob->yRot;
|
||||
mob->yHeadRot = clamp(mob->yBodyRot, mob->yHeadRot, maxClampAngle);
|
||||
lastHeadY = mob->yHeadRot;
|
||||
timeStill = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
// Body will align to head after looking long enough in a direction
|
||||
float clampAngle = maxClampAngle;
|
||||
if (abs(mob->yHeadRot - lastHeadY) > 15)
|
||||
{
|
||||
timeStill = 0;
|
||||
lastHeadY = mob->yHeadRot;
|
||||
}
|
||||
else
|
||||
{
|
||||
++timeStill;
|
||||
static const int timeStillBeforeTurn = 10;
|
||||
if (timeStill > timeStillBeforeTurn) clampAngle = std::max(1 - (timeStill - timeStillBeforeTurn) / 10.f, 0.0f) * maxClampAngle;
|
||||
}
|
||||
// Body will align to head after looking long enough in a direction
|
||||
float clampAngle = maxClampAngle;
|
||||
if (abs(mob->yHeadRot - lastHeadY) > 15) {
|
||||
timeStill = 0;
|
||||
lastHeadY = mob->yHeadRot;
|
||||
} else {
|
||||
++timeStill;
|
||||
static const int timeStillBeforeTurn = 10;
|
||||
if (timeStill > timeStillBeforeTurn)
|
||||
clampAngle =
|
||||
std::max(1 - (timeStill - timeStillBeforeTurn) / 10.f, 0.0f) *
|
||||
maxClampAngle;
|
||||
}
|
||||
|
||||
mob->yBodyRot = clamp(mob->yHeadRot, mob->yBodyRot, clampAngle);
|
||||
mob->yBodyRot = clamp(mob->yHeadRot, mob->yBodyRot, clampAngle);
|
||||
}
|
||||
|
||||
float BodyControl::clamp(float clampTo, float clampFrom, float clampAngle)
|
||||
{
|
||||
float headDiffBody = Mth::wrapDegrees(clampTo - clampFrom);
|
||||
if (headDiffBody < -clampAngle) headDiffBody = -clampAngle;
|
||||
if (headDiffBody >= clampAngle) headDiffBody = +clampAngle;
|
||||
return clampTo - headDiffBody;
|
||||
float BodyControl::clamp(float clampTo, float clampFrom, float clampAngle) {
|
||||
float headDiffBody = Mth::wrapDegrees(clampTo - clampFrom);
|
||||
if (headDiffBody < -clampAngle) headDiffBody = -clampAngle;
|
||||
if (headDiffBody >= clampAngle) headDiffBody = +clampAngle;
|
||||
return clampTo - headDiffBody;
|
||||
}
|
||||
Reference in New Issue
Block a user