#pragma once #include #include #include #include #include namespace F4T::RemotePlayerState { struct RemotePlayerState { std::uint32_t playerId{}; float x{}; float y{}; float z{}; float angleZ{}; std::string movementType; std::string cellId; std::string worldspaceId; std::optional clientTime; std::optional serverTime; std::chrono::steady_clock::time_point lastReceivedLocalTime{}; }; void SetAssignedPlayerId(std::uint32_t a_playerId); std::optional GetAssignedPlayerId(); bool IsAssignedPlayerId(std::uint32_t a_playerId); void ClearAssignedPlayerId(); void UpdateRemotePlayer(RemotePlayerState a_state); bool RemoveRemotePlayer(std::uint32_t a_playerId); void ClearRemotePlayers(); std::vector GetRemotePlayerSnapshot(); }