show integrated server stats

This commit is contained in:
2023-08-14 18:10:05 +02:00
parent 49a5a09537
commit ee5a27ac54
5 changed files with 59 additions and 1 deletions

View File

@@ -1,4 +1,5 @@
#include "client/render/gui/MainMenu.h"
#include "client/render/gui/ServerGui.h"
#include "client/Client.h"
@@ -19,7 +20,12 @@ MainMenu::~MainMenu() {
void MainMenu::Render() {
if (m_Server != nullptr && !m_Server->IsRunning()) {
m_Server.reset(0); // destroying server if it stoped
m_Server.reset(); // destroying server if it stoped
m_ServerGui.reset();
}
if(m_Server != nullptr){
m_ServerGui->Render();
}
if (m_Client->IsConnected()) return;
@@ -83,8 +89,10 @@ bool MainMenu::StartServer() {
m_Server = std::make_unique<td::server::Server>();
m_Server->LoadMap(m_WorldFilePath);
if (!m_Server->Start(m_ServerPort, false)) {
m_Server.reset();
return false;
}
m_ServerGui = std::make_unique<ServerGui>(m_Client, m_Server.get());
return true;
}

View File

@@ -0,0 +1,27 @@
#include "client/render/gui/ServerGui.h"
#include "client/render/gui/imgui/imgui.h"
namespace td {
namespace gui {
ServerGui::ServerGui(client::Client* client, server::Server* server) : GuiWidget(client), m_Server(server) {}
void ServerGui::Render() {
ImGui::Begin("Integrated Server");
ImGui::Text("Server TPS : %.1f", m_Server->GetTPS());
ImGui::Text("Server MSPT : %i", (int)m_Server->GetMSPT());
ImGui::Separator();
if (ImGui::Button("Restart")) {
m_Server->Restart();
}
ImGui::SameLine();
if (ImGui::Button("Stop")) {
m_Server->Stop();
}
ImGui::End();
}
} // namespace gui
} // namespace td