forked from Mirrorlandia_minetest/minetest
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.
|
* `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.
|
This includes map seed, player position, look direction, the pointed node and block bounds.
|
||||||
Does not affect players with the `debug` privilege.
|
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
|
* If a flag equals `nil`, the flag is not modified
|
||||||
* `hud_get_flags()`: returns a table of player HUD flags with boolean values.
|
* `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.
|
* 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)) {
|
} else if (wasKeyDown(KeyType::MINIMAP)) {
|
||||||
toggleMinimap(isKeyDown(KeyType::SNEAK));
|
toggleMinimap(isKeyDown(KeyType::SNEAK));
|
||||||
} else if (wasKeyDown(KeyType::TOGGLE_CHAT)) {
|
} else if (wasKeyDown(KeyType::TOGGLE_CHAT)) {
|
||||||
m_game_ui->toggleChat();
|
m_game_ui->toggleChat(client);
|
||||||
} else if (wasKeyDown(KeyType::TOGGLE_FOG)) {
|
} else if (wasKeyDown(KeyType::TOGGLE_FOG)) {
|
||||||
toggleFog();
|
toggleFog();
|
||||||
} else if (wasKeyDown(KeyType::TOGGLE_UPDATE_CAMERA)) {
|
} 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();
|
v2u32 screensize = RenderingEngine::getWindowSize();
|
||||||
|
|
||||||
|
LocalPlayer *player = client->getEnv().getLocalPlayer();
|
||||||
|
|
||||||
s32 minimal_debug_height = 0;
|
s32 minimal_debug_height = 0;
|
||||||
|
|
||||||
// Minimal debug text must only contain info that can't give a gameplay advantage
|
// 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
|
// Basic debug text also shows info that might give a gameplay advantage
|
||||||
if (m_flags.show_basic_debug) {
|
if (m_flags.show_basic_debug) {
|
||||||
LocalPlayer *player = client->getEnv().getLocalPlayer();
|
|
||||||
v3f player_position = player->getPosition();
|
v3f player_position = player->getPosition();
|
||||||
|
|
||||||
std::ostringstream os(std::ios_base::binary);
|
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);
|
m_guitext_status->enableOverrideColor(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hide chat when console is visible
|
// Hide chat when disabled by server or when console is visible
|
||||||
m_guitext_chat->setVisible(isChatVisible() && !chat_console->isVisible());
|
m_guitext_chat->setVisible(isChatVisible() && !chat_console->isVisible() && (player->hud_flags & HUD_FLAG_CHAT_VISIBLE));
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameUI::initFlags()
|
void GameUI::initFlags()
|
||||||
@ -287,13 +288,18 @@ void GameUI::updateProfiler()
|
|||||||
m_guitext_profiler->setVisible(m_profiler_current_page != 0);
|
m_guitext_profiler->setVisible(m_profiler_current_page != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameUI::toggleChat()
|
void GameUI::toggleChat(Client *client)
|
||||||
{
|
{
|
||||||
|
if (client->getEnv().getLocalPlayer()->hud_flags & HUD_FLAG_CHAT_VISIBLE) {
|
||||||
m_flags.show_chat = !m_flags.show_chat;
|
m_flags.show_chat = !m_flags.show_chat;
|
||||||
if (m_flags.show_chat)
|
if (m_flags.show_chat)
|
||||||
showTranslatedStatusText("Chat shown");
|
showTranslatedStatusText("Chat shown");
|
||||||
else
|
else
|
||||||
showTranslatedStatusText("Chat hidden");
|
showTranslatedStatusText("Chat hidden");
|
||||||
|
} else {
|
||||||
|
showTranslatedStatusText("Chat currently disabled by game or mod");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameUI::toggleHud()
|
void GameUI::toggleHud()
|
||||||
|
@ -93,7 +93,7 @@ public:
|
|||||||
|
|
||||||
void updateProfiler();
|
void updateProfiler();
|
||||||
|
|
||||||
void toggleChat();
|
void toggleChat(Client *client);
|
||||||
void toggleHud();
|
void toggleHud();
|
||||||
void toggleProfiler();
|
void toggleProfiler();
|
||||||
|
|
||||||
|
@ -64,5 +64,6 @@ const struct EnumString es_HudBuiltinElement[] =
|
|||||||
{HUD_FLAG_MINIMAP_VISIBLE, "minimap"},
|
{HUD_FLAG_MINIMAP_VISIBLE, "minimap"},
|
||||||
{HUD_FLAG_MINIMAP_RADAR_VISIBLE, "minimap_radar"},
|
{HUD_FLAG_MINIMAP_RADAR_VISIBLE, "minimap_radar"},
|
||||||
{HUD_FLAG_BASIC_DEBUG, "basic_debug"},
|
{HUD_FLAG_BASIC_DEBUG, "basic_debug"},
|
||||||
|
{HUD_FLAG_CHAT_VISIBLE, "chat"},
|
||||||
{0, NULL},
|
{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_VISIBLE (1 << 5)
|
||||||
#define HUD_FLAG_MINIMAP_RADAR_VISIBLE (1 << 6)
|
#define HUD_FLAG_MINIMAP_RADAR_VISIBLE (1 << 6)
|
||||||
#define HUD_FLAG_BASIC_DEBUG (1 << 7)
|
#define HUD_FLAG_BASIC_DEBUG (1 << 7)
|
||||||
|
#define HUD_FLAG_CHAT_VISIBLE (1 << 8)
|
||||||
|
|
||||||
#define HUD_PARAM_HOTBAR_ITEMCOUNT 1
|
#define HUD_PARAM_HOTBAR_ITEMCOUNT 1
|
||||||
#define HUD_PARAM_HOTBAR_IMAGE 2
|
#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_HOTBAR_VISIBLE | HUD_FLAG_HEALTHBAR_VISIBLE |
|
||||||
HUD_FLAG_CROSSHAIR_VISIBLE | HUD_FLAG_WIELDITEM_VISIBLE |
|
HUD_FLAG_CROSSHAIR_VISIBLE | HUD_FLAG_WIELDITEM_VISIBLE |
|
||||||
HUD_FLAG_BREATHBAR_VISIBLE | HUD_FLAG_MINIMAP_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;
|
hud_hotbar_itemcount = HUD_HOTBAR_ITEMCOUNT_DEFAULT;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user