From 2a90a56a2b9ba0698c7ec2164d41be134e684029 Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Sun, 18 Jan 2026 21:07:02 -0500 Subject: [PATCH] Add viking helmet --- aseprite/hats.aseprite | Bin 371 -> 474 bytes dist/extension.zip | Bin 150797 -> 151002 bytes dist/extension/birb.js | 30 ++++++++++++++++++------------ dist/obsidian/main.js | 30 ++++++++++++++++++------------ dist/userscript/birb.user.js | 30 ++++++++++++++++++------------ dist/web/birb.embed.js | 30 ++++++++++++++++++------------ dist/web/birb.js | 30 ++++++++++++++++++------------ sprites/hats.png | Bin 116 -> 212 bytes src/application.js | 2 +- src/hats.js | 26 ++++++++++++++++---------- 10 files changed, 107 insertions(+), 71 deletions(-) diff --git a/aseprite/hats.aseprite b/aseprite/hats.aseprite index e2cfa0b31653f6425256783d9e63a6bda9987036..2668d218545ad2db45c543591c6113a2586b3ec8 100644 GIT binary patch delta 126 zcmey&bc>n&79#`0gQZLx*&P`f*(ZB4YNe+$Ffjc3$jC4OC<85E{KD-RtW*!#-=jtri delta 22 dcmcb`{F#Zpn2~|u!BWPJ?2e3#9Fsj6wE#{;1>OJv diff --git a/dist/extension.zip b/dist/extension.zip index 157c870dc0b76eef88ccf60ebb0baf13f00fd366..c3abb6d501969b493b33447748662e5e1d10a8bb 100644 GIT binary patch delta 27834 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 delta 27555 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

$bOEviE1%ND0T?>tsD*Pd88ofTF4 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 diff --git a/dist/extension/birb.js b/dist/extension/birb.js index f46576c..72de274 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -607,9 +607,12 @@ } } + const HAT_WIDTH = 12; + const HAT = { - NONE: 'none', - TOP_HAT: 'top-hat' + NONE: "none", + TOP_HAT: "top-hat", + VIKING_HELMET: "viking-helmet", }; /** @@ -621,13 +624,15 @@ base: [], down: [] }; - for (const hatName in HAT) { + for (let i = 0; i < Object.keys(HAT).length; i++) { + const hatName = Object.keys(HAT)[i]; if (hatName === 'NONE') { continue; } + const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } @@ -636,18 +641,19 @@ /** * @param {string[][]} spriteSheet - * @param {string} hatName + * @param {string} hatName + * @param {number} hatIndex * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ - function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + const TOP_PADDING = 5 + yOffset; + const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); const paddedHatPixels = []; // Top padding @@ -1872,7 +1878,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAC5JREFUKJFjYBgFgwEwYhH7j08NE6k2sKALnJCVReFbPH6M0zp0p6ADRgYGBgYAqu4FCZWdtIcAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAMCAYAAAB4MH11AAAAAXNSR0IArs4c6QAAAI5JREFUOI1jYBgFo2BIgv9oGJ86gnJM5Dri8NlLyAYhOwZFjgVd5wlZWRS+xePHBC1rqWtnYGBgYKhpqsTwFSOyQgIGoaidvXY7AwMDA8PLixcYGBgYGN59esPAwMDAoGnrwsDAwMCQGuzJwMDAwMiEZgA+jGJZarAnw8ObV1EMZ2BgYHh48yrccAYGBgYAg40ttqzdeHIAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2030,7 +2036,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.VIKING_HELMET; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index 1b2f17b..88fe6e3 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -612,9 +612,12 @@ module.exports = class PocketBird extends Plugin { } } + const HAT_WIDTH = 12; + const HAT = { - NONE: 'none', - TOP_HAT: 'top-hat' + NONE: "none", + TOP_HAT: "top-hat", + VIKING_HELMET: "viking-helmet", }; /** @@ -626,13 +629,15 @@ module.exports = class PocketBird extends Plugin { base: [], down: [] }; - for (const hatName in HAT) { + for (let i = 0; i < Object.keys(HAT).length; i++) { + const hatName = Object.keys(HAT)[i]; if (hatName === 'NONE') { continue; } + const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } @@ -641,18 +646,19 @@ module.exports = class PocketBird extends Plugin { /** * @param {string[][]} spriteSheet - * @param {string} hatName + * @param {string} hatName + * @param {number} hatIndex * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ - function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + const TOP_PADDING = 5 + yOffset; + const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); const paddedHatPixels = []; // Top padding @@ -1915,7 +1921,7 @@ module.exports = class PocketBird extends Plugin { }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAC5JREFUKJFjYBgFgwEwYhH7j08NE6k2sKALnJCVReFbPH6M0zp0p6ADRgYGBgYAqu4FCZWdtIcAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAMCAYAAAB4MH11AAAAAXNSR0IArs4c6QAAAI5JREFUOI1jYBgFo2BIgv9oGJ86gnJM5Dri8NlLyAYhOwZFjgVd5wlZWRS+xePHBC1rqWtnYGBgYKhpqsTwFSOyQgIGoaidvXY7AwMDA8PLixcYGBgYGN59esPAwMDAoGnrwsDAwMCQGuzJwMDAwMiEZgA+jGJZarAnw8ObV1EMZ2BgYHh48yrccAYGBgYAg40ttqzdeHIAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2073,7 +2079,7 @@ module.exports = class PocketBird extends Plugin { let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.VIKING_HELMET; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index a181574..c0c2b99 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -621,9 +621,12 @@ } } + const HAT_WIDTH = 12; + const HAT = { - NONE: 'none', - TOP_HAT: 'top-hat' + NONE: "none", + TOP_HAT: "top-hat", + VIKING_HELMET: "viking-helmet", }; /** @@ -635,13 +638,15 @@ base: [], down: [] }; - for (const hatName in HAT) { + for (let i = 0; i < Object.keys(HAT).length; i++) { + const hatName = Object.keys(HAT)[i]; if (hatName === 'NONE') { continue; } + const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } @@ -650,18 +655,19 @@ /** * @param {string[][]} spriteSheet - * @param {string} hatName + * @param {string} hatName + * @param {number} hatIndex * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ - function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + const TOP_PADDING = 5 + yOffset; + const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); const paddedHatPixels = []; // Top padding @@ -1877,7 +1883,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAC5JREFUKJFjYBgFgwEwYhH7j08NE6k2sKALnJCVReFbPH6M0zp0p6ADRgYGBgYAqu4FCZWdtIcAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAMCAYAAAB4MH11AAAAAXNSR0IArs4c6QAAAI5JREFUOI1jYBgFo2BIgv9oGJ86gnJM5Dri8NlLyAYhOwZFjgVd5wlZWRS+xePHBC1rqWtnYGBgYKhpqsTwFSOyQgIGoaidvXY7AwMDA8PLixcYGBgYGN59esPAwMDAoGnrwsDAwMCQGuzJwMDAwMiEZgA+jGJZarAnw8ObV1EMZ2BgYHh48yrccAYGBgYAg40ttqzdeHIAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2035,7 +2041,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.VIKING_HELMET; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index b34324f..3edea81 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -607,9 +607,12 @@ } } + const HAT_WIDTH = 12; + const HAT = { - NONE: 'none', - TOP_HAT: 'top-hat' + NONE: "none", + TOP_HAT: "top-hat", + VIKING_HELMET: "viking-helmet", }; /** @@ -621,13 +624,15 @@ base: [], down: [] }; - for (const hatName in HAT) { + for (let i = 0; i < Object.keys(HAT).length; i++) { + const hatName = Object.keys(HAT)[i]; if (hatName === 'NONE') { continue; } + const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } @@ -636,18 +641,19 @@ /** * @param {string[][]} spriteSheet - * @param {string} hatName + * @param {string} hatName + * @param {number} hatIndex * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ - function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + const TOP_PADDING = 5 + yOffset; + const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); const paddedHatPixels = []; // Top padding @@ -1857,7 +1863,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAC5JREFUKJFjYBgFgwEwYhH7j08NE6k2sKALnJCVReFbPH6M0zp0p6ADRgYGBgYAqu4FCZWdtIcAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAMCAYAAAB4MH11AAAAAXNSR0IArs4c6QAAAI5JREFUOI1jYBgFo2BIgv9oGJ86gnJM5Dri8NlLyAYhOwZFjgVd5wlZWRS+xePHBC1rqWtnYGBgYKhpqsTwFSOyQgIGoaidvXY7AwMDA8PLixcYGBgYGN59esPAwMDAoGnrwsDAwMCQGuzJwMDAwMiEZgA+jGJZarAnw8ObV1EMZ2BgYHh48yrccAYGBgYAg40ttqzdeHIAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2015,7 +2021,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.VIKING_HELMET; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/dist/web/birb.js b/dist/web/birb.js index b34324f..3edea81 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -607,9 +607,12 @@ } } + const HAT_WIDTH = 12; + const HAT = { - NONE: 'none', - TOP_HAT: 'top-hat' + NONE: "none", + TOP_HAT: "top-hat", + VIKING_HELMET: "viking-helmet", }; /** @@ -621,13 +624,15 @@ base: [], down: [] }; - for (const hatName in HAT) { + for (let i = 0; i < Object.keys(HAT).length; i++) { + const hatName = Object.keys(HAT)[i]; if (hatName === 'NONE') { continue; } + const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } @@ -636,18 +641,19 @@ /** * @param {string[][]} spriteSheet - * @param {string} hatName + * @param {string} hatName + * @param {number} hatIndex * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ - function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + const TOP_PADDING = 5 + yOffset; + const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); const paddedHatPixels = []; // Top padding @@ -1857,7 +1863,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAC5JREFUKJFjYBgFgwEwYhH7j08NE6k2sKALnJCVReFbPH6M0zp0p6ADRgYGBgYAqu4FCZWdtIcAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAMCAYAAAB4MH11AAAAAXNSR0IArs4c6QAAAI5JREFUOI1jYBgFo2BIgv9oGJ86gnJM5Dri8NlLyAYhOwZFjgVd5wlZWRS+xePHBC1rqWtnYGBgYKhpqsTwFSOyQgIGoaidvXY7AwMDA8PLixcYGBgYGN59esPAwMDAoGnrwsDAwMCQGuzJwMDAwMiEZgA+jGJZarAnw8ObV1EMZ2BgYHh48yrccAYGBgYAg40ttqzdeHIAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2015,7 +2021,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.VIKING_HELMET; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/sprites/hats.png b/sprites/hats.png index 1840ac978e4704bd9919e5740079d216da97d2b2..25500dd9ea11b7678a562c3516ece149d58c3d67 100644 GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^5y)rvJ0SH!P zt~&BTRC$vV6WhWSbN7~6GXufl)7|0{AaJj?>hJ*|SdjVp5Qv^2_2wjqKGBlKVAqor unYBUv@Zs6vfjl6yDk?r}-6>!L0*2;Z-EC{`RulnU#^CAd=d#Wzp$P!ntxp^P literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k#^NA%Cx&(BWL^R}dY&$hAsQ2t z6C_xh84Z#IfA{QVuz-8cgsH9%qiyPXE?bo>U%>3f1_TVN-m!8{ox7zSsFT6d L)z4*}Q$iB}AZ;Jp diff --git a/src/application.js b/src/application.js index 5b4ad56..28e9095 100644 --- a/src/application.js +++ b/src/application.js @@ -237,7 +237,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.VIKING_HELMET; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/src/hats.js b/src/hats.js index b71a083..a295e19 100644 --- a/src/hats.js +++ b/src/hats.js @@ -2,9 +2,12 @@ import Layer from "./animation/layer.js"; import { PALETTE } from "./animation/sprites.js"; import { getLayerPixels } from "./shared.js"; +const HAT_WIDTH = 12; + export const HAT = { - NONE: 'none', - TOP_HAT: 'top-hat' + NONE: "none", + TOP_HAT: "top-hat", + VIKING_HELMET: "viking-helmet", }; /** @@ -16,13 +19,15 @@ export function createHatLayers(spriteSheet) { base: [], down: [] }; - for (const hatName in HAT) { + for (let i = 0; i < Object.keys(HAT).length; i++) { + const hatName = Object.keys(HAT)[i]; if (hatName === 'NONE') { continue; } + const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } @@ -31,18 +36,19 @@ export function createHatLayers(spriteSheet) { /** * @param {string[][]} spriteSheet - * @param {string} hatName + * @param {string} hatName + * @param {number} hatIndex * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ -function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { +function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + const TOP_PADDING = 5 + yOffset; + const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); const paddedHatPixels = []; // Top padding