WIP
This commit is contained in:
@@ -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
26
package-lock.json
generated
@@ -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="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
18
src/main.ts
18
src/main.ts
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -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 "?"]
|
||||||
|
|||||||
Reference in New Issue
Block a user