import Button from "../../button.js"; export default class ProgramCalendar { constructor(_scene, _computer, _window) { this.scene = _scene; this.computer = _computer; this.window = _window; this.tiles = []; let i = 0; for (let yy = 0; yy < 4; yy++) { for (let xx = 0; xx < 7; xx++) { /*tile.colors = { out: 0x83769c, over: 0x29adff, on: 0x00e436, off: 0xad2900 }*/ if (i === 10) { this.tiles.push(new Button(this.scene, { x: this.window.pos.x + 16 + (xx * 37), y: this.window.pos.y + 32 + (yy * 37) }, "atlasUi", "sprDesktopCalendarTileMarked", String(i + 1), false, () => { this.txtNoData.alpha = 0; this.textContainer.alpha = 1; })); } else if (i === 22) { this.tiles.push(new Button(this.scene, { x: this.window.pos.x + 16 + (xx * 37), y: this.window.pos.y + 32 + (yy * 37) }, "atlasUi", "sprDesktopCalendarTile", String(i + 1), false, () => { this.txtNoData.setText("I see you."); this.txtNoData.alpha = 1; this.textContainer.alpha = 0; })); } else { this.tiles.push(new Button(this.scene, { x: this.window.pos.x + 16 + (xx * 37), y: this.window.pos.y + 32 + (yy * 37) }, "atlasUi", "sprDesktopCalendarTile", String(i + 1), false, () => { this.txtNoData.setText("503: Service Unavailable"); this.txtNoData.alpha = 1; this.textContainer.alpha = 0; })); } let tile = this.tiles[this.tiles.length - 1]; tile.tintFill = false; tile.tintText = false; tile.colorInState(tile.states.out); tile.setDepth(this.window.depth + 1); this.window.container.add(tile.sprite); this.window.container.add(tile.txt); i += 1; } } this.textContainer = this.scene.add.container(0, 0); this.window.container.add(this.textContainer); this.txtTrackTitle = this.scene.add.bitmapText((this.window.pos.x + this.window.width * 0.5) - 64, this.window.pos.y + (this.window.height * 0.5) + 64, "uiFont", "upcoming race:", 14, 0).setOrigin(0.5).setLetterSpacing(0); this.txtTrackTitle.depth = this.depth + 1; this.txtTrackTitle.setTintFill(0x83769c); this.textContainer.add(this.txtTrackTitle); this.txtTrackname = this.scene.add.bitmapText((this.window.pos.x + this.window.width * 0.5) - 64, this.window.pos.y + (this.window.height * 0.5) + 104 - 14, "uiFont", "Metro Loop", 14, 0).setOrigin(0.5).setLetterSpacing(0); this.txtTrackname.depth = this.depth + 1; this.txtTrackname.setTintFill(0x83769c); this.textContainer.add(this.txtTrackname); this.txtSessionTitle = this.scene.add.bitmapText((this.window.pos.x + this.window.width * 0.5) + 64, this.window.pos.y + (this.window.height * 0.5) + 64, "uiFont", "upcoming sessions:", 14, 0).setOrigin(0.5).setLetterSpacing(0); this.txtSessionTitle.depth = this.depth + 1; this.txtSessionTitle.setTintFill(0x83769c); this.textContainer.add(this.txtSessionTitle); this.txtSessions = this.scene.add.bitmapText(this.window.pos.x + (this.window.width * 0.5) + 32, this.window.pos.y + (this.window.height * 0.5) + 104, "uiFont", "09:00\n11:00\n14:00", 14, 0).setOrigin(1, 0.5).setLetterSpacing(0); this.txtSessions.depth = this.depth + 1; this.txtSessions.setTintFill(0x83769c); this.textContainer.add(this.txtSessions); this.txtSessionNames = this.scene.add.bitmapText(this.window.pos.x + (this.window.width * 0.5) + 32, this.window.pos.y + (this.window.height * 0.5) + 104, "uiFont", " Free Practice\n Qualifying\n Race", 14, 0).setOrigin(0, 0.5).setLetterSpacing(0); this.txtSessionNames.depth = this.depth + 1; this.txtSessionNames.setTintFill(0x83769c); this.textContainer.add(this.txtSessionNames); //this.window.container.add(this.txtSessionNames); this.txtNoData = this.scene.add.bitmapText(this.window.pos.x + (this.window.width * 0.5) + 0, this.window.pos.y + (this.window.height * 0.5) + 104 - 14, "uiFont", "503: Service Unavailable", 14, 0).setOrigin(0.5, 0.5).setLetterSpacing(0); this.txtNoData.depth = this.depth + 1; this.txtNoData.setTintFill(0xff004d); this.window.container.add(this.txtNoData); this.txtNoData.alpha = 0; this.textContainer.alpha = 0; } update() { //console.log("update claendar") for (let t of this.tiles) { t.update(); if (t.hovering === true) { this.computer.cursor.setTexture("atlasUi", "sprDesktopCursorTouch"); } } } destroy() { this.txtTrackTitle.destroy(); this.txtTrackname.destroy(); this.txtSessionTitle.destroy(); this.txtSessions.destroy(); this.txtSessionNames.destroy(); this.textContainer.destroy(); this.txtNoData.destroy(); for (let t of this.tiles) { t.destroy(); } } }