Refactoring. Client and server has Update Loop that runs before any game logic each frame.

This commit is contained in:
stiffly
2015-12-15 14:53:56 +01:00
parent 0a8a9e5099
commit 478c692315
8 changed files with 88 additions and 57 deletions
+16 -2
View File
@@ -41,6 +41,17 @@ void Client::Start(World* world, EventBroker* eventBroker)
ReadFromServer();
}
void Client::Update()
{
while (m_PlayersToCreate.size() > 0) {
unsigned int i = m_PlayersToCreate.size() - 1;
m_PlayerDefinitions[m_PlayersToCreate[i]].EntityID = m_World->CreateEntity();
ComponentWrapper transform = m_World->AttachComponent(m_PlayerDefinitions[m_PlayersToCreate[i]].EntityID, "Transform");
ComponentWrapper model = m_World->AttachComponent(m_PlayerDefinitions[m_PlayersToCreate[i]].EntityID, "Model");
model["Resource"] = "Models/Core/UnitSphere.obj";
}
}
void Client::Close()
{
if (m_WasStarted) {
@@ -210,6 +221,7 @@ void Client::ParseSnapshot(char* data, size_t length)
// New player connected on the server side
if (m_PlayerDefinitions[i].Name == "" && tempName != "") {
//CreateNewPlayer(i);
m_PlayersToCreate.push_back(i);
} else if (m_PlayerDefinitions[i].Name != "" && tempName == "") {
// Someone disconnected
// TODO: Insert code here
@@ -217,8 +229,10 @@ void Client::ParseSnapshot(char* data, size_t length)
// Not a connected player
break;
}
//m_World->GetComponent(m_PlayerDefinitions[i].EntityID, "Transform")["Position"] = playerPos;
m_PlayerDefinitions[i].Name = tempName;
if (m_PlayerDefinitions[i].EntityID != -1) {
m_World->GetComponent(m_PlayerDefinitions[i].EntityID, "Transform")["Position"] = playerPos;
m_PlayerDefinitions[i].Name = tempName;
}
}
}