static private GetCurrentLobbySaveMetadata ( NetworkUser exceptUser = null ) : |
||
exceptUser | NetworkUser | |
return |
internal static SaveFileMetadata GetCurrentLobbySaveMetadata(NetworkUser exceptUser = null)
{
var users = NetworkUser.readOnlyInstancesList.Select(el => el.Network_id.steamId.value).ToList();
if (exceptUser != null)
{
users.Remove(exceptUser.Network_id.steamId.value);
}
var usersCount = users.Count();
if (usersCount == 0)
{
return null;
}
var gameMode = PreGameController.instance ? PreGameController.instance.gameModeIndex : Run.instance ? Run.instance.gameModeIndex : GameModeIndex.Invalid;
if (gameMode == GameModeIndex.Invalid)
{
return null;
}
if (usersCount == 1)
{
var profile = LocalUserManager.readOnlyLocalUsersList[0].userProfile.fileName.Replace(".xml", "");
return SavesMetadata.FirstOrDefault(el => el.UserProfileId == profile && el.SteamIds.Length == 1 && el.GameMode == gameMode);
}
return SavesMetadata.FirstOrDefault(el => el.SteamIds.DifferenceCount(users) == 0 && el.GameMode == gameMode);
}
private static void UpdateLobbyControls(NetworkUser exceptUser = null) { var interactable = SteamworksLobbyManager.isInLobby == SteamworksLobbyManager.ownsLobby && File.Exists(SaveFileMetadata.GetCurrentLobbySaveMetadata(exceptUser)?.FilePath); try { if (lobbyButton) { var component = lobbyButton?.GetComponent <HGButton>(); if (component) { component.interactable = interactable; } } } catch { } try { if (lobbyGlyphAndDescription) { var color = interactable ? Color.white : new Color(0.3F, 0.3F, 0.3F); var glyphText = lobbyGlyphAndDescription.transform.GetChild(0).GetComponent <HGTextMeshProUGUI>(); glyphText.color = color; var descriptionText = lobbyGlyphAndDescription.transform.GetChild(1).GetComponent <HGTextMeshProUGUI>(); descriptionText.color = color; } } catch { } }