aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtin/client/cheats.lua1
-rw-r--r--src/client/gameui.cpp22
-rw-r--r--src/client/gameui.h3
-rw-r--r--src/defaultsettings.cpp1
4 files changed, 23 insertions, 4 deletions
diff --git a/builtin/client/cheats.lua b/builtin/client/cheats.lua
index 7290140dd..17347b8ae 100644
--- a/builtin/client/cheats.lua
+++ b/builtin/client/cheats.lua
@@ -20,6 +20,7 @@ core.cheats = {
["HUDBypass"] = "hud_flags_bypass",
["NoHurtCam"] = "no_hurt_cam",
["BrightNight"] = "no_night",
+ ["Coords"] = "coords",
},
["World"] = {
["FastDig"] = "fastdig",
diff --git a/src/client/gameui.cpp b/src/client/gameui.cpp
index d34f7343c..8e6c82b11 100644
--- a/src/client/gameui.cpp
+++ b/src/client/gameui.cpp
@@ -53,6 +53,9 @@ GameUI::GameUI()
}
void GameUI::init()
{
+ m_guitext_coords = gui::StaticText::add(guienv, L"", core::rect<s32>(0, 0, 0, 0), false,
+ false, guiroot);
+
// First line of debug text
m_guitext = gui::StaticText::add(guienv, utf8_to_wide(PROJECT_NAME_C).c_str(),
core::rect<s32>(0, 0, 0, 0), false, false, guiroot);
@@ -94,8 +97,24 @@ void GameUI::update(const RunStats &stats, Client *client, MapDrawControl *draw_
const CameraOrientation &cam, const PointedThing &pointed_old,
const GUIChatConsole *chat_console, float dtime)
{
+ LocalPlayer *player = client->getEnv().getLocalPlayer();
+ v3f player_position = player->getPosition();
v2u32 screensize = RenderingEngine::get_instance()->getWindowSize();
+ bool show_coords = g_settings->getBool("coords");
+
+ if (show_coords) {
+ std::ostringstream os(std::ios_base::binary);
+ os << std::setprecision(1) << std::fixed
+ << (player_position.X / BS)
+ << ", " << (player_position.Y / BS)
+ << ", " << (player_position.Z / BS);
+ setStaticText(m_guitext_coords, utf8_to_wide(os.str()).c_str());
+ m_guitext_coords->setRelativePosition(core::rect<s32>(5, screensize.Y - 5 - g_fontengine->getTextHeight(), screensize.X, screensize.Y));
+ }
+
+ m_guitext_coords->setVisible(show_coords);
+
if (m_flags.show_debug) {
static float drawtime_avg = 0;
drawtime_avg = drawtime_avg * 0.95 + stats.drawtime * 0.05;
@@ -125,9 +144,6 @@ void GameUI::update(const RunStats &stats, Client *client, MapDrawControl *draw_
m_guitext->setVisible(m_flags.show_debug);
if (m_flags.show_debug) {
- LocalPlayer *player = client->getEnv().getLocalPlayer();
- v3f player_position = player->getPosition();
-
std::ostringstream os(std::ios_base::binary);
os << std::setprecision(1) << std::fixed
<< "pos: (" << (player_position.X / BS)
diff --git a/src/client/gameui.h b/src/client/gameui.h
index 0b6298c78..8a1b5650d 100644
--- a/src/client/gameui.h
+++ b/src/client/gameui.h
@@ -111,7 +111,8 @@ private:
gui::IGUIStaticText *m_guitext = nullptr; // First line of debug text
gui::IGUIStaticText *m_guitext2 = nullptr; // Second line of debug text
-
+ gui::IGUIStaticText *m_guitext_coords = nullptr;
+
gui::IGUIStaticText *m_guitext_info = nullptr; // At the middle of the screen
std::wstring m_infotext;
diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp
index fe3dc3836..77592009f 100644
--- a/src/defaultsettings.cpp
+++ b/src/defaultsettings.cpp
@@ -87,6 +87,7 @@ void set_default_settings(Settings *settings)
settings->setDefault("instant_break", "false");
settings->setDefault("highway", "false");
settings->setDefault("no_night", "false");
+ settings->setDefault("coords", "false");
// Keymap
settings->setDefault("remote_port", "30000");