TU19: merge Minecraft.World/AI

This commit is contained in:
Tropical
2026-03-21 15:10:07 -05:00
parent 4c30ef1e62
commit 7973172ae8
89 changed files with 1546 additions and 463 deletions

View File

@@ -1,6 +1,8 @@
#include "../../Platform/stdafx.h"
#include "../../Headers/net.minecraft.world.entity.ai.control.h"
#include "../../Headers/net.minecraft.world.entity.h"
#include "../../Headers/net.minecraft.world.entity.ai.attributes.h"
#include "../../Headers/net.minecraft.world.entity.ai.control.h"
#include "../../Headers/net.minecraft.world.entity.monster.h"
#include "../../Headers/net.minecraft.world.phys.h"
#include "MoveControl.h"
@@ -13,20 +15,21 @@ MoveControl::MoveControl(Mob* mob) {
wantedY = mob->y;
wantedZ = mob->z;
speed = 0.0f;
speedModifier = 0.0;
_hasWanted = false;
}
bool MoveControl::hasWanted() { return _hasWanted; }
float MoveControl::getSpeed() { return speed; }
double MoveControl::getSpeedModifier() { return speedModifier; }
void MoveControl::setWantedPosition(double x, double y, double z, float speed) {
void MoveControl::setWantedPosition(double x, double y, double z,
double speedModifier) {
wantedX = x;
wantedY = y;
wantedZ = z;
this->speed = speed;
this->speedModifier = speedModifier;
_hasWanted = true;
}
@@ -46,7 +49,10 @@ void MoveControl::tick() {
float yRotD = (float)(atan2(zd, xd) * 180 / PI) - 90;
mob->yRot = rotlerp(mob->yRot, yRotD, MAX_TURN);
mob->setSpeed(speed * mob->getWalkingSpeedModifier());
mob->setSpeed(
(float)(speedModifier *
mob->getAttribute(SharedMonsterAttributes::MOVEMENT_SPEED)
->getValue()));
if (yd > 0 && xd * xd + zd * zd < 1) mob->getJumpControl()->jump();
}