mirror of
https://github.com/minetest/minetest.git
synced 2024-11-27 01:53:45 +01:00
Add chat HUD flag (#13189)
This commit is contained in:
parent
cf19167e99
commit
af4009d924
@ -7274,6 +7274,8 @@ child will follow movement and rotation of that bone.
|
||||
* `basic_debug`: Allow showing basic debug info that might give a gameplay advantage.
|
||||
This includes map seed, player position, look direction, the pointed node and block bounds.
|
||||
Does not affect players with the `debug` privilege.
|
||||
* `chat`: Modifies the client's permission to view chat on the HUD.
|
||||
The client may locally elect to not view chat. Does not affect the console.
|
||||
* If a flag equals `nil`, the flag is not modified
|
||||
* `hud_get_flags()`: returns a table of player HUD flags with boolean values.
|
||||
* See `hud_set_flags` for a list of flags that can be toggled.
|
||||
|
@ -2085,7 +2085,7 @@ void Game::processKeyInput()
|
||||
} else if (wasKeyDown(KeyType::MINIMAP)) {
|
||||
toggleMinimap(isKeyDown(KeyType::SNEAK));
|
||||
} else if (wasKeyDown(KeyType::TOGGLE_CHAT)) {
|
||||
m_game_ui->toggleChat();
|
||||
m_game_ui->toggleChat(client);
|
||||
} else if (wasKeyDown(KeyType::TOGGLE_FOG)) {
|
||||
toggleFog();
|
||||
} else if (wasKeyDown(KeyType::TOGGLE_UPDATE_CAMERA)) {
|
||||
|
@ -102,6 +102,8 @@ void GameUI::update(const RunStats &stats, Client *client, MapDrawControl *draw_
|
||||
{
|
||||
v2u32 screensize = RenderingEngine::getWindowSize();
|
||||
|
||||
LocalPlayer *player = client->getEnv().getLocalPlayer();
|
||||
|
||||
s32 minimal_debug_height = 0;
|
||||
|
||||
// Minimal debug text must only contain info that can't give a gameplay advantage
|
||||
@ -137,7 +139,6 @@ void GameUI::update(const RunStats &stats, Client *client, MapDrawControl *draw_
|
||||
|
||||
// Basic debug text also shows info that might give a gameplay advantage
|
||||
if (m_flags.show_basic_debug) {
|
||||
LocalPlayer *player = client->getEnv().getLocalPlayer();
|
||||
v3f player_position = player->getPosition();
|
||||
|
||||
std::ostringstream os(std::ios_base::binary);
|
||||
@ -208,8 +209,8 @@ void GameUI::update(const RunStats &stats, Client *client, MapDrawControl *draw_
|
||||
m_guitext_status->enableOverrideColor(true);
|
||||
}
|
||||
|
||||
// Hide chat when console is visible
|
||||
m_guitext_chat->setVisible(isChatVisible() && !chat_console->isVisible());
|
||||
// Hide chat when disabled by server or when console is visible
|
||||
m_guitext_chat->setVisible(isChatVisible() && !chat_console->isVisible() && (player->hud_flags & HUD_FLAG_CHAT_VISIBLE));
|
||||
}
|
||||
|
||||
void GameUI::initFlags()
|
||||
@ -287,13 +288,18 @@ void GameUI::updateProfiler()
|
||||
m_guitext_profiler->setVisible(m_profiler_current_page != 0);
|
||||
}
|
||||
|
||||
void GameUI::toggleChat()
|
||||
void GameUI::toggleChat(Client *client)
|
||||
{
|
||||
m_flags.show_chat = !m_flags.show_chat;
|
||||
if (m_flags.show_chat)
|
||||
showTranslatedStatusText("Chat shown");
|
||||
else
|
||||
showTranslatedStatusText("Chat hidden");
|
||||
if (client->getEnv().getLocalPlayer()->hud_flags & HUD_FLAG_CHAT_VISIBLE) {
|
||||
m_flags.show_chat = !m_flags.show_chat;
|
||||
if (m_flags.show_chat)
|
||||
showTranslatedStatusText("Chat shown");
|
||||
else
|
||||
showTranslatedStatusText("Chat hidden");
|
||||
} else {
|
||||
showTranslatedStatusText("Chat currently disabled by game or mod");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void GameUI::toggleHud()
|
||||
|
@ -93,7 +93,7 @@ public:
|
||||
|
||||
void updateProfiler();
|
||||
|
||||
void toggleChat();
|
||||
void toggleChat(Client *client);
|
||||
void toggleHud();
|
||||
void toggleProfiler();
|
||||
|
||||
|
@ -64,5 +64,6 @@ const struct EnumString es_HudBuiltinElement[] =
|
||||
{HUD_FLAG_MINIMAP_VISIBLE, "minimap"},
|
||||
{HUD_FLAG_MINIMAP_RADAR_VISIBLE, "minimap_radar"},
|
||||
{HUD_FLAG_BASIC_DEBUG, "basic_debug"},
|
||||
{HUD_FLAG_CHAT_VISIBLE, "chat"},
|
||||
{0, NULL},
|
||||
};
|
||||
|
@ -48,6 +48,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
#define HUD_FLAG_MINIMAP_VISIBLE (1 << 5)
|
||||
#define HUD_FLAG_MINIMAP_RADAR_VISIBLE (1 << 6)
|
||||
#define HUD_FLAG_BASIC_DEBUG (1 << 7)
|
||||
#define HUD_FLAG_CHAT_VISIBLE (1 << 8)
|
||||
|
||||
#define HUD_PARAM_HOTBAR_ITEMCOUNT 1
|
||||
#define HUD_PARAM_HOTBAR_IMAGE 2
|
||||
|
@ -71,7 +71,8 @@ Player::Player(const char *name, IItemDefManager *idef):
|
||||
HUD_FLAG_HOTBAR_VISIBLE | HUD_FLAG_HEALTHBAR_VISIBLE |
|
||||
HUD_FLAG_CROSSHAIR_VISIBLE | HUD_FLAG_WIELDITEM_VISIBLE |
|
||||
HUD_FLAG_BREATHBAR_VISIBLE | HUD_FLAG_MINIMAP_VISIBLE |
|
||||
HUD_FLAG_MINIMAP_RADAR_VISIBLE | HUD_FLAG_BASIC_DEBUG;
|
||||
HUD_FLAG_MINIMAP_RADAR_VISIBLE | HUD_FLAG_BASIC_DEBUG |
|
||||
HUD_FLAG_CHAT_VISIBLE;
|
||||
|
||||
hud_hotbar_itemcount = HUD_HOTBAR_ITEMCOUNT_DEFAULT;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user