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:
parent
7162b536eb
commit
91ba02449b
8 changed files with 40 additions and 3 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue