show integrated server stats
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
27
src/client/render/gui/ServerGui.cpp
Normal file
27
src/client/render/gui/ServerGui.cpp
Normal 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
|
||||
Reference in New Issue
Block a user