import * as os from "os"; var mode = 0; var logs = []; var rightView = [0, 1, 2, 3, 4, 5, 6]; var info = [[], []]; export function setMode(type) { mode = type; } export function updateLog() { if (mode) return; let templogs = logs; console.clear(); const columns = process.stdout.columns; const rows = process.stdout.rows; const vertSplit = Math.round(rows / 4); for (var i = 0; i < vertSplit; i++) { process.stdout.cursorTo(Math.round(columns / 2), i); process.stdout.clearLine(); process.stdout.write(`|`); } for (var i = 0; i < columns; i++) { process.stdout.cursorTo(i + 1, vertSplit); process.stdout.write(`=`); } process.stdout.cursorTo(0, 0); process.stdout.write("Players:"); const games = info[0]; var pointer = 0; for (i = 0; i < games.length; i++) { process.stdout.cursorTo(0, pointer + 1); process.stdout.write(`\x1b[46mGameName: \x1b[1m${games[i].name}\x1b[0m`); const players = games[i].players; for (var j = 0; j < players.length; j++) { process.stdout.cursorTo(0, pointer + 2); process.stdout.write(`--Name: \x1b[1m${players[j].name}\x1b[0m -\x1b[1m ID:${players[j].id}\x1b[0m`); pointer++; } pointer++; } if (templogs.length > Math.round(3 * rows / 4) - 3) { templogs.splice(0, logs.length - Math.round(3 * rows / 4) + 2); } for (var i = 0; i < templogs.length; i++) { process.stdout.cursorTo(0, vertSplit + 1 + i); process.stdout.write(`${templogs[i]}${os.EOL}`); } } export function log(string, color) { if (mode) return console.log(string); if (string == undefined) return; var prefix = ''; switch (color) { case "reset": prefix = "\x1b[0m"; break; case "bright": prefix = "\x1b[1m"; break; case "dim": prefix = "\x1b[2m"; break; case "underscore": prefix = "\x1b[4m"; break; case "reverse": prefix = "\x1b[7m"; break; case "FgBlack": prefix = "\x1b[30m"; break; case "FgRed": prefix = "\x1b[31m"; break; case "FgGreen": prefix = "\x1b[32m"; break; case "FgYellow": prefix = "\x1b[33m"; break; case "FgBlue": prefix = "\x1b[34m"; break; case "FgMagenta": prefix = "\x1b[35m"; break; case "FgCyan": prefix = "\x1b[36m"; break; case "FgWhite": prefix = "\x1b[37m"; break; } // BgBlack = "\x1b[40m" // BgRed = "\x1b[41m" // BgGreen = "\x1b[42m" // BgYellow = "\x1b[43m" // BgBlue = "\x1b[44m" // BgMagenta = "\x1b[45m" // BgCyan = "\x1b[46m" // BgWhite = "\x1b[47m" const newString = prefix + string + "\x1b[0m"; logs.push(newString); updateLog(); } export function setInfo(players) { if (mode) return false; if (players != undefined) { info[0] = players; updateLog(); } }