1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Optimize/adjust blocks/ActiveObjects sent at the server based on client settings. (#4811)

Optimize/adjust blocks and active blocks sent at the server based on client settings.
This commit is contained in:
lhofhansl 2016-11-30 00:13:14 -08:00 committed by Zeno-
parent c38985825f
commit 5dc6198878
11 changed files with 99 additions and 28 deletions

View file

@ -782,6 +782,7 @@ void Server::process_PlayerPos(RemotePlayer *player, PlayerSAO *playersao,
v3s32 ps, ss;
s32 f32pitch, f32yaw;
u8 f32fov;
*pkt >> ps;
*pkt >> ss;
@ -792,8 +793,18 @@ void Server::process_PlayerPos(RemotePlayer *player, PlayerSAO *playersao,
f32 yaw = (f32)f32yaw / 100.0;
u32 keyPressed = 0;
// default behavior (in case an old client doesn't send these)
f32 fov = (72.0*M_PI/180) * 4./3.;
u8 wanted_range = 0;
if (pkt->getRemainingBytes() >= 4)
*pkt >> keyPressed;
if (pkt->getRemainingBytes() >= 1) {
*pkt >> f32fov;
fov = (f32)f32fov / 80.0;
}
if (pkt->getRemainingBytes() >= 1)
*pkt >> wanted_range;
v3f position((f32)ps.X / 100.0, (f32)ps.Y / 100.0, (f32)ps.Z / 100.0);
v3f speed((f32)ss.X / 100.0, (f32)ss.Y / 100.0, (f32)ss.Z / 100.0);
@ -805,6 +816,8 @@ void Server::process_PlayerPos(RemotePlayer *player, PlayerSAO *playersao,
player->setSpeed(speed);
playersao->setPitch(pitch);
playersao->setYaw(yaw);
playersao->setFov(fov);
playersao->setWantedRange(wanted_range);
player->keyPressed = keyPressed;
player->control.up = (keyPressed & 1);
player->control.down = (keyPressed & 2);