diff --git a/scripts/client/scoreboard.js b/scripts/client/scoreboard.js index 0d6a8513..e772a494 100644 --- a/scripts/client/scoreboard.js +++ b/scripts/client/scoreboard.js @@ -15,67 +15,85 @@ let pausedColour = COLOUR_RED; let scoreboardKey = SDLK_TAB; -// ------------------------------------------------------------------------- +// =========================================================================== -bindEventHandler("OnResourceReady", thisResource, function(event, resource) { - scoreBoardTitleFont = lucasFont.createDefaultFont(22.0, "Roboto", "Regular"); - scoreBoardListFont = lucasFont.createDefaultFont(12.0, "Roboto", "Light"); -}); +function initScoreBoardScript() { + logToConsole(LOG_DEBUG, "[Asshat.ScoreBoard]: Initializing scoreboard script ..."); + scoreBoardTitleFont = initScoreBoardTitleFont(); + scoreBoardListFont = initScoreBoardListFont(); + logToConsole(LOG_DEBUG, "[Asshat.ScoreBoard]: Scoreboard script initialized!"); +} -// ------------------------------------------------------------------------- +// =========================================================================== -function processScoreboardRendering() { - if(scoreBoardListFont != null && scoreBoardTitleFont != null) { - let scoreboardStart = (game.height/2)-(Math.floor(getClients().length/2)*20); - let titleSize = scoreBoardTitleFont.measure("PLAYERS", game.width, 0.0, 1.0, 10, false, false); - scoreBoardTitleFont.render("PLAYERS", [game.width/2, scoreboardStart-50], 0, 0.5, 0.0, scoreBoardTitleFont.size, COLOUR_WHITE, false, false, false, true); +function initScoreBoardTitleFont() { + return lucasFont.createDefaultFont(22.0, "Roboto", "Regular"); +} - titleSize = scoreBoardTitleFont.measure("____________________________", game.width, 0.0, 1.0, 10, false, false); - scoreBoardTitleFont.render("____________________________", [game.width/2, scoreboardStart-35], 0, 0.5, 0.0, scoreBoardTitleFont.size, COLOUR_WHITE, false, false, false, true); +// =========================================================================== - let clients = getClients(); - for(let i in clients) { - if(!clients[i].console) { - let name = clients[i].name; - let colour = COLOUR_WHITE; - let paused = false; - let ping = "-1"; +function initScoreBoardListFont() { + return lucasFont.createDefaultFont(12.0, "Roboto", "Light"); +} - if(typeof playerNames[clients[i].name] != "undefined") { - name = playerNames[clients[i].name]; - } +// =========================================================================== - if(typeof playerPaused[clients[i].name] != "undefined") { - paused = playerPaused[clients[i].name]; - } +function processScoreBoardRendering() { + if(renderScoreBoard) { + if(isKeyDown(SDLK_TAB)) { + if(scoreBoardListFont != null && scoreBoardTitleFont != null) { + let scoreboardStart = (game.height/2)-(Math.floor(getClients().length/2)*20); + let titleSize = scoreBoardTitleFont.measure("PLAYERS", game.width, 0.0, 1.0, 10, false, false); + scoreBoardTitleFont.render("PLAYERS", [game.width/2, scoreboardStart-50], 0, 0.5, 0.0, scoreBoardTitleFont.size, COLOUR_WHITE, false, false, false, true); - if(typeof playerColours[clients[i].name] != "undefined") { - colour = playerColours[clients[i].name]; - } + titleSize = scoreBoardTitleFont.measure("____________________________", game.width, 0.0, 1.0, 10, false, false); + scoreBoardTitleFont.render("____________________________", [game.width/2, scoreboardStart-35], 0, 0.5, 0.0, scoreBoardTitleFont.size, COLOUR_WHITE, false, false, false, true); - if(typeof playerPing[clients[i].name] != "undefined") { - ping = toString(playerPing[clients[i].name]); - } + let clients = getClients(); + for(let i in clients) { + if(!clients[i].console) { + let name = clients[i].name; + let colour = COLOUR_WHITE; + let paused = false; + let ping = "-1"; - // Player ID - let text = String(clients[i].index); - let size = scoreBoardListFont.measure(text, 75, 0.0, 1.0, 10, false, false); - scoreBoardListFont.render(text, [game.width/2-100, scoreboardStart + (i*20)], 0, 0.5, 0.0, scoreBoardListFont.size, COLOUR_WHITE, false, false, false, true); + if(typeof playerNames[clients[i].name] != "undefined") { + name = playerNames[clients[i].name]; + } - // Player Name - text = name; - size = scoreBoardListFont.measure(text, 100, 0.0, 1.0, 10, false, false); - scoreBoardListFont.render(text, [game.width/2, scoreboardStart + (i*20)], 0, 0.5, 0.0, scoreBoardListFont.size, colour, false, false, false, true); + if(typeof playerPaused[clients[i].name] != "undefined") { + paused = playerPaused[clients[i].name]; + } - // Ping - text = ping; - size = scoreBoardListFont.measure(ping, 75, 0.0, 1.0, 10, false, false); - scoreBoardListFont.render(ping, [game.width/2+100, scoreboardStart + (i*20)], 0, 0.5, 0.0, scoreBoardListFont.size, COLOUR_WHITE, false, false, false, true); + if(typeof playerColours[clients[i].name] != "undefined") { + colour = playerColours[clients[i].name]; + } - // PAUSED Status (depends on resource "afk") - if(paused == true) { - size = scoreBoardListFont.measure("PAUSED", 100, 0.0, 1.0, 10, false, false); - scoreBoardListFont.render("PAUSED", [game.width/2+200, scoreboardStart + (i*20)], 0, 0.5, 0.0, scoreBoardListFont.size, pausedColour, false, false, false, true); + if(typeof playerPing[clients[i].name] != "undefined") { + ping = toString(playerPing[clients[i].name]); + } + + // Player ID + let text = String(clients[i].index); + let size = scoreBoardListFont.measure(text, 75, 0.0, 1.0, 10, false, false); + scoreBoardListFont.render(text, [game.width/2-100, scoreboardStart + (i*20)], 0, 0.5, 0.0, scoreBoardListFont.size, COLOUR_WHITE, false, false, false, true); + + // Player Name + text = name; + size = scoreBoardListFont.measure(text, 100, 0.0, 1.0, 10, false, false); + scoreBoardListFont.render(text, [game.width/2, scoreboardStart + (i*20)], 0, 0.5, 0.0, scoreBoardListFont.size, colour, false, false, false, true); + + // Ping + text = ping; + size = scoreBoardListFont.measure(ping, 75, 0.0, 1.0, 10, false, false); + scoreBoardListFont.render(ping, [game.width/2+100, scoreboardStart + (i*20)], 0, 0.5, 0.0, scoreBoardListFont.size, COLOUR_WHITE, false, false, false, true); + + // PAUSED Status (depends on resource "afk") + if(paused == true) { + size = scoreBoardListFont.measure("PAUSED", 100, 0.0, 1.0, 10, false, false); + scoreBoardListFont.render("PAUSED", [game.width/2+200, scoreboardStart + (i*20)], 0, 0.5, 0.0, scoreBoardListFont.size, pausedColour, false, false, false, true); + } + } } } }