WIP
This commit is contained in:
@@ -0,0 +1,22 @@
|
|||||||
|
#ifndef ServerListSystem_h__
|
||||||
|
#define ServerListSystem_h__
|
||||||
|
|
||||||
|
#include "Core/System.h"
|
||||||
|
#include "Rendering/IRenderer.h"
|
||||||
|
#include "Core/ResourceManager.h"
|
||||||
|
#include "Core/Event.h"
|
||||||
|
#include "Systems/SpawnerSystem.h"
|
||||||
|
|
||||||
|
class ServerListSystem : public PureSystem
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ServerListSystem(SystemParams params, IRenderer* renderer);
|
||||||
|
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& cServerList, double dt) override;
|
||||||
|
|
||||||
|
void RefreshList();
|
||||||
|
|
||||||
|
private:
|
||||||
|
IRenderer* m_Renderer;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
<Entity name="ServerList" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity name="ServerList" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
<c:ServerIdentity/>
|
<c:ServerList/>
|
||||||
<c:Transform/>
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -36,7 +36,7 @@
|
|||||||
#include "Game/Systems/BoostIconsHUDSystem.h"
|
#include "Game/Systems/BoostIconsHUDSystem.h"
|
||||||
#include "Game/Systems/ScoreScreenSystem.h"
|
#include "Game/Systems/ScoreScreenSystem.h"
|
||||||
#include "GUI/ButtonSystem.h"
|
#include "GUI/ButtonSystem.h"
|
||||||
#include "GUI/MainMenuSystem.h"
|
#include "Game/Systems/MainMenuSystem.h"
|
||||||
|
|
||||||
|
|
||||||
Game::Game(int argc, char* argv[])
|
Game::Game(int argc, char* argv[])
|
||||||
|
|||||||
@@ -56,28 +56,44 @@ bool MainMenuSystem::OnButtonPress(const Events::ButtonPressed& e)
|
|||||||
|
|
||||||
bool MainMenuSystem::OnInputCommand(const Events::InputCommand& e)
|
bool MainMenuSystem::OnInputCommand(const Events::InputCommand& e)
|
||||||
{
|
{
|
||||||
if(e.Command == "Play") {
|
if(e.Command == "Play" && e.Value == 1) {
|
||||||
|
auto menus = m_World->GetComponents("Menu");
|
||||||
|
if (menus == nullptr) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_OpenSubMenu == EntityWrapper::Invalid) {
|
if (m_OpenSubMenu == EntityWrapper::Invalid) {
|
||||||
//No submenu is open, open one.
|
//No submenu is open, open one.
|
||||||
|
for (auto& menu : *menus) {
|
||||||
|
EntityWrapper menuEntity = EntityWrapper(m_World, menu.EntityID);
|
||||||
|
auto serverListSpawner = menuEntity.FirstChildByName(e.Command + "Spawner");
|
||||||
|
if (!serverListSpawner.HasComponent("Spawner")) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
m_OpenSubMenu = SpawnerSystem::Spawn(serverListSpawner, serverListSpawner);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
} else if(!m_OpenSubMenu.HasComponent("ServerList")) {
|
} else if(!m_OpenSubMenu.HasComponent("ServerList")) {
|
||||||
//Menu is open, but not the right one, delete the old one and open a new one.
|
//Menu is open, but not the right one, delete the old one and open a new one.
|
||||||
|
m_World->DeleteEntity(m_OpenSubMenu.ID);
|
||||||
|
m_OpenSubMenu = EntityWrapper::Invalid;
|
||||||
|
|
||||||
|
for (auto& menu : *menus) {
|
||||||
|
EntityWrapper menuEntity = EntityWrapper(m_World, menu.EntityID);
|
||||||
|
auto serverListSpawner = menuEntity.FirstChildByName(e.Command + "Spawner");
|
||||||
|
if (!serverListSpawner.HasComponent("Spawner")) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
m_OpenSubMenu = SpawnerSystem::Spawn(serverListSpawner, serverListSpawner);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
//Serverlist submenu is open, close it.
|
//Serverlist submenu is open, close it.
|
||||||
}
|
printf("\n\nMenuShit\n\n");
|
||||||
//Create new entity through the spawner. Should also despawn all other menus.
|
m_World->DeleteEntity(m_OpenSubMenu.ID);
|
||||||
auto menus = m_World->GetComponents("Menu");
|
m_OpenSubMenu = EntityWrapper::Invalid;
|
||||||
if(menus == nullptr) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
for (auto& menu : *menus) {
|
|
||||||
EntityWrapper menuEntity = EntityWrapper(m_World, menu.EntityID);
|
|
||||||
auto serverListSpawner = menuEntity.FirstChildByName(e.Command + "Spawner");
|
|
||||||
if(!serverListSpawner.HasComponent("Spawner")) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
m_OpenSubMenu = SpawnerSystem::Spawn(serverListSpawner, serverListSpawner);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
#include "../Game/Systems/ServerListSystem.h"
|
||||||
|
|
||||||
|
ServerListSystem::ServerListSystem(SystemParams params, IRenderer* renderer)
|
||||||
|
: System(params)
|
||||||
|
, PureSystem("ServerList")
|
||||||
|
, m_Renderer(renderer)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void ServerListSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& cServerList, double dt)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void ServerListSystem::RefreshList()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user