Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2023-07-04 04:42:16 +1000
committerKae <80987908+Novaenia@users.noreply.github.com>2023-07-04 04:42:16 +1000
commitc343a7dfafb0b2e5e063ec83fd87cd05d5387b13 (patch)
treed525d784492eadc66963fb4af20b8d2b9f6ec48b /source
parent081dd693ca57ef624342e729c5b27b2e5da98410 (diff)
Add toggle for debug HUD
Diffstat (limited to 'source')
-rw-r--r--source/frontend/StarClientCommandProcessor.cpp18
-rw-r--r--source/frontend/StarClientCommandProcessor.hpp4
-rw-r--r--source/frontend/StarMainInterface.cpp74
3 files changed, 55 insertions, 41 deletions
diff --git a/source/frontend/StarClientCommandProcessor.cpp b/source/frontend/StarClientCommandProcessor.cpp
index b6ab53c..0f78ea0 100644
--- a/source/frontend/StarClientCommandProcessor.cpp
+++ b/source/frontend/StarClientCommandProcessor.cpp
@@ -21,7 +21,7 @@ ClientCommandProcessor::ClientCommandProcessor(UniverseClientPtr universeClient,
{"reload", bind(&ClientCommandProcessor::reload, this)},
{"whoami", bind(&ClientCommandProcessor::whoami, this)},
{"gravity", bind(&ClientCommandProcessor::gravity, this)},
- {"debug", bind(&ClientCommandProcessor::debug, this)},
+ {"debug", bind(&ClientCommandProcessor::debug, this, _1)},
{"boxes", bind(&ClientCommandProcessor::boxes, this)},
{"fullbright", bind(&ClientCommandProcessor::fullbright, this)},
{"asyncLighting", bind(&ClientCommandProcessor::asyncLighting, this)},
@@ -105,6 +105,10 @@ bool ClientCommandProcessor::debugDisplayEnabled() const {
return m_debugDisplayEnabled;
}
+bool ClientCommandProcessor::debugHudEnabled() const {
+ return m_debugHudEnabled;
+}
+
bool ClientCommandProcessor::fixedCameraEnabled() const {
return m_fixedCameraEnabled;
}
@@ -126,12 +130,18 @@ String ClientCommandProcessor::gravity() {
return strf("{}", m_universeClient->worldClient()->gravity(m_universeClient->mainPlayer()->position()));
}
-String ClientCommandProcessor::debug() {
+String ClientCommandProcessor::debug(StringList const& arguments) {
if (!adminCommandAllowed())
return "You must be an admin to use this command.";
- m_debugDisplayEnabled = !m_debugDisplayEnabled;
- return strf("Debug display {}", m_debugDisplayEnabled ? "enabled" : "disabled");
+ if (!arguments.empty() && arguments.at(0).equalsIgnoreCase("hud")) {
+ m_debugHudEnabled = !m_debugHudEnabled;
+ return strf("Debug HUD {}", m_debugHudEnabled ? "enabled" : "disabled");
+ }
+ else {
+ m_debugDisplayEnabled = !m_debugDisplayEnabled;
+ return strf("Debug display {}", m_debugDisplayEnabled ? "enabled" : "disabled");
+ }
}
String ClientCommandProcessor::boxes() {
diff --git a/source/frontend/StarClientCommandProcessor.hpp b/source/frontend/StarClientCommandProcessor.hpp
index 3093450..41809ed 100644
--- a/source/frontend/StarClientCommandProcessor.hpp
+++ b/source/frontend/StarClientCommandProcessor.hpp
@@ -19,6 +19,7 @@ public:
StringList handleCommand(String const& commandLine);
bool debugDisplayEnabled() const;
+ bool debugHudEnabled() const;
bool fixedCameraEnabled() const;
private:
@@ -28,7 +29,7 @@ private:
String reload();
String whoami();
String gravity();
- String debug();
+ String debug(StringList const& arguments);
String boxes();
String fullbright();
String asyncLighting();
@@ -66,6 +67,7 @@ private:
ShellParser m_parser;
LuaBaseComponent m_scriptComponent;
bool m_debugDisplayEnabled = false;
+ bool m_debugHudEnabled = true;
bool m_fixedCameraEnabled = false;
};
diff --git a/source/frontend/StarMainInterface.cpp b/source/frontend/StarMainInterface.cpp
index fb28e84..0475663 100644
--- a/source/frontend/StarMainInterface.cpp
+++ b/source/frontend/StarMainInterface.cpp
@@ -1257,50 +1257,52 @@ void MainInterface::renderDebug() {
LogMap::clear();
return;
}
+
+ if (m_clientCommandProcessor->debugHudEnabled()) {
+ auto assets = Root::singleton().assets();
+ m_guiContext->setFontSize(m_config->debugFontSize);
+ m_guiContext->setFont(m_config->debugFont);
+ m_guiContext->setLineSpacing(0.5f);
+ m_guiContext->setFontProcessingDirectives(m_config->debugFontDirectives);
+ m_guiContext->setFontColor(Color::White.toRgba());
+ m_guiContext->setFontMode(FontMode::Normal);
- auto assets = Root::singleton().assets();
- m_guiContext->setFontSize(m_config->debugFontSize);
- m_guiContext->setFont(m_config->debugFont);
- m_guiContext->setLineSpacing(0.5f);
- m_guiContext->setFontProcessingDirectives(m_config->debugFontDirectives);
- m_guiContext->setFontColor(Color::White.toRgba());
- m_guiContext->setFontMode(FontMode::Normal);
-
- bool clearMap = m_debugMapClearTimer.wrapTick();
- auto logMapValues = LogMap::getValues();
- if (clearMap)
- LogMap::clear();
+ bool clearMap = m_debugMapClearTimer.wrapTick();
+ auto logMapValues = LogMap::getValues();
+ if (clearMap)
+ LogMap::clear();
- List<String> formatted;
- formatted.reserve(logMapValues.size());
+ List<String> formatted;
+ formatted.reserve(logMapValues.size());
- int counter = 0;
- for (auto const& pair : logMapValues) {
- TextPositioning positioning = {Vec2F(m_config->debugOffset[0], windowHeight() - m_config->debugOffset[1] - m_config->fontSize * interfaceScale() * counter++)};
- String& text = formatted.emplace_back(strf("{}^lightgray;:^green,set; {}", pair.first, pair.second));
- m_debugTextRect.combine(m_guiContext->determineTextSize(text, positioning).padded(m_config->debugBackgroundPad));
- }
+ int counter = 0;
+ for (auto const& pair : logMapValues) {
+ TextPositioning positioning = { Vec2F(m_config->debugOffset[0], windowHeight() - m_config->debugOffset[1] - m_config->fontSize * interfaceScale() * counter++) };
+ String& text = formatted.emplace_back(strf("{}^lightgray;:^green,set; {}", pair.first, pair.second));
+ m_debugTextRect.combine(m_guiContext->determineTextSize(text, positioning).padded(m_config->debugBackgroundPad));
+ }
- if (!m_debugTextRect.isNull()) {
- RenderQuad& quad = m_guiContext->renderer()->immediatePrimitives()
- .emplace_back(std::in_place_type_t<RenderQuad>(), m_debugTextRect, m_config->debugBackgroundColor.toRgba(), 0.0f).get<RenderQuad>();
+ if (!m_debugTextRect.isNull()) {
+ RenderQuad& quad = m_guiContext->renderer()->immediatePrimitives()
+ .emplace_back(std::in_place_type_t<RenderQuad>(), m_debugTextRect, m_config->debugBackgroundColor.toRgba(), 0.0f).get<RenderQuad>();
- quad.b.color[3] = quad.c.color[3] = 0;
- };
+ quad.b.color[3] = quad.c.color[3] = 0;
+ };
- m_debugTextRect = RectF::null();
+ m_debugTextRect = RectF::null();
- counter = 0;
- for (auto const& pair : logMapValues) {
- TextPositioning positioning = {Vec2F(m_config->debugOffset[0], windowHeight() - m_config->debugOffset[1] - m_config->fontSize * interfaceScale() * counter)};
- m_guiContext->renderText(formatted[counter], positioning);
- ++counter;
+ counter = 0;
+ for (auto const& pair : logMapValues) {
+ TextPositioning positioning = { Vec2F(m_config->debugOffset[0], windowHeight() - m_config->debugOffset[1] - m_config->fontSize * interfaceScale() * counter) };
+ m_guiContext->renderText(formatted[counter], positioning);
+ ++counter;
+ }
+ m_guiContext->setFontSize(8);
+ m_guiContext->setDefaultFont();
+ m_guiContext->setDefaultLineSpacing();
+ m_guiContext->setFontColor(Vec4B::filled(255));
+ m_guiContext->setFontProcessingDirectives("");
}
- m_guiContext->setFontSize(8);
- m_guiContext->setDefaultFont();
- m_guiContext->setDefaultLineSpacing();
- m_guiContext->setFontColor(Vec4B::filled(255));
- m_guiContext->setFontProcessingDirectives("");
auto const& camera = m_worldPainter->camera();