/// Loads the scores. public void LoadScores(string leaderboardID, Action <IScore[]> callback) { var leaderboard = LumosSocial.GetLeaderboard(leaderboardID); if (leaderboard == null) { leaderboard = new LumosLeaderboard(); leaderboard.id = leaderboardID; leaderboard.LoadDescription( success => { if (success) { LoadScoresFromLeaderboard(leaderboard, callback); } else { callback(null); } } ); } else { LoadScoresFromLeaderboard(leaderboard, callback); } }
/// <summary> /// Registers the new user. /// </summary> static void RegisterNewUser() { if (username.Length < 1 || password.Length < 1 || email.Length < 1) { LumosSocialGUI.statusMessage = "Please fill in all the fields."; return; } if (password != passwordConfirmation) { LumosSocialGUI.statusMessage = "Please supply matching passwords."; return; } LumosSocialGUI.inProgress = true; LumosSocialGUI.statusMessage = "Registering..."; var user = new LumosUser(username, password); user.email = email; LumosSocial.RegisterUser(user, success => { LumosSocialGUI.inProgress = false; if (success) { LumosSocialGUI.statusMessage = null; LumosSocialGUI.HideWindow(); } else { LumosSocialGUI.statusMessage = "There was a problem registering. Please try again."; } }); }
public LumosSocial () { instance = this; if (Lumos.ready) { InitializeSettings(); } else { Lumos.OnReady += InitializeSettings; } }
public LumosSocial() { instance = this; if (Lumos.ready) { InitializeSettings(); } else { Lumos.OnReady += InitializeSettings; } }
/// <summary> /// Displays the leaderboards UI. /// </summary> /// <param name="windowRect">The bounding rect of the window.</param> public static void OnGUI(Rect windowRect) { if (LumosSocialGUI.currentUser == null) { LumosSocialGUI.statusMessage = "You must login before viewing leaderboards."; LumosSocialGUI.DrawLoginButton(); return; } if (LumosSocial.leaderboards == null) { LumosSocialGUI.statusMessage = "Loading leaderboards..."; if (!LumosSocialGUI.inProgress) { LumosSocial.LoadLeaderboardDescriptions(success => { LumosSocialGUI.statusMessage = null; }); LumosSocialGUI.inProgress = true; } return; } if (LumosSocial.leaderboards.Length > 0) { foreach (var leaderboard in LumosSocial.leaderboards) { if (leaderboard.loading) { GUILayout.Label("Loading..."); GUI.enabled = false; } if (GUILayout.Button(leaderboard.title)) { currentLeaderboard = leaderboard as LumosLeaderboard; LumosSocialGUI.ShowWindow(LumosGUIWindow.Scores); if (currentLeaderboard.scores == null) { Social.LoadScores(currentLeaderboard.id, null); } } GUI.enabled = true; } LumosSocialGUI.DrawDivider(); } }
static void Register(LumosUser user) { LumosSocial.RegisterUser(user, success => { if (success) { PlayerPrefs.SetInt(hasRegisteredKey, 1); Debug.Log("Registered and authenticated, assigned as Social.localUser"); } else { Debug.LogError("Unable to register user"); } LumosSocialDemoCustomLoginGUI.RegistrationComplete(success); }); }
// Loads leaderboard names and other info (not scores) public static void LoadLeaderboardDescriptions() { LumosSocial.LoadLeaderboardDescriptions((success) => { if (!success) { Debug.LogWarning("Unable to load leaderboard descriptions."); return; } leaderboards = new List <LumosLeaderboard>(); // Loaded leaderboards are stored in LumosSocial.leaderboards for your convenience // We'll store our own copy of it in this class though for demonstration purposes. foreach (var leaderboard in LumosSocial.leaderboards) { leaderboards.Add(leaderboard as LumosLeaderboard); } }); }
/// <summary> /// Loads a leaderboard with only friend scores. /// </summary> /// <param name="callback">Callback.</param> public void LoadFriendLeaderboardScores(Action <bool> callback) { var endpoint = "/users/" + id + "/friends/scores"; LumosRequest.Send(LumosSocial.instance, endpoint, LumosRequest.Method.GET, success => { var resp = success as IList; var leaderboards = new LumosLeaderboard[resp.Count]; for (int i = 0; i < resp.Count; i++) { leaderboards[i] = new LumosLeaderboard(resp[i] as Dictionary <string, object>); } foreach (var leaderboard in leaderboards) { var current = LumosSocial.GetLeaderboard(leaderboard.id); // Leaderboard already exists; update friend scores only. if (current != null) { current.friendScores = leaderboard.friendScores; } // Leaderboard doesn't exist yet; add entire leaderboard. else { LumosSocial.AddLeaderboard(leaderboard); } } if (callback != null) { callback(true); } }, error => { if (callback != null) { callback(false); } }); }
/// <summary> /// Displays the password reset UI. /// </summary> /// <param name="windowRect">The bounding rect of the window.</param> public static void OnGUI(Rect windowRect) { var halfWidth = windowRect.width / 2; if (GUILayout.Button(backLabel, GUILayout.ExpandWidth(false))) { LumosSocialGUI.ShowWindow(LumosGUIWindow.Login); } LumosSocialGUI.DrawDivider(); // Username field. GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(usernameLabel); username = GUILayout.TextField(username, GUILayout.Width(halfWidth)); GUILayout.EndHorizontal(); // Submit button. GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button(resetLabel, GUILayout.Width(halfWidth))) { LumosSocial.ResetPassword(username, success => { if (success) { LumosSocialGUI.statusMessage = "An email has been sent to confirm your password reset."; } else { LumosSocialGUI.statusMessage = "There was a problem resetting your password. Please try again."; } }); } GUILayout.EndHorizontal(); }
/// <summary> /// Displays the achievements UI. /// </summary> /// <param name="windowRect">The bounding rect of the window.</param> public static void OnGUI(Rect windowRect) { if (LumosSocialGUI.currentUser == null) { LumosSocialGUI.statusMessage = "You must login before viewing your achievements."; LumosSocialGUI.DrawLoginButton(); return; } // Load achievements if necessary. if (achievementDescriptions == null) { LumosSocialGUI.statusMessage = "Loading achievements..."; if (!LumosSocialGUI.inProgress) { LumosSocialGUI.inProgress = true; Social.LoadAchievements(null); Social.LoadAchievementDescriptions( descriptions => { LumosSocialGUI.inProgress = false; achievementDescriptions = descriptions; LumosSocialGUI.statusMessage = null; }); } return; } scrollPos = GUILayout.BeginScrollView(scrollPos); foreach (var description in achievementDescriptions) { // Skip achievements the user isn't supposed to see. if (description.hidden && !LumosSocial.HasAchievement(description.id)) { continue; } GUI.enabled = !LumosSocial.HasAchievement(description.id); GUILayout.BeginHorizontal(GUI.skin.box); var icon = GetIcon(description); if (icon != null) { GUILayout.Label(icon); } GUILayout.BeginVertical(); GUILayout.Label(description.title); if (LumosSocial.HasAchievement(description.id)) { GUILayout.Label(description.achievedDescription); } else { GUILayout.Label(description.unachievedDescription); } GUILayout.EndVertical(); GUILayout.EndHorizontal(); LumosSocialGUI.DrawDivider(); } GUILayout.EndScrollView(); }