WIP Fix dsync
This commit is contained in:
@@ -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);
|
||||||
};
|
};
|
||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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"];
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user