This commit is contained in:
Maciej Caderek
2022-01-19 23:23:12 +01:00
parent 5d750f1a5b
commit 2a2d1dbbca
8 changed files with 44 additions and 33 deletions

View File

@@ -7,9 +7,6 @@
<title>Vite App</title> <title>Vite App</title>
</head> </head>
<body> <body>
<div class="font-init-a">.</div>
<div class="font-init-b">.</div>
<div class="font-init-c">.</div>
<div id="app"></div> <div id="app"></div>
<script type="module" src="/src/main.ts"></script> <script type="module" src="/src/main.ts"></script>
</body> </body>

26
package-lock.json generated
View File

@@ -11,10 +11,12 @@
"@types/chess.js": "^0.11.2", "@types/chess.js": "^0.11.2",
"@types/gif.js": "^0.2.2", "@types/gif.js": "^0.2.2",
"chess.js": "^0.12.0", "chess.js": "^0.12.0",
"gif.js": "^0.2.0" "gif.js": "^0.2.0",
"webfontloader": "^1.6.28"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^17.0.8", "@types/node": "^17.0.8",
"@types/webfontloader": "^1.6.34",
"typescript": "^4.4.4", "typescript": "^4.4.4",
"vite": "^2.7.2" "vite": "^2.7.2"
} }
@@ -35,6 +37,12 @@
"integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==", "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==",
"dev": true "dev": true
}, },
"node_modules/@types/webfontloader": {
"version": "1.6.34",
"resolved": "https://registry.npmjs.org/@types/webfontloader/-/webfontloader-1.6.34.tgz",
"integrity": "sha512-yNIPDl3P1yK/ag9C8CdleEhWrtU1myGr3cxb0yEBN/tkCYoGP5PbQa53mQCXcOLFAvBFzJJQfuEahOZ0ARakqw==",
"dev": true
},
"node_modules/chess.js": { "node_modules/chess.js": {
"version": "0.12.0", "version": "0.12.0",
"resolved": "https://registry.npmjs.org/chess.js/-/chess.js-0.12.0.tgz", "resolved": "https://registry.npmjs.org/chess.js/-/chess.js-0.12.0.tgz",
@@ -467,6 +475,11 @@
"optional": true "optional": true
} }
} }
},
"node_modules/webfontloader": {
"version": "1.6.28",
"resolved": "https://registry.npmjs.org/webfontloader/-/webfontloader-1.6.28.tgz",
"integrity": "sha1-23hhKSU8tujq5UwvsF+HCvZnW64="
} }
}, },
"dependencies": { "dependencies": {
@@ -486,6 +499,12 @@
"integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==", "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==",
"dev": true "dev": true
}, },
"@types/webfontloader": {
"version": "1.6.34",
"resolved": "https://registry.npmjs.org/@types/webfontloader/-/webfontloader-1.6.34.tgz",
"integrity": "sha512-yNIPDl3P1yK/ag9C8CdleEhWrtU1myGr3cxb0yEBN/tkCYoGP5PbQa53mQCXcOLFAvBFzJJQfuEahOZ0ARakqw==",
"dev": true
},
"chess.js": { "chess.js": {
"version": "0.12.0", "version": "0.12.0",
"resolved": "https://registry.npmjs.org/chess.js/-/chess.js-0.12.0.tgz", "resolved": "https://registry.npmjs.org/chess.js/-/chess.js-0.12.0.tgz",
@@ -743,6 +762,11 @@
"resolve": "^1.20.0", "resolve": "^1.20.0",
"rollup": "^2.59.0" "rollup": "^2.59.0"
} }
},
"webfontloader": {
"version": "1.6.28",
"resolved": "https://registry.npmjs.org/webfontloader/-/webfontloader-1.6.28.tgz",
"integrity": "sha1-23hhKSU8tujq5UwvsF+HCvZnW64="
} }
} }
} }

View File

@@ -8,6 +8,7 @@
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^17.0.8", "@types/node": "^17.0.8",
"@types/webfontloader": "^1.6.34",
"typescript": "^4.4.4", "typescript": "^4.4.4",
"vite": "^2.7.2" "vite": "^2.7.2"
}, },
@@ -15,6 +16,7 @@
"@types/chess.js": "^0.11.2", "@types/chess.js": "^0.11.2",
"@types/gif.js": "^0.2.2", "@types/gif.js": "^0.2.2",
"chess.js": "^0.12.0", "chess.js": "^0.12.0",
"gif.js": "^0.2.0" "gif.js": "^0.2.0",
"webfontloader": "^1.6.28"
} }
} }

View File

@@ -65,7 +65,7 @@ class Board {
flip() { flip() {
this.flipped = !this.flipped; this.flipped = !this.flipped;
this.render(this.boardData, this.lastMove); // this.render(this.boardData, this.lastMove);
return this; return this;
} }

View File

@@ -24,7 +24,7 @@ const cleanPGN = (pgn: string) => {
const [_, moves] = game.pgn().split("\n\n"); const [_, moves] = game.pgn().split("\n\n");
const header = Object.entries(game.header()) const header = Object.entries(game.header())
.filter(([key]) => PGN_KEYS.includes(key)) .filter(([key, val]) => PGN_KEYS.includes(key) && val !== "?")
.map(([key, val]) => `[${key} "${val}"]`) .map(([key, val]) => `[${key} "${val}"]`)
.sort() .sort()
.join("\n"); .join("\n");

View File

@@ -6,6 +6,13 @@ import Game from "./game/Game";
import pgns from "./test-data/pgns"; import pgns from "./test-data/pgns";
import createSimpleGIF from "./gif/createSimpleGIF"; import createSimpleGIF from "./gif/createSimpleGIF";
// import { decompressPGN } from "./game/PGNHelpers"; // import { decompressPGN } from "./game/PGNHelpers";
import WebFont from "webfontloader";
WebFont.load({
google: {
families: ["Ubuntu:500,700", "Fira Code"],
},
});
const $app = document.querySelector<HTMLImageElement>("#app"); const $app = document.querySelector<HTMLImageElement>("#app");
@@ -33,7 +40,7 @@ const play = async (board: Board, pgn: string | null, interval: number) => {
await board.render(game.getBoardData(), move); await board.render(game.getBoardData(), move);
} }
await delay(interval * 3); await delay(interval * 5);
play(board, pgn, interval); play(board, pgn, interval);
}; };
@@ -51,18 +58,19 @@ console.log(createDownloadLink.name);
const main = async () => { const main = async () => {
const style = styles.lila; const style = styles.lila;
window.location.hash = // window.location.hash =
"#QiBEdWtlIEthcmwgLyBDb3VudCBJc291YXJkCkQgMTg1OC4/Py4/PwpFIFBhcmlzClIgMS0wClMgUGFyaXMgRlJBClcgUGF1bCBNb3JwaHkKCmU0IGU1IE5mMyBkNiBkNCBCZzQgZHhlNSBCeGYzIFF4ZjMgZHhlNSBCYzQgTmY2IFFiMyBRZTcgTmMzIGM2IEJnNSBiNSBOeGI1IGN4YjUgQnhiNSsgTmJkNyBPLU8tTyBSZDggUnhkNyBSeGQ3IFJkMSBRZTYgQnhkNysgTnhkNyBRYjgrIE54YjggUmQ4Iw=="; // "#QiBEdWtlIEthcmwgLyBDb3VudCBJc291YXJkCkQgMTg1OC4/Py4/PwpFIFBhcmlzClIgMS0wClMgUGFyaXMgRlJBClcgUGF1bCBNb3JwaHkKCmU0IGU1IE5mMyBkNiBkNCBCZzQgZHhlNSBCeGYzIFF4ZjMgZHhlNSBCYzQgTmY2IFFiMyBRZTcgTmMzIGM2IEJnNSBiNSBOeGI1IGN4YjUgQnhiNSsgTmJkNyBPLU8tTyBSZDggUnhkNyBSeGQ3IFJkMSBRZTYgQnhkNysgTnhkNyBRYjgrIE54YjggUmQ4Iw==";
// const hash = window.location.hash; // const hash = window.location.hash;
// const pgn = hash === "" ? null : decompressPGN(hash.slice(1)); // const pgn = hash === "" ? null : decompressPGN(hash.slice(1));
const pgn = pgns[1];
const board = new Board(8).setStyle(style).setSize(720).showBorder(); const board = new Board(8).setStyle(style).setSize(720).showBorder();
$app?.appendChild(board.canvas); $app?.appendChild(board.canvas);
console.log(pgns[5]); console.log(pgn);
play(board, pgns[5], 1000); play(board, pgn, 1000);
// createDownloadLink(pgns[2], style).then((link) => { // createDownloadLink(pgns[2], style).then((link) => {
// document.body.appendChild(link); // document.body.appendChild(link);

View File

@@ -1,6 +1,3 @@
@import url("https://fonts.googleapis.com/css2?family=Fira+Mono&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Ubuntu:wght@500;700&display=swap");
body { body {
background-color: #111; background-color: #111;
background-image: url(01.png); background-image: url(01.png);
@@ -20,20 +17,3 @@ body {
box-shadow: 0 0 30px rgba(0, 0, 0, 0.5); box-shadow: 0 0 30px rgba(0, 0, 0, 0.5);
border-radius: 5px; border-radius: 5px;
} }
.font-init-a {
height: 0;
font-family: "Fira Mono";
}
.font-init-b {
height: 0;
font-family: "Ubuntu";
font-weight: 500;
}
.font-init-c {
height: 0;
font-family: "Ubuntu";
font-weight: 700;
}

View File

@@ -1,5 +1,5 @@
const pgns = [ const pgns = [
`[Event "Paris"] `[Event "Paris Opera"]
[Site "Paris FRA"] [Site "Paris FRA"]
[Date "1858.??.??"] [Date "1858.??.??"]
[EventDate "?"] [EventDate "?"]