Replaced GetLeaderboard with LeaderboardManager. Manages all button functions and leaderboard stuff.
This commit is contained in:
parent
586fb2ea8c
commit
a1934f0e84
5 changed files with 152 additions and 42 deletions
Binary file not shown.
|
@ -1,40 +0,0 @@
|
||||||
using UnityEngine;
|
|
||||||
using System.Collections;
|
|
||||||
using UnityEngine.UI;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* USAGE
|
|
||||||
*
|
|
||||||
* Just put this script into a button that needs
|
|
||||||
* to execute the HTTP request, and in the text field
|
|
||||||
* write the exact URL needed for the request.
|
|
||||||
*
|
|
||||||
* */
|
|
||||||
|
|
||||||
// http://corder.tech/mocha/users/*
|
|
||||||
|
|
||||||
public class GetLeaderboard : MonoBehaviour
|
|
||||||
{
|
|
||||||
public Button thisbutton;
|
|
||||||
public Text Usernames;
|
|
||||||
public Text Scores;
|
|
||||||
|
|
||||||
public string request = "http://corder.tech/mocha/users/*";
|
|
||||||
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
thisbutton.onClick.AddListener (CallGetData);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void CallGetData()
|
|
||||||
{
|
|
||||||
DisplayAllSeparated(request, Usernames, Scores);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void DisplayAllSeparated(string request, Text Usernames, Text Scores)
|
|
||||||
{
|
|
||||||
MochaParser parser = new MochaParser ();
|
|
||||||
StartCoroutine (parser.DisplayOutputSeparated(request, Usernames, Scores));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
123
MoCha/Assets/Scripts/LeaderboardManager.cs
Normal file
123
MoCha/Assets/Scripts/LeaderboardManager.cs
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
public class LeaderboardManager : MonoBehaviour
|
||||||
|
{
|
||||||
|
public string request = "http://corder.tech/mocha/users/*";
|
||||||
|
public Text Usernames;
|
||||||
|
public Text Scores;
|
||||||
|
|
||||||
|
private List<PlayerInfo> players;
|
||||||
|
private int currentPage;
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
// Eventually get data on start.
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CallGetData()
|
||||||
|
{
|
||||||
|
DisplayAllSeparated(request, Usernames, Scores);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void DisplayAllSeparated(string request, Text Usernames, Text Scores)
|
||||||
|
{
|
||||||
|
MochaParser parser = new MochaParser ();
|
||||||
|
|
||||||
|
StartCoroutine (parser.GrabLeaderboard(request, Usernames, Scores, this));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlayers(List<PlayerInfo> p)
|
||||||
|
{
|
||||||
|
players = p;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInitialBoard(Text u, Text s)
|
||||||
|
{
|
||||||
|
currentPage = 1;
|
||||||
|
Usernames = u;
|
||||||
|
Scores = s;
|
||||||
|
|
||||||
|
string usernameOutput = "Username";
|
||||||
|
string scoreOutput = "Score";
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Just an extra step in case for whatever reason
|
||||||
|
* the leaderboard length is less than 10.
|
||||||
|
* */
|
||||||
|
|
||||||
|
int boardlength = players.Count;
|
||||||
|
|
||||||
|
if (boardlength > 10)
|
||||||
|
boardlength = 10;
|
||||||
|
|
||||||
|
for(int i = 0; i < boardlength; ++i)
|
||||||
|
{
|
||||||
|
usernameOutput += "\n" + players[i].username;
|
||||||
|
scoreOutput += "\n" + players [i].score;
|
||||||
|
}
|
||||||
|
|
||||||
|
Usernames.text = usernameOutput;
|
||||||
|
Scores.text = scoreOutput;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void nextPage()
|
||||||
|
{
|
||||||
|
int currentIndex = currentPage * 10;
|
||||||
|
int test = players.Count - currentIndex;
|
||||||
|
|
||||||
|
if (test < 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
string usernameOutput = "Username";
|
||||||
|
string scoreOutput = "Score";
|
||||||
|
int pagelength = 10;
|
||||||
|
|
||||||
|
if (test < pagelength)
|
||||||
|
{
|
||||||
|
pagelength = test;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = currentIndex; i < (currentIndex + pagelength); ++i)
|
||||||
|
{
|
||||||
|
usernameOutput += "\n" + players[i].username;
|
||||||
|
scoreOutput += "\n" + players [i].score;
|
||||||
|
}
|
||||||
|
|
||||||
|
Usernames.text = usernameOutput;
|
||||||
|
Scores.text = scoreOutput;
|
||||||
|
currentPage += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void previousPage()
|
||||||
|
{
|
||||||
|
if (currentPage <= 1)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
currentPage -= 1;
|
||||||
|
int currentIndex = currentPage * 10;
|
||||||
|
string usernameOutput = "Username";
|
||||||
|
string scoreOutput = "Score";
|
||||||
|
int pagelength = 10;
|
||||||
|
|
||||||
|
for (int i = (currentIndex - pagelength); i < currentIndex; ++i) {
|
||||||
|
usernameOutput += "\n" + players [i].username;
|
||||||
|
scoreOutput += "\n" + players [i].score;
|
||||||
|
}
|
||||||
|
|
||||||
|
Usernames.text = usernameOutput;
|
||||||
|
Scores.text = scoreOutput;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 4bc1364c87acb4744a9444f492464508
|
guid: 5456004561983334783798d8d62b1869
|
||||||
timeCreated: 1524103750
|
timeCreated: 1524239051
|
||||||
licenseType: Free
|
licenseType: Free
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
|
@ -179,5 +179,32 @@ public class MochaParser
|
||||||
usernames.text = OutputUsernames ();
|
usernames.text = OutputUsernames ();
|
||||||
scores.text = OutputScores ();
|
scores.text = OutputScores ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public IEnumerator GrabLeaderboard (string request, Text usernames, Text scores, LeaderboardManager lbm)
|
||||||
|
{
|
||||||
|
|
||||||
|
// Remove this later.
|
||||||
|
MakePlayers();
|
||||||
|
|
||||||
|
lbm.setPlayers (players);
|
||||||
|
lbm.setInitialBoard (usernames, scores);
|
||||||
|
|
||||||
|
// Move this back to the top of this function.
|
||||||
|
yield return MakeRequest (request);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Temporary hardcoded players.
|
||||||
|
* */
|
||||||
|
public void MakePlayers()
|
||||||
|
{
|
||||||
|
for(int i = 0; i < 69; i++)
|
||||||
|
{
|
||||||
|
PlayerInfo temp = new PlayerInfo ();
|
||||||
|
temp.username = "A test!" + (i + 1);
|
||||||
|
temp.score = i * 69;
|
||||||
|
players.Add (temp);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in a new issue