Reverted last commit. Also testing to delay OnPlayerSpawn event for clients. No progress...
This commit is contained in:
@@ -35,6 +35,8 @@ public:
|
||||
void Connect(std::string address, int port);
|
||||
void Update() override;
|
||||
|
||||
std::vector<Events::PlayerSpawned> m_PlayerSpawnEvents;
|
||||
void parseSpawnEvents();
|
||||
// Save for children
|
||||
std::unique_ptr<SnapshotFilter> m_SnapshotFilter = nullptr;
|
||||
|
||||
|
||||
@@ -54,7 +54,6 @@ void Client::Update()
|
||||
parseMessageType(packet);
|
||||
}
|
||||
}
|
||||
|
||||
while (m_Reliable.IsSocketAvailable()) {
|
||||
// Packet will get real data in receive
|
||||
Packet packet(MessageType::Invalid);
|
||||
@@ -177,14 +176,35 @@ void Client::parseKick()
|
||||
m_IsConnected = false;
|
||||
}
|
||||
|
||||
void Client::parseSpawnEvents()
|
||||
{
|
||||
for (int i = 0; i < m_PlayerSpawnEvents.size(); i++) {
|
||||
Events::PlayerSpawned e;
|
||||
e.Player = EntityWrapper(m_World, m_ServerIDToClientID[m_PlayerSpawnEvents[i].Player.ID]);
|
||||
e.Spawner = EntityWrapper(m_World, m_ServerIDToClientID[m_PlayerSpawnEvents[i].Spawner.ID]);
|
||||
e.PlayerID = -1;
|
||||
e.PlayerName = m_PlayerSpawnEvents[i].PlayerName;
|
||||
m_EventBroker->Publish(e);
|
||||
}
|
||||
m_PlayerSpawnEvents.clear();
|
||||
}
|
||||
|
||||
void Client::parsePlayersSpawned(Packet& packet)
|
||||
{
|
||||
//Events::PlayerSpawned e;
|
||||
//e.Player = EntityWrapper(m_World, m_ServerIDToClientID[packet.ReadPrimitive<EntityID>()]);
|
||||
//e.Spawner = EntityWrapper(m_World, m_ServerIDToClientID[packet.ReadPrimitive<EntityID>()]);
|
||||
//e.PlayerID = -1;
|
||||
//e.PlayerName = packet.ReadString();
|
||||
//m_EventBroker->Publish(e);
|
||||
|
||||
Events::PlayerSpawned e;
|
||||
e.Player = EntityWrapper(m_World, m_ServerIDToClientID[packet.ReadPrimitive<EntityID>()]);
|
||||
e.Spawner = EntityWrapper(m_World, m_ServerIDToClientID[packet.ReadPrimitive<EntityID>()]);
|
||||
e.Player = EntityWrapper(m_World, packet.ReadPrimitive<EntityID>());
|
||||
e.Spawner = EntityWrapper(m_World, packet.ReadPrimitive<EntityID>());
|
||||
e.PlayerID = -1;
|
||||
e.PlayerName = packet.ReadString();
|
||||
m_EventBroker->Publish(e);
|
||||
m_PlayerSpawnEvents.push_back(e);
|
||||
parseSpawnEvents();
|
||||
}
|
||||
|
||||
void Client::parseEntityDeletion(Packet & packet)
|
||||
@@ -322,6 +342,7 @@ void Client::parseSnapshot(Packet& packet)
|
||||
m_World->SetParent(localEntityID, m_ServerIDToClientID.at(serverParentID));
|
||||
}
|
||||
}
|
||||
// parseSpawnEvents();
|
||||
}
|
||||
|
||||
void Client::disconnect()
|
||||
|
||||
@@ -92,8 +92,7 @@ void PickingPass::Draw(RenderScene& scene)
|
||||
|
||||
m_PickingColorsToEntity[glm::ivec2(pickColor[0], pickColor[1])] = pickInfo;
|
||||
|
||||
if (modelJob->Model->IsSkinned())
|
||||
{
|
||||
if (modelJob->Model->IsSkinned()) {
|
||||
m_PickingSkinnedProgram->Bind();
|
||||
glUniformMatrix4fv(glGetUniformLocation(shaderSkinnedHandle, "M"), 1, GL_FALSE, glm::value_ptr(modelJob->Matrix));
|
||||
glUniformMatrix4fv(glGetUniformLocation(shaderSkinnedHandle, "V"), 1, GL_FALSE, glm::value_ptr(scene.Camera->ViewMatrix()));
|
||||
@@ -104,11 +103,7 @@ void PickingPass::Draw(RenderScene& scene)
|
||||
|
||||
std::vector<glm::mat4> frameBones;
|
||||
frameBones = modelJob->Skeleton->GetBones();
|
||||
// temp check revise later crashed client when connectiong
|
||||
// frameBones.size() was 0 // Jocke
|
||||
if (frameBones.size() > 0) {
|
||||
glUniformMatrix4fv(glGetUniformLocation(shaderSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
m_PickingProgram->Bind();
|
||||
|
||||
Reference in New Issue
Block a user