diff options
| author | Karan Jayachandra <karan.jayachandra@nxp.com> | 2025-11-12 14:18:36 +0100 |
|---|---|---|
| committer | Karan Jayachandra <karan.jayachandra@nxp.com> | 2025-11-12 14:18:36 +0100 |
| commit | 3a4a0f6f2bf9aff14c00c6acee637319d7458bbb (patch) | |
| tree | 8f136ad7fcaad95d7b3028138ed092a07ed10162 /player.mjs | |
| parent | ca3e550fb59af89a2ddc0e1e0e59a3025edbece7 (diff) | |
Memory added
Diffstat (limited to 'player.mjs')
| -rw-r--r-- | player.mjs | 84 |
1 files changed, 65 insertions, 19 deletions
@@ -1,4 +1,6 @@ -export class Player { +import { Manager } from "./utils.mjs"; + +class Player { constructor(id, name, level, status, totalPlayed) { this.id = id; this.name = name; @@ -15,7 +17,7 @@ export class Player { console.log(this.name + " has a level of " + this.level + " and is currently " + status); } render() { - let type = this.status ? `class="button is-medium is-success"` : 'class="button is-medium is-danger"'; + let type = this.status ? `class="button is-success"` : 'class="button is-danger"'; return `<button id=${"regular_" + this.id} ${type}>${this.name}</button>`; } } @@ -29,14 +31,6 @@ function randomStatus() { return Math.random() < 0.5; } -export function generatePlayers() { - let players = []; - for (let i = 0; i < 71; i++) { - players.push(new Player(i, "Player " + i, randomLevel(), randomStatus(), 0)); - } - return players; -} - function parseLineToPlayer(data) { var info = data.split(","); var id = Number(info[0].trim()); @@ -45,14 +39,66 @@ function parseLineToPlayer(data) { return new Player(id, name, level, true, 0); } -export function csvToPlayers(csv) { - var lines = csv.split("\n"); - var players = []; - for (var i = 1; i < lines.length; i++) { - if(lines[i] == undefined || lines[i].trim() == "") {continue;} - players.push(parseLineToPlayer(lines[i])); +export class PlayerManager extends Manager { + constructor() { + super("regular", []); + console.log("Loading player data."); + let data = JSON.parse(localStorage.getItem(this.description)); + if (data === null || data.length === 0) { + console.log("Player data unavailable: " + data); + this.generate(); + return; + } + for (let i = 0; i < data.length; i++) { + var id = Number(data[i].id); + var name = data[i].name; + var level = data[i].level; + var status = data[i].status; + var totalPlayed = data[i].totalPlayed; + this.listData.push(new Player(id, name, level, status, totalPlayed)); + } + console.log("Loaded " + this.listData.length + " players."); + this.render(); } - console.log("Loaded " + players.length + " Players"); - for (var i=0; i<players.length; i++) {players[i].print();} - return players; + generate() { + console.log("Generating player data."); + let maxPlayerCount = 71; + for (let i = 0; i < maxPlayerCount; i++) { + let p = new Player(i, "Player " + i, randomLevel(), randomStatus(), 0); + this.listData.push(p); + } + console.log("Generated data for " + this.listData.length + " players"); + this.store(); + this.render(); + } + import(data) { + var lines = data.split("\n"); + var players = []; + for (var i = 1; i < lines.length; i++) { + if(lines[i] == undefined || lines[i].trim() == "") {continue;} + players.push(parseLineToPlayer(lines[i])); + } + console.log("Loaded " + players.length + " Players"); + for (var i=0; i<players.length; i++) {players[i].print();} + this.listData = players; + this.store(); + this.render(); + } +} + +// Try to add this functionality inside the class to call after constructor +export function addLoadBehaviour(p) { + const f = document.querySelector("#player-load input[type=file]"); + f.addEventListener("change", () => { + const file = f.files[0]; + let importData; + console.log("Loading data from "+ file.name); + const reader = new FileReader(); + reader.onload = function(e) { + importData = reader.result; + p.import(importData); + }; + reader.readAsText(file); + }) + }
\ No newline at end of file |
