the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at master 59 lines 2.4 kB view raw
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};