diff --git a/src/draw.ts b/src/draw.ts index 3564214..b28845d 100644 --- a/src/draw.ts +++ b/src/draw.ts @@ -1,5 +1,43 @@ import { DominionCard } from "./types.ts"; +const imageCache: Record = {}; +export const loadImage = ( + key: string, + src: string +): Promise => { + return new Promise((resolve) => { + if (key in imageCache && imageCache[key]) { + resolve(imageCache[key]); + } + const img = new Image(); + img.onload = () => { + imageCache[key] = img; + resolve(img); + }; + img.src = src; + }); +}; + +const imageList = [ + { + key: "card", + src: "/assets/CardColorOne.png", + }, +]; + +for (const imageInfo of imageList) { + const { key, src } = imageInfo; + await loadImage(key, src); +} + +export const getImage = (key: string) => { + const image = imageCache[key]; + if (!image) { + throw Error(`Tried to get an invalid image ${key}`); + } + return image; +}; + export const drawCard = ( context: CanvasRenderingContext2D, card: DominionCard @@ -19,7 +57,7 @@ const drawStandardCard = async ( const h = context.canvas.height; context.save(); context.fillStyle = "brown"; - context.fillRect(0, 0, w, h); + context.drawImage(getImage("card"), 0, 0); context.restore(); }; diff --git a/src/static/assets/BaseCardBrown.png b/src/static/assets/BaseCardBrown.png new file mode 100644 index 0000000..27fe253 Binary files /dev/null and b/src/static/assets/BaseCardBrown.png differ diff --git a/src/static/assets/BaseCardColorOne.png b/src/static/assets/BaseCardColorOne.png new file mode 100644 index 0000000..466e694 Binary files /dev/null and b/src/static/assets/BaseCardColorOne.png differ diff --git a/src/static/assets/BaseCardGray.png b/src/static/assets/BaseCardGray.png new file mode 100644 index 0000000..468bd4b Binary files /dev/null and b/src/static/assets/BaseCardGray.png differ diff --git a/src/static/assets/BaseCardIcon.png b/src/static/assets/BaseCardIcon.png new file mode 100644 index 0000000..0524d8c Binary files /dev/null and b/src/static/assets/BaseCardIcon.png differ diff --git a/src/static/assets/CardBrown.png b/src/static/assets/CardBrown.png new file mode 100644 index 0000000..944e861 Binary files /dev/null and b/src/static/assets/CardBrown.png differ diff --git a/src/static/assets/CardColorOne.png b/src/static/assets/CardColorOne.png new file mode 100644 index 0000000..0215d90 Binary files /dev/null and b/src/static/assets/CardColorOne.png differ diff --git a/src/static/assets/CardColorThree.png b/src/static/assets/CardColorThree.png new file mode 100644 index 0000000..4cdb8a7 Binary files /dev/null and b/src/static/assets/CardColorThree.png differ diff --git a/src/static/assets/CardColorTwo.png b/src/static/assets/CardColorTwo.png new file mode 100644 index 0000000..08d36a6 Binary files /dev/null and b/src/static/assets/CardColorTwo.png differ diff --git a/src/static/assets/CardColorTwoBig.png b/src/static/assets/CardColorTwoBig.png new file mode 100644 index 0000000..0d28ad3 Binary files /dev/null and b/src/static/assets/CardColorTwoBig.png differ diff --git a/src/static/assets/CardColorTwoNight.png b/src/static/assets/CardColorTwoNight.png new file mode 100644 index 0000000..e5f5a6e Binary files /dev/null and b/src/static/assets/CardColorTwoNight.png differ diff --git a/src/static/assets/CardColorTwoSmall.png b/src/static/assets/CardColorTwoSmall.png new file mode 100644 index 0000000..fd49557 Binary files /dev/null and b/src/static/assets/CardColorTwoSmall.png differ diff --git a/src/static/assets/CardGray.png b/src/static/assets/CardGray.png new file mode 100644 index 0000000..9ed4a07 Binary files /dev/null and b/src/static/assets/CardGray.png differ diff --git a/src/static/assets/CardPortraitIcon.png b/src/static/assets/CardPortraitIcon.png new file mode 100644 index 0000000..30d25b2 Binary files /dev/null and b/src/static/assets/CardPortraitIcon.png differ diff --git a/src/static/assets/Coin.png b/src/static/assets/Coin.png new file mode 100644 index 0000000..13d9a7f Binary files /dev/null and b/src/static/assets/Coin.png differ diff --git a/src/static/assets/Debt.png b/src/static/assets/Debt.png new file mode 100644 index 0000000..63c6ed2 Binary files /dev/null and b/src/static/assets/Debt.png differ diff --git a/src/static/assets/DescriptionFocus.png b/src/static/assets/DescriptionFocus.png new file mode 100644 index 0000000..697cb93 Binary files /dev/null and b/src/static/assets/DescriptionFocus.png differ diff --git a/src/static/assets/DoubleColorOne.png b/src/static/assets/DoubleColorOne.png new file mode 100644 index 0000000..36d01d6 Binary files /dev/null and b/src/static/assets/DoubleColorOne.png differ diff --git a/src/static/assets/DoubleUncoloredDetails.png b/src/static/assets/DoubleUncoloredDetails.png new file mode 100644 index 0000000..2449445 Binary files /dev/null and b/src/static/assets/DoubleUncoloredDetails.png differ diff --git a/src/static/assets/EventBrown.png b/src/static/assets/EventBrown.png new file mode 100644 index 0000000..69a0247 Binary files /dev/null and b/src/static/assets/EventBrown.png differ diff --git a/src/static/assets/EventBrown2.png b/src/static/assets/EventBrown2.png new file mode 100644 index 0000000..6e845ee Binary files /dev/null and b/src/static/assets/EventBrown2.png differ diff --git a/src/static/assets/EventColorOne.png b/src/static/assets/EventColorOne.png new file mode 100644 index 0000000..1f38e93 Binary files /dev/null and b/src/static/assets/EventColorOne.png differ diff --git a/src/static/assets/EventColorTwo.png b/src/static/assets/EventColorTwo.png new file mode 100644 index 0000000..f4e3af9 Binary files /dev/null and b/src/static/assets/EventColorTwo.png differ diff --git a/src/static/assets/EventHeirloom.png b/src/static/assets/EventHeirloom.png new file mode 100644 index 0000000..0389fd6 Binary files /dev/null and b/src/static/assets/EventHeirloom.png differ diff --git a/src/static/assets/Heirloom.png b/src/static/assets/Heirloom.png new file mode 100644 index 0000000..88d3aae Binary files /dev/null and b/src/static/assets/Heirloom.png differ diff --git a/src/static/assets/MatBannerBottom.png b/src/static/assets/MatBannerBottom.png new file mode 100644 index 0000000..9f8eb87 Binary files /dev/null and b/src/static/assets/MatBannerBottom.png differ diff --git a/src/static/assets/MatBannerTop.png b/src/static/assets/MatBannerTop.png new file mode 100644 index 0000000..50a5d21 Binary files /dev/null and b/src/static/assets/MatBannerTop.png differ diff --git a/src/static/assets/MatIcon.png b/src/static/assets/MatIcon.png new file mode 100644 index 0000000..b12dc14 Binary files /dev/null and b/src/static/assets/MatIcon.png differ diff --git a/src/static/assets/PileMarkerColorOne.png b/src/static/assets/PileMarkerColorOne.png new file mode 100644 index 0000000..e874d57 Binary files /dev/null and b/src/static/assets/PileMarkerColorOne.png differ diff --git a/src/static/assets/PileMarkerGrey.png b/src/static/assets/PileMarkerGrey.png new file mode 100644 index 0000000..7fbd8ed Binary files /dev/null and b/src/static/assets/PileMarkerGrey.png differ diff --git a/src/static/assets/PileMarkerIcon.png b/src/static/assets/PileMarkerIcon.png new file mode 100644 index 0000000..f313aaa Binary files /dev/null and b/src/static/assets/PileMarkerIcon.png differ diff --git a/src/static/assets/Potion.png b/src/static/assets/Potion.png new file mode 100644 index 0000000..90cf604 Binary files /dev/null and b/src/static/assets/Potion.png differ diff --git a/src/static/assets/Sun.png b/src/static/assets/Sun.png new file mode 100644 index 0000000..4648da1 Binary files /dev/null and b/src/static/assets/Sun.png differ diff --git a/src/static/assets/TraitBrown.png b/src/static/assets/TraitBrown.png new file mode 100644 index 0000000..b21ea5b Binary files /dev/null and b/src/static/assets/TraitBrown.png differ diff --git a/src/static/assets/TraitBrownSide.png b/src/static/assets/TraitBrownSide.png new file mode 100644 index 0000000..9cecd4b Binary files /dev/null and b/src/static/assets/TraitBrownSide.png differ diff --git a/src/static/assets/TraitColorOne.png b/src/static/assets/TraitColorOne.png new file mode 100644 index 0000000..201b036 Binary files /dev/null and b/src/static/assets/TraitColorOne.png differ diff --git a/src/static/assets/TraitColorOneSide.png b/src/static/assets/TraitColorOneSide.png new file mode 100644 index 0000000..55db55f Binary files /dev/null and b/src/static/assets/TraitColorOneSide.png differ diff --git a/src/static/assets/Traveller.png b/src/static/assets/Traveller.png new file mode 100644 index 0000000..c88255f Binary files /dev/null and b/src/static/assets/Traveller.png differ diff --git a/src/static/assets/VP-Token.png b/src/static/assets/VP-Token.png new file mode 100644 index 0000000..5f267fc Binary files /dev/null and b/src/static/assets/VP-Token.png differ diff --git a/src/static/assets/VP.png b/src/static/assets/VP.png new file mode 100644 index 0000000..108ded4 Binary files /dev/null and b/src/static/assets/VP.png differ