1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-09-15 18:57:08 +00:00

Add touch_controls boolean to get_player_window_information() (#14092)

This commit is contained in:
grorp 2023-12-17 20:47:07 +01:00 committed by GitHub
parent 7162b536eb
commit 91ba02449b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 40 additions and 3 deletions

View file

@ -1439,6 +1439,7 @@ void Client::sendUpdateClientInfo(const ClientDynamicInfo& info)
pkt << info.real_gui_scaling;
pkt << info.real_hud_scaling;
pkt << (f32)info.max_fs_size.X << (f32)info.max_fs_size.Y;
pkt << info.touch_controls;
Send(&pkt);
}

View file

@ -33,11 +33,13 @@ public:
f32 real_gui_scaling;
f32 real_hud_scaling;
v2f32 max_fs_size;
bool touch_controls;
bool equal(const ClientDynamicInfo &other) const {
return render_target_size == other.render_target_size &&
abs(real_gui_scaling - other.real_gui_scaling) < 0.001f &&
abs(real_hud_scaling - other.real_hud_scaling) < 0.001f;
abs(real_hud_scaling - other.real_hud_scaling) < 0.001f &&
touch_controls == other.touch_controls;
}
#ifndef SERVER
@ -48,10 +50,16 @@ public:
f32 hud_scaling = g_settings->getFloat("hud_scaling", 0.5f, 20.0f);
f32 real_gui_scaling = gui_scaling * density;
f32 real_hud_scaling = hud_scaling * density;
#ifdef HAVE_TOUCHSCREENGUI
bool touch_controls = true;
#else
bool touch_controls = false;
#endif
return {
screen_size, real_gui_scaling, real_hud_scaling,
ClientDynamicInfo::calculateMaxFSSize(screen_size, gui_scaling)
ClientDynamicInfo::calculateMaxFSSize(screen_size, gui_scaling),
touch_controls
};
}
#endif

View file

@ -1873,6 +1873,12 @@ void Server::handleCommand_UpdateClientInfo(NetworkPacket *pkt)
*pkt >> info.real_hud_scaling;
*pkt >> info.max_fs_size.X;
*pkt >> info.max_fs_size.Y;
try {
// added in 5.9.0
*pkt >> info.touch_controls;
} catch (PacketError &e) {
info.touch_controls = false;
}
session_t peer_id = pkt->getPeerId();
RemoteClient *client = getClient(peer_id, CS_Invalid);

View file

@ -946,6 +946,10 @@ int ModApiMainMenu::l_get_window_info(lua_State *L)
lua_pushnumber(L, info.real_hud_scaling);
lua_settable(L, top);
lua_pushstring(L, "touch_controls");
lua_pushboolean(L, info.touch_controls);
lua_settable(L, top);
return 1;
}

View file

@ -317,6 +317,11 @@ int ModApiServer::l_get_player_window_information(lua_State *L)
lua_pushstring(L, "real_hud_scaling");
lua_pushnumber(L, dynamic->real_hud_scaling);
lua_settable(L, dyn_table);
lua_pushstring(L, "touch_controls");
lua_pushboolean(L, dynamic->touch_controls);
lua_settable(L, dyn_table);
return 1;
}