the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#pragma once
2
3class Objective;
4class ObjectiveCriteria;
5class PlayerTeam;
6class Score;
7
8class Scoreboard
9{
10public:
11 static const int DISPLAY_SLOT_LIST = 0;
12 static const int DISPLAY_SLOT_SIDEBAR = 1;
13 static const int DISPLAY_SLOT_BELOW_NAME = 2;
14 static const int DISPLAY_SLOTS = 3;
15
16private:
17 unordered_map<wstring, Objective *> objectivesByName;
18 unordered_map<ObjectiveCriteria *, vector<Objective *> *> objectivesByCriteria;
19 unordered_map<wstring, unordered_map<Objective *, Score *> > playerScores;
20 Objective *displayObjectives[DISPLAY_SLOTS];
21 unordered_map<wstring, PlayerTeam *> teamsByName;
22 unordered_map<wstring, PlayerTeam *> teamsByPlayer;
23
24public:
25 Objective *getObjective(const wstring &name);
26 Objective *addObjective(const wstring &name, ObjectiveCriteria *criteria);
27 vector<Objective *> *findObjectiveFor(ObjectiveCriteria *criteria);
28 Score *getPlayerScore(const wstring &name, Objective *objective);
29 vector<Score *> *getPlayerScores(Objective *objective);
30 vector<Objective *> *getObjectives();
31 vector<wstring> *getTrackedPlayers();
32 void resetPlayerScore(const wstring &player);
33 vector<Score *> *getScores();
34 vector<Score *> *getScores(Objective *objective);
35 unordered_map<Objective *, Score *> *getPlayerScores(const wstring &player);
36 void removeObjective(Objective *objective);
37 void setDisplayObjective(int slot, Objective *objective);
38 Objective *getDisplayObjective(int slot);
39 PlayerTeam *getPlayerTeam(const wstring &name);
40 PlayerTeam *addPlayerTeam(const wstring &name);
41 void removePlayerTeam(PlayerTeam *team);
42 void addPlayerToTeam(const wstring &player, PlayerTeam *team);
43 bool removePlayerFromTeam(const wstring &player);
44 void removePlayerFromTeam(const wstring &player, PlayerTeam *team);
45 vector<wstring> *getTeamNames();
46 vector<PlayerTeam *> *getPlayerTeams();
47 shared_ptr<Player> getPlayer(const wstring &name);
48 PlayerTeam *getPlayersTeam(const wstring &name);
49 void onObjectiveAdded(Objective *objective);
50 void onObjectiveChanged(Objective *objective);
51 void onObjectiveRemoved(Objective *objective);
52 void onScoreChanged(Score *score);
53 void onPlayerRemoved(const wstring &player);
54 void onTeamAdded(PlayerTeam *team);
55 void onTeamChanged(PlayerTeam *team);
56 void onTeamRemoved(PlayerTeam *team);
57 static wstring getDisplaySlotName(int slot);
58 static int getDisplaySlotByName(const wstring &name);
59};