Show status message when changing block bounds (#11556)

This commit is contained in:
Wuzzy 2021-08-21 11:53:49 +00:00 committed by GitHub
parent e7b05beb7d
commit 6fd8aede48
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 12 deletions

View File

@ -2193,7 +2193,24 @@ void Game::toggleCinematic()
void Game::toggleBlockBounds()
{
if (client->checkPrivilege("basic_debug")) {
hud->toggleBlockBounds();
enum Hud::BlockBoundsMode newmode = hud->toggleBlockBounds();
switch (newmode) {
case Hud::BLOCK_BOUNDS_OFF:
m_game_ui->showTranslatedStatusText("Block bounds hidden");
break;
case Hud::BLOCK_BOUNDS_CURRENT:
m_game_ui->showTranslatedStatusText("Block bounds shown for current block");
break;
case Hud::BLOCK_BOUNDS_NEAR:
m_game_ui->showTranslatedStatusText("Block bounds shown for nearby blocks");
break;
case Hud::BLOCK_BOUNDS_MAX:
m_game_ui->showTranslatedStatusText("Block bounds shown for all blocks");
break;
default:
break;
}
} else {
m_game_ui->showTranslatedStatusText("Can't show block bounds (need 'basic_debug' privilege)");
}

View File

@ -857,13 +857,14 @@ void Hud::drawSelectionMesh()
}
}
void Hud::toggleBlockBounds()
enum Hud::BlockBoundsMode Hud::toggleBlockBounds()
{
m_block_bounds_mode = static_cast<BlockBoundsMode>(m_block_bounds_mode + 1);
if (m_block_bounds_mode >= BLOCK_BOUNDS_MAX) {
m_block_bounds_mode = BLOCK_BOUNDS_OFF;
}
return m_block_bounds_mode;
}
void Hud::disableBlockBounds()
@ -890,7 +891,7 @@ void Hud::drawBlockBounds()
v3f offset = intToFloat(client->getCamera()->getOffset(), BS);
s8 radius = m_block_bounds_mode == BLOCK_BOUNDS_ALL ? 2 : 0;
s8 radius = m_block_bounds_mode == BLOCK_BOUNDS_NEAR ? 2 : 0;
v3f halfNode = v3f(BS, BS, BS) / 2.0f;

View File

@ -35,6 +35,14 @@ struct ItemStack;
class Hud
{
public:
enum BlockBoundsMode
{
BLOCK_BOUNDS_OFF,
BLOCK_BOUNDS_CURRENT,
BLOCK_BOUNDS_NEAR,
BLOCK_BOUNDS_MAX
} m_block_bounds_mode = BLOCK_BOUNDS_OFF;
video::SColor crosshair_argb;
video::SColor selectionbox_argb;
@ -51,7 +59,7 @@ public:
Inventory *inventory);
~Hud();
void toggleBlockBounds();
enum BlockBoundsMode toggleBlockBounds();
void disableBlockBounds();
void drawBlockBounds();
@ -127,14 +135,6 @@ private:
scene::SMeshBuffer m_rotation_mesh_buffer;
enum BlockBoundsMode
{
BLOCK_BOUNDS_OFF,
BLOCK_BOUNDS_CURRENT,
BLOCK_BOUNDS_ALL,
BLOCK_BOUNDS_MAX
} m_block_bounds_mode = BLOCK_BOUNDS_OFF;
enum
{
HIGHLIGHT_BOX,