WIP Fix dsync

This commit is contained in:
Jocke
2016-02-16 16:06:17 +01:00
parent 717af2c4a4
commit a006db9e63
4 changed files with 16 additions and 12 deletions
+1 -1
View File
@@ -39,5 +39,5 @@ private:
bool OnPlayerSpawned(Events::PlayerSpawned& e); bool OnPlayerSpawned(Events::PlayerSpawned& e);
void updateMovementControllers(double dt); void updateMovementControllers(double dt);
void updateVelocity(double dt); void updateVelocity(EntityWrapper player, double dt);
}; };
+1 -1
View File
@@ -73,7 +73,7 @@ void Client::Update()
m_TimeSinceSentInputs = std::clock(); m_TimeSinceSentInputs = std::clock();
} }
// HACK: Send absolute player positions for now to avoid desync until we have reliable messages // HACK: Send absolute player positions for now to avoid desync until we have reliable messages
sendLocalPlayerTransform(); //sendLocalPlayerTransform();
hasServerTimedOut(); hasServerTimedOut();
} }
+2 -2
View File
@@ -119,7 +119,7 @@ void Server::parseMessageType(Packet& packet)
parseOnPlayerDamage(packet); parseOnPlayerDamage(packet);
break; break;
case MessageType::PlayerTransform: case MessageType::PlayerTransform:
parsePlayerTransform(packet); // parsePlayerTransform(packet);
break; break;
default: default:
break; break;
@@ -376,7 +376,7 @@ bool Server::OnInputCommand(const Events::InputCommand & e)
isReadingData = !isReadingData; isReadingData = !isReadingData;
m_SaveDataTimer = std::clock(); m_SaveDataTimer = std::clock();
} }
if (e.Command == "KickPlayer" && e.Value > 0) { else if (e.Command == "KickPlayer" && e.Value > 0) {
kick(0); kick(0);
} }
+12 -8
View File
@@ -16,7 +16,15 @@ PlayerMovementSystem::~PlayerMovementSystem()
void PlayerMovementSystem::Update(double dt) void PlayerMovementSystem::Update(double dt)
{ {
updateMovementControllers(dt); updateMovementControllers(dt);
updateVelocity(dt); if (IsServer) {
for (auto& kv : m_PlayerInputControllers) {
updateVelocity(kv.first, dt);
}
} else {
if (LocalPlayer.Valid()) {
updateVelocity(LocalPlayer, dt);
}
}
} }
void PlayerMovementSystem::updateMovementControllers(double dt) void PlayerMovementSystem::updateMovementControllers(double dt)
@@ -221,15 +229,11 @@ void PlayerMovementSystem::updateMovementControllers(double dt)
} }
void PlayerMovementSystem::updateVelocity(double dt) void PlayerMovementSystem::updateVelocity(EntityWrapper player, double dt)
{ {
// Only apply velocity to local player // Only apply velocity to local player
if (!LocalPlayer.Valid()) { ComponentWrapper& cTransform = player["Transform"];
return; ComponentWrapper& cPhysics = player["Physics"];
}
ComponentWrapper& cTransform = LocalPlayer["Transform"];
ComponentWrapper& cPhysics = LocalPlayer["Physics"];
glm::vec3& velocity = cPhysics["Velocity"]; glm::vec3& velocity = cPhysics["Velocity"];
bool isOnGround = (bool)cPhysics["IsOnGround"]; bool isOnGround = (bool)cPhysics["IsOnGround"];