This commit is contained in:
InviseDivine
2026-03-29 00:16:19 +02:00
parent 470c28d83a
commit f016f00eab
5 changed files with 24 additions and 15 deletions

View File

@@ -438,7 +438,7 @@ void LocalPlayer::tick() {
{
if (std::abs(x - sentX) > .1f || std::abs(y - sentY) > .01f || std::abs(z - sentZ) > .1f || std::abs(sentRotX - xRot) > 1 || std::abs(sentRotY - yRot) > 1)
{
MovePlayerPacket packet(entityId, x, y - heightOffset, z, xRot, yRot);
MovePlayerPacket packet(entityId, xxa, y - heightOffset, yya, xRot, yRot);
minecraft->raknetInstance->send(packet);
sentX = x;
sentY = y;

View File

@@ -416,26 +416,31 @@ void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, MovePlay
(packet->z - entity->z) * (packet->z - entity->z));
float speed = vectorDist / (minecraft->getTicks() - player->getLastMoveTicks());
player->xRot = packet->xRot;
player->yRot = packet->yRot;
player->xRot = player->xRotO = packet->xRot;
player->yRot = player->yRotO = packet->yRot;
packet->y += 1.62f;
// packet->y += 1.62f;
if (speed < 2.5f) {
LOGI("Packet before: %f, %f, %f \n", packet->x, packet->y, packet->z);
// if (speed < 2.5f) {
LOGI("Packets: %f, %f, %f \n", packet->x, packet->y, packet->z);
LOGI("Entity before: %f, %f, %f \n", entity->x, entity->y, entity->z);
LOGI("Delta: %f %f %f \n", packet->x - entity->x, packet->y - entity->y, packet->z - entity->z);
player->xd = player->yd = player->zd = 0;
player->move(packet->x - entity->x, packet->y - entity->y, packet->z - entity->z);
LOGI("OnGround: %d \n", entity->onGround);
//player->xd = player->yd = player->zd = 0;
player->setxxa(packet->x);
player->setYya(packet->z);
// player->move(packet->x - entity->x, packet->y - entity->y, packet->z - entity->z);
// player->travel(packet->x - entity->x, packet->z - entity->z);
LOGI("Entity after: %f, %f, %f \n", entity->x, entity->y, entity->z);
// entity->lerpTo(packet->x, packet->y, packet->z, packet->yRot, packet->xRot, 3);
LOGI("Entity after: %f, %f, %f \n", entity->x, entity->y, entity->z);
// broadcast this packet to other clients
redistributePacket(packet, source);
} else {
MovePlayerPacket refuse(player->entityId, player->x, player->y, player->z, player->xRot, player->yRot);
raknetInstance->send(refuse);
}
// } else {
//MovePlayerPacket refuse(player->entityId, player->x, player->y, player->z, player->xRot, player->yRot);
//raknetInstance->send(refuse);
// }
player->setLastMoveTicks(minecraft->getTicks());
}

View File

@@ -49,6 +49,7 @@ void ServerPlayer::stopSleepInBed(bool forcefulWakeUp, bool updateLevelList, boo
void ServerPlayer::aiStep() {
updateAttackAnim();
super::aiStep();
Mob::aiStep();
}
void ServerPlayer::tick() {

View File

@@ -728,8 +728,8 @@ bool Mob::isWaterMob()
void Mob::aiStep()
{
printf("%f %f \n", xxa, yya);
//@todo? 30 lines of code here in java version
TIMER_PUSH("ai");
if (isImmobile()) {
jumping = false;

View File

@@ -223,6 +223,9 @@ protected:
double xc, yc, zc;
public:
void setxxa(float xxa) { this->xxa = xxa; }
void setyya(float yya) { this->yya = yya; }
// Cape position accessors (for renderers)
double getCapeX() const { return xCape; }
double getCapeY() const { return yCape; }