From f1bddc7eefe345ad25fb68f4b331497d7e0c1846 Mon Sep 17 00:00:00 2001 From: evanpelle Date: Sun, 18 Aug 2024 20:38:25 -0700 Subject: [PATCH] use overpass font --- TODO.txt | 1 + package-lock.json | 280 ++++++++++++++++++++++++++ package.json | 5 +- resources/fonts/overpass-bold.woff | Bin 0 -> 29840 bytes resources/fonts/overpass.woff | Bin 0 -> 30204 bytes src/client/Client.ts | 2 + src/client/graphics/NameRenderer.ts | 10 +- src/client/index.html | 10 + src/client/styles.css | 10 + src/core/configuration/PastelTheme.ts | 2 +- tsconfig.json | 2 + webpack.config.js | 17 ++ 12 files changed, 329 insertions(+), 10 deletions(-) create mode 100755 resources/fonts/overpass-bold.woff create mode 100644 resources/fonts/overpass.woff create mode 100644 src/client/styles.css diff --git a/TODO.txt b/TODO.txt index c01df192e..3967d589f 100644 --- a/TODO.txt +++ b/TODO.txt @@ -29,6 +29,7 @@ * improve front page, only one game at a time every 30s DONE 8/17/2024 * create dev server DONE 8/18/2024 * BUG: boats freeze game on path calculation DONE 8/18/2024 +* Use Overpass font * better algorithm for name render placement * make boats larger * have boats not get close to shore diff --git a/package-lock.json b/package-lock.json index bec3e91e4..8efb1a9e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,6 +31,8 @@ "babel-jest": "^29.7.0", "chai": "^5.1.1", "concurrently": "^8.2.2", + "css-loader": "^7.1.2", + "file-loader": "^6.2.0", "html-inline-script-webpack-plugin": "^3.2.1", "html-webpack-plugin": "^5.6.0", "jest": "^29.7.0", @@ -38,6 +40,7 @@ "mrmime": "^2.0.0", "sinon": "^18.0.0", "sinon-chai": "^4.0.0", + "style-loader": "^4.0.0", "ts-jest": "^29.2.4", "ts-loader": "^9.5.1", "ts-mocha": "^10.0.0", @@ -4375,6 +4378,16 @@ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -5178,6 +5191,42 @@ "deprecated": "This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in.", "license": "ISC" }, + "node_modules/css-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.27.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, "node_modules/css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", @@ -5206,6 +5255,19 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/date-fns": { "version": "2.30.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", @@ -5557,6 +5619,16 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -5954,6 +6026,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, "node_modules/file-type": { "version": "16.5.4", "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", @@ -6693,6 +6786,19 @@ "node": ">=0.10.0" } }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -8199,6 +8305,21 @@ "node": ">=6.11.5" } }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -8866,6 +8987,25 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -9477,6 +9617,119 @@ "node": ">=12.13.0" } }, + "node_modules/postcss": { + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, "node_modules/pretty-error": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", @@ -10390,6 +10643,16 @@ "node": ">= 8" } }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -10656,6 +10919,23 @@ "url": "https://github.com/sponsors/Borewit" } }, + "node_modules/style-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz", + "integrity": "sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.27.0" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", diff --git a/package.json b/package.json index a8c3bbf0c..d9ebccfa9 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,8 @@ "babel-jest": "^29.7.0", "chai": "^5.1.1", "concurrently": "^8.2.2", + "css-loader": "^7.1.2", + "file-loader": "^6.2.0", "html-inline-script-webpack-plugin": "^3.2.1", "html-webpack-plugin": "^5.6.0", "jest": "^29.7.0", @@ -29,6 +31,7 @@ "mrmime": "^2.0.0", "sinon": "^18.0.0", "sinon-chai": "^4.0.0", + "style-loader": "^4.0.0", "ts-jest": "^29.2.4", "ts-loader": "^9.5.1", "ts-mocha": "^10.0.0", @@ -54,4 +57,4 @@ "zod": "^3.23.8" }, "type": "module" -} \ No newline at end of file +} diff --git a/resources/fonts/overpass-bold.woff b/resources/fonts/overpass-bold.woff new file mode 100755 index 0000000000000000000000000000000000000000..d35502e52ad75a112a9f19ef2350ad5b376024d7 GIT binary patch literal 29840 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

^?|vij)jRf)%IMp~LgLOH)$m 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 ZDF|K@BVu@(xFkl&NQJTd0Y|b*6##p88}9%B literal 0 HcmV?d00001 diff --git a/src/client/Client.ts b/src/client/Client.ts index fdc578f29..ebdf8620a 100644 --- a/src/client/Client.ts +++ b/src/client/Client.ts @@ -8,6 +8,8 @@ import {loadTerrainMap} from "../core/TerrainMapLoader"; import {ClientGame, createClientGame} from "./ClientGame"; import {v4 as uuidv4} from 'uuid'; import backgroundImage from '../../resources/images/empty_map.png'; +import './styles.css'; + // import WebSocket from 'ws'; diff --git a/src/client/graphics/NameRenderer.ts b/src/client/graphics/NameRenderer.ts index 0ca10bb6f..d5831e6ef 100644 --- a/src/client/graphics/NameRenderer.ts +++ b/src/client/graphics/NameRenderer.ts @@ -39,13 +39,6 @@ export class NameRenderer { } public render(mainContex: CanvasRenderingContext2D, scale: number, uppperLeft: Cell, bottomRight: Cell) { - // mainContex.drawImage( - // this.canvas, - // -this.game.width() / 2, - // -this.game.height() / 2, - // this.game.width(), - // this.game.height() - // ) for (const render of this.toRender) { if (render.player.isAlive()) { this.renderPlayerInfo(render, mainContex, scale, uppperLeft, bottomRight) @@ -104,12 +97,13 @@ export class NameRenderer { context.textRendering = "optimizeSpeed"; - context.font = `bold ${render.fontSize}px ${this.theme.font()}`; + context.font = `${render.fontSize}px ${this.theme.font()}`; context.fillStyle = this.theme.playerInfoColor(render.player.id()).toHex(); context.textAlign = 'center'; context.textBaseline = 'middle'; context.fillText(render.player.info().name, nameCenterX, nameCenterY - render.fontSize / 2); + context.font = `bold ${render.fontSize}px ${this.theme.font()}`; context.fillText(String(Math.floor(render.player.troops())), nameCenterX, nameCenterY + render.fontSize); } } \ No newline at end of file diff --git a/src/client/index.html b/src/client/index.html index 3427a27e0..75cc20b5b 100644 --- a/src/client/index.html +++ b/src/client/index.html @@ -5,6 +5,7 @@ OpenFront + diff --git a/src/client/styles.css b/src/client/styles.css new file mode 100644 index 000000000..bf5a27655 --- /dev/null +++ b/src/client/styles.css @@ -0,0 +1,10 @@ +@font-face { + font-family: 'Overpass'; + src: url('/resources/fonts/overpass.woff') format('woff'); + font-weight: normal; + font-style: normal; +} + +body { + font-family: 'Overpass', sans-serif; +} \ No newline at end of file diff --git a/src/core/configuration/PastelTheme.ts b/src/core/configuration/PastelTheme.ts index cccee6278..2e5e04157 100644 --- a/src/core/configuration/PastelTheme.ts +++ b/src/core/configuration/PastelTheme.ts @@ -87,6 +87,6 @@ export const pastelTheme = new class implements Theme { } font(): string { - return "Arial"; + return "Overpass, sans-serif"; } } \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 64fda67b4..8411451d5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,6 +11,8 @@ "include": [ "src/**/*", "resources/**/*", + "src/**/*.ts", + "src/**/*.css", "test/core/GameImpl.test.ts" ], "exclude": [ diff --git a/webpack.config.js b/webpack.config.js index 585d0b230..fcddb7149 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -22,6 +22,10 @@ export default (env, argv) => { use: 'ts-loader', exclude: /node_modules/, }, + { + test: /\.css$/, + use: ['style-loader', 'css-loader'] + }, { test: /\.(png|jpe?g|gif)$/i, type: 'asset/resource', @@ -32,6 +36,19 @@ export default (env, argv) => { { test: /\.svg$/, type: 'asset/inline', + }, + { + test: /\.(woff|woff2|eot|ttf|otf)$/, + use: [ + { + loader: 'file-loader', + options: { + name: '[name].[ext]', + outputPath: 'fonts/', + publicPath: '../fonts/', // This is important + } + } + ] } ], },