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) 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); minecraft->raknetInstance->send(packet);
sentX = x; sentX = x;
sentY = y; sentY = y;

View File

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

View File

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

View File

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

View File

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