Client now has authority over its own absolute position and orientation until we have reliable input messaging

This commit is contained in:
2016-01-24 19:00:50 +01:00
parent 9f3d887ac4
commit 0fb1dbcae1
5 changed files with 61 additions and 3 deletions
+23
View File
@@ -101,6 +101,9 @@ void Server::parseMessageType(Packet& packet)
case MessageType::BecomePlayer:
createPlayer();
break;
case MessageType::PlayerTransform:
parsePlayerTransform(packet);
break;
default:
break;
}
@@ -488,3 +491,23 @@ bool Server::OnComponentDeleted(const Events::ComponentDeleted & e)
}
return false;
}
void Server::parsePlayerTransform(Packet& packet)
{
glm::vec3 position;
glm::vec3 orientation;
position.x = packet.ReadPrimitive<float>();
position.y = packet.ReadPrimitive<float>();
position.z = packet.ReadPrimitive<float>();
orientation.x = packet.ReadPrimitive<float>();
orientation.y = packet.ReadPrimitive<float>();
orientation.z = packet.ReadPrimitive<float>();
PlayerID playerID = GetPlayerIDFromEndpoint(m_ReceiverEndpoint);
EntityWrapper player(m_World, m_PlayerDefinitions[playerID].EntityID);
if (player.Valid()) {
player["Transform"]["Position"] = position;
player["Transform"]["Orientation"] = orientation;
}
}