]> git.lizzy.rs Git - minetest.git/commitdiff
Show status message when changing block bounds (#11556)
authorWuzzy <wuzzy2@mail.ru>
Sat, 21 Aug 2021 11:53:49 +0000 (11:53 +0000)
committerGitHub <noreply@github.com>
Sat, 21 Aug 2021 11:53:49 +0000 (13:53 +0200)
src/client/game.cpp
src/client/hud.cpp
src/client/hud.h

index 90bfab2a3133a0d7e11d6f958bc8ce7c7b324643..011875e4ac1612c38d1bdf972d1024e634212fc0 100644 (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)");
        }
index c5bf0f2f8a306ef764a72ce234a91c4b020ebb99..e92f5a73de14e2c8f37beacf5022c298d7838cb4 100644 (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;
 
index e228c1d52158c71715c7f5e462c5172bbb5a8af5..fd79183a00dbb99b357bddd8984a5efda623a7fb 100644 (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 @@ class Hud
                        Inventory *inventory);
        ~Hud();
 
-       void toggleBlockBounds();
+       enum BlockBoundsMode toggleBlockBounds();
        void disableBlockBounds();
        void drawBlockBounds();
 
@@ -127,14 +135,6 @@ class Hud
 
        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,