1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-08-06 17:41:04 +00:00

Add minetest.get_player_window_information() (#12367)

This commit is contained in:
rubenwardy 2023-02-27 22:58:41 +00:00 committed by GitHub
parent fbbdae93ee
commit 39f4d26177
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 345 additions and 35 deletions

View file

@ -223,4 +223,5 @@ const ServerCommandFactory serverCommandFactoryTable[TOSERVER_NUM_MSG_TYPES] =
{ "TOSERVER_FIRST_SRP", 1, true }, // 0x50
{ "TOSERVER_SRP_BYTES_A", 1, true }, // 0x51
{ "TOSERVER_SRP_BYTES_M", 1, true }, // 0x52
{ "TOSERVER_UPDATE_CLIENT_INFO", 1, true }, // 0x53
};

View file

@ -1062,7 +1062,15 @@ enum ToServerCommand
std::string bytes_M
*/
TOSERVER_NUM_MSG_TYPES = 0x53,
TOSERVER_UPDATE_CLIENT_INFO = 0x53,
/*
v2s16 render_target_size
f32 gui_scaling
f32 hud_scaling
v2f32 max_fs_info
*/
TOSERVER_NUM_MSG_TYPES = 0x54,
};
enum AuthMechanism

View file

@ -107,6 +107,7 @@ const ToServerCommandHandler toServerCommandTable[TOSERVER_NUM_MSG_TYPES] =
{ "TOSERVER_FIRST_SRP", TOSERVER_STATE_NOT_CONNECTED, &Server::handleCommand_FirstSrp }, // 0x50
{ "TOSERVER_SRP_BYTES_A", TOSERVER_STATE_NOT_CONNECTED, &Server::handleCommand_SrpBytesA }, // 0x51
{ "TOSERVER_SRP_BYTES_M", TOSERVER_STATE_NOT_CONNECTED, &Server::handleCommand_SrpBytesM }, // 0x52
{ "TOSERVER_UPDATE_CLIENT_INFO", TOSERVER_STATE_INGAME, &Server::handleCommand_UpdateClientInfo }, // 0x53
};
const static ClientCommandFactory null_command_factory = { "TOCLIENT_NULL", 0, false };

View file

@ -40,6 +40,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "util/pointedthing.h"
#include "util/serialize.h"
#include "util/srp.h"
#include "clientdynamicinfo.h"
void Server::handleCommand_Deprecated(NetworkPacket* pkt)
{
@ -1841,3 +1842,18 @@ void Server::handleCommand_HaveMedia(NetworkPacket *pkt)
}
}
}
void Server::handleCommand_UpdateClientInfo(NetworkPacket *pkt)
{
ClientDynamicInfo info;
*pkt >> info.render_target_size.X;
*pkt >> info.render_target_size.Y;
*pkt >> info.real_gui_scaling;
*pkt >> info.real_hud_scaling;
*pkt >> info.max_fs_size.X;
*pkt >> info.max_fs_size.Y;
session_t peer_id = pkt->getPeerId();
RemoteClient *client = getClient(peer_id, CS_Invalid);
client->setDynamicInfo(info);
}