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 Connect(std::string address, int port);
|
||||||
void Update() override;
|
void Update() override;
|
||||||
|
|
||||||
|
std::vector<Events::PlayerSpawned> m_PlayerSpawnEvents;
|
||||||
|
void parseSpawnEvents();
|
||||||
// Save for children
|
// Save for children
|
||||||
std::unique_ptr<SnapshotFilter> m_SnapshotFilter = nullptr;
|
std::unique_ptr<SnapshotFilter> m_SnapshotFilter = nullptr;
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,6 @@ void Client::Update()
|
|||||||
parseMessageType(packet);
|
parseMessageType(packet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while (m_Reliable.IsSocketAvailable()) {
|
while (m_Reliable.IsSocketAvailable()) {
|
||||||
// Packet will get real data in receive
|
// Packet will get real data in receive
|
||||||
Packet packet(MessageType::Invalid);
|
Packet packet(MessageType::Invalid);
|
||||||
@@ -177,14 +176,35 @@ void Client::parseKick()
|
|||||||
m_IsConnected = false;
|
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)
|
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;
|
Events::PlayerSpawned e;
|
||||||
e.Player = EntityWrapper(m_World, m_ServerIDToClientID[packet.ReadPrimitive<EntityID>()]);
|
e.Player = EntityWrapper(m_World, packet.ReadPrimitive<EntityID>());
|
||||||
e.Spawner = EntityWrapper(m_World, m_ServerIDToClientID[packet.ReadPrimitive<EntityID>()]);
|
e.Spawner = EntityWrapper(m_World, packet.ReadPrimitive<EntityID>());
|
||||||
e.PlayerID = -1;
|
e.PlayerID = -1;
|
||||||
e.PlayerName = packet.ReadString();
|
e.PlayerName = packet.ReadString();
|
||||||
m_EventBroker->Publish(e);
|
m_PlayerSpawnEvents.push_back(e);
|
||||||
|
parseSpawnEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Client::parseEntityDeletion(Packet & packet)
|
void Client::parseEntityDeletion(Packet & packet)
|
||||||
@@ -322,6 +342,7 @@ void Client::parseSnapshot(Packet& packet)
|
|||||||
m_World->SetParent(localEntityID, m_ServerIDToClientID.at(serverParentID));
|
m_World->SetParent(localEntityID, m_ServerIDToClientID.at(serverParentID));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// parseSpawnEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Client::disconnect()
|
void Client::disconnect()
|
||||||
|
|||||||
@@ -92,8 +92,7 @@ void PickingPass::Draw(RenderScene& scene)
|
|||||||
|
|
||||||
m_PickingColorsToEntity[glm::ivec2(pickColor[0], pickColor[1])] = pickInfo;
|
m_PickingColorsToEntity[glm::ivec2(pickColor[0], pickColor[1])] = pickInfo;
|
||||||
|
|
||||||
if (modelJob->Model->IsSkinned())
|
if (modelJob->Model->IsSkinned()) {
|
||||||
{
|
|
||||||
m_PickingSkinnedProgram->Bind();
|
m_PickingSkinnedProgram->Bind();
|
||||||
glUniformMatrix4fv(glGetUniformLocation(shaderSkinnedHandle, "M"), 1, GL_FALSE, glm::value_ptr(modelJob->Matrix));
|
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()));
|
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;
|
std::vector<glm::mat4> frameBones;
|
||||||
frameBones = modelJob->Skeleton->GetBones();
|
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]));
|
glUniformMatrix4fv(glGetUniformLocation(shaderSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
m_PickingProgram->Bind();
|
m_PickingProgram->Bind();
|
||||||
|
|||||||
Reference in New Issue
Block a user