ProperSave.SaveFileMetadata.GetCurrentLobbySaveMetadata C# (CSharp) Method

GetCurrentLobbySaveMetadata() static private method

static private GetCurrentLobbySaveMetadata ( NetworkUser exceptUser = null ) : SaveFileMetadata
exceptUser NetworkUser
return SaveFileMetadata
        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);
        }

Usage Example

Example #1
0
        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 { }
        }
All Usage Examples Of ProperSave.SaveFileMetadata::GetCurrentLobbySaveMetadata