Scoreboard is now works.
This commit is contained in:
@@ -74,6 +74,7 @@ private:
|
||||
void reliableBroadcast(Packet& packet);
|
||||
void unreliableBroadcast(Packet& packet);
|
||||
void sendSnapshot();
|
||||
void createWorldSnapshot(Packet& packet);
|
||||
void addPlayersToPacket(Packet& packet, EntityID entityID);
|
||||
void addChildrenToPacket(Packet& packet, EntityID entityID);
|
||||
void addInputCommandsToPacket(Packet& packet);
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "Core/EPlayerSpawned.h"
|
||||
#include "Network/EPlayerConnected.h"
|
||||
#include "Network/EPlayerDisconnected.h"
|
||||
#include "Game/Events/EReset.h"
|
||||
#include "GLM.h"
|
||||
|
||||
class ScoreScreenSystem : public PureSystem
|
||||
@@ -25,6 +26,8 @@ public:
|
||||
bool OnPlayerConnected(const Events::PlayerConnected& e);
|
||||
EventRelay<ScoreScreenSystem, Events::PlayerDisconnected> m_EPlayerDisconnected;
|
||||
bool OnPlayerDisconnected(const Events::PlayerDisconnected& e);
|
||||
EventRelay<ScoreScreenSystem, Events::Reset> m_EReset;
|
||||
bool OnReset(const Events::Reset& e);
|
||||
|
||||
private:
|
||||
struct PlayerData {
|
||||
|
||||
@@ -174,10 +174,16 @@ void Server::sendSnapshot()
|
||||
Packet packet(MessageType::Snapshot);
|
||||
addInputCommandsToPacket(packet);
|
||||
addPlayersToPacket(packet, EntityID_Invalid);
|
||||
//addChildrenToPacket(packet, EntityID_Invalid);
|
||||
unreliableBroadcast(packet);
|
||||
}
|
||||
|
||||
// Send snapshot fields
|
||||
void Server::createWorldSnapshot(Packet& packet)
|
||||
{
|
||||
addInputCommandsToPacket(packet);
|
||||
addChildrenToPacket(packet, EntityID_Invalid);
|
||||
}
|
||||
|
||||
void Server::addInputCommandsToPacket(Packet& packet)
|
||||
{
|
||||
// Number of input commands
|
||||
@@ -380,8 +386,7 @@ void Server::parseTCPConnect(Packet & packet)
|
||||
m_Reliable.Send(connnectPacket, m_ConnectedPlayers.at(playerID));
|
||||
|
||||
Packet firstSnapshot(MessageType::Snapshot);
|
||||
addInputCommandsToPacket(firstSnapshot);
|
||||
addChildrenToPacket(firstSnapshot, EntityID_Invalid);
|
||||
createWorldSnapshot(firstSnapshot);
|
||||
m_Reliable.Send(firstSnapshot);
|
||||
|
||||
// Send notification that a player has connected
|
||||
@@ -545,6 +550,7 @@ bool Server::OnPlayerDeath(const Events::PlayerDeath& e)
|
||||
|
||||
bool Server::OnWin(const Events::Win & e)
|
||||
{
|
||||
// Postpone this code and trigger after some time in a update
|
||||
Events::Reset reset;
|
||||
m_EventBroker->Publish(reset);
|
||||
Packet removeMap(MessageType::RemoveWorld);
|
||||
@@ -554,6 +560,7 @@ bool Server::OnWin(const Events::Win & e)
|
||||
auto entityFile = ResourceManager::Load<EntityFile>("Schema/Entities/CP_Rocky2.xml");
|
||||
entityFile->MergeInto(m_World);
|
||||
Packet newWorld(MessageType::Snapshot);
|
||||
createWorldSnapshot(newWorld);
|
||||
reliableBroadcast(newWorld);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ ScoreScreenSystem::ScoreScreenSystem(SystemParams params)
|
||||
EVENT_SUBSCRIBE_MEMBER(m_EPlayerSpawned, &ScoreScreenSystem::OnPlayerSpawn);
|
||||
EVENT_SUBSCRIBE_MEMBER(m_EPlayerConnected, &ScoreScreenSystem::OnPlayerConnected);
|
||||
EVENT_SUBSCRIBE_MEMBER(m_EPlayerDisconnected, &ScoreScreenSystem::OnPlayerDisconnected);
|
||||
EVENT_SUBSCRIBE_MEMBER(m_EReset, &ScoreScreenSystem::OnReset);
|
||||
}
|
||||
|
||||
void ScoreScreenSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& scoreScreen, double dt)
|
||||
@@ -156,3 +157,14 @@ bool ScoreScreenSystem::OnPlayerDisconnected(const Events::PlayerDisconnected& e
|
||||
m_DisconnectedIdentities.push_back(e.PlayerID);
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool ScoreScreenSystem::OnReset(const Events::Reset & e)
|
||||
{
|
||||
for (auto& it : m_PlayerIdentities) {
|
||||
it.second.Deaths = 0;
|
||||
it.second.Kills = 0;
|
||||
it.second.Team = 1;
|
||||
it.second.Player = EntityWrapper::Invalid;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ SpectatorCameraSystem::SpectatorCameraSystem(SystemParams params)
|
||||
{
|
||||
EVENT_SUBSCRIBE_MEMBER(m_EInputCommand, &SpectatorCameraSystem::OnInputCommand);
|
||||
EVENT_SUBSCRIBE_MEMBER(m_EDisconnect, &SpectatorCameraSystem::OnDisconnect);
|
||||
EVENT_SUBSCRIBE_MEMBER(m_EReset, &SpectatorCameraSystem::OnReset);
|
||||
}
|
||||
|
||||
void SpectatorCameraSystem::Update(double dt)
|
||||
|
||||
Reference in New Issue
Block a user