diff --git a/scripts/client/scoreboard.js b/scripts/client/scoreboard.js index b8351d21..0804b659 100644 --- a/scripts/client/scoreboard.js +++ b/scripts/client/scoreboard.js @@ -4,90 +4,80 @@ // Copyright (c) 2020 Asshat-Gaming (https://asshatgaming.com) // --------------------------------------------------------------------------- // FILE: scoreboard.js -// DESC: Provides scoreboard feature and rendering +// DESC: Provides scoreboard features and rendering // TYPE: Client (JavaScript) // =========================================================================== -let titleFont = null; -let listFont = null; +let scoreBoardTitleFont = null; +let scoreBoardListFont = null; let pausedColour = COLOUR_RED; +let scoreboardKey = SDLK_TAB; + // ------------------------------------------------------------------------- bindEventHandler("OnResourceReady", thisResource, function(event, resource) { - titleFont = lucasFont.createDefaultFont(22.0, "Roboto", "Regular"); - listFont = lucasFont.createDefaultFont(12.0, "Roboto", "Light"); + scoreBoardTitleFont = lucasFont.createDefaultFont(22.0, "Roboto", "Regular"); + scoreBoardListFont = lucasFont.createDefaultFont(12.0, "Roboto", "Light"); }); // ------------------------------------------------------------------------- -addEventHandler("OnDrawnHUD", function (event) { - if(!renderHUD) { - return false; - } +function renderScoreboard() { + 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(!renderScoreboard) { - return false; - } + 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(localPlayer != null) { - if(isKeyDown(SDLK_TAB)) { - if(listFont != null && titleFont != null) { - let scoreboardStart = (game.height/2)-(Math.floor(getClients().length/2)*20); - let titleSize = titleFont.measure("PLAYERS", game.width, 0.0, 1.0, 10, false, false); - titleFont.render("PLAYERS", [game.width/2, scoreboardStart-50], 0, 0.5, 0.0, titleFont.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"; - titleSize = titleFont.measure("____________________________", game.width, 0.0, 1.0, 10, false, false); - titleFont.render("____________________________", [game.width/2, scoreboardStart-35], 0, 0.5, 0.0, titleFont.size, COLOUR_WHITE, false, false, false, true); + if(typeof playerNames[clients[i].name] != "undefined") { + name = playerNames[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"; + if(typeof playerPaused[clients[i].name] != "undefined") { + paused = playerPaused[clients[i].name]; + } - if(typeof playerNames[clients[i].name] != "undefined") { - name = playerNames[clients[i].name]; - } + if(typeof playerColours[clients[i].name] != "undefined") { + colour = playerColours[clients[i].name]; + } - if(typeof playerPaused[clients[i].name] != "undefined") { - paused = playerPaused[clients[i].name]; - } + if(typeof playerPing[clients[i].name] != "undefined") { + ping = toString(playerPing[clients[i].name]); + } - if(typeof playerColours[clients[i].name] != "undefined") { - colour = playerColours[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); - if(typeof playerPing[clients[i].name] != "undefined") { - ping = toString(playerPing[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); - // Player ID - let text = String(clients[i].index); - let size = listFont.measure(text, 75, 0.0, 1.0, 10, false, false); - listFont.render(text, [game.width/2-100, scoreboardStart + (i*20)], 0, 0.5, 0.0, listFont.size, COLOUR_WHITE, 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); - // Player Name - text = name; - size = listFont.measure(text, 100, 0.0, 1.0, 10, false, false); - listFont.render(text, [game.width/2, scoreboardStart + (i*20)], 0, 0.5, 0.0, listFont.size, colour, false, false, false, true); - - // Ping - text = ping; - size = listFont.measure(ping, 75, 0.0, 1.0, 10, false, false); - listFont.render(ping, [game.width/2+100, scoreboardStart + (i*20)], 0, 0.5, 0.0, listFont.size, COLOUR_WHITE, false, false, false, true); - - // PAUSED Status (depends on resource "afk") - if(paused == true) { - size = listFont.measure("PAUSED", 100, 0.0, 1.0, 10, false, false); - listFont.render("PAUSED", [game.width/2+200, scoreboardStart + (i*20)], 0, 0.5, 0.0, listFont.size, pausedColour, 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); } } } } -}); \ No newline at end of file +} \ No newline at end of file