Publish the minisprites folder again, on links instead of a hash

b698ac88 dropped the minisprites: they shipped under a whole-set content hash
with a pointer file naming it, nothing had read them or the pointer since 2023,
and they were named by PS id where the smogdex names sprites by smogon alias, so
a reader could not have found one anyway.

The mirror answers both halves. A link is what a reader that composes a path
from the sprite alone actually needs, so the hash directory and the pointer go
and nothing has to be read before asking for a file; and the names are the ones
every other icon set here publishes -- item aliases for the items, the borrowed
gen 6 icons for the pokemon -- which is what the sheet built from these same
pictures already spells in its css.

The set ships the sources verbatim rather than the webps 7dce71cb encoded them
into, so what answers to one of these names is a png, as the links that ask for
one have always spelled it. That leaves the set with no rules of its own: a
minisprite is already the picture, and xyicons/ is the trimmed reading of the
same files.

2139 published names are new, each a stamped file with a link naming it, and one
manifest beside them.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Christopher Monsanto
2026-08-23 19:06:25 -04:00
parent 40289407df
commit ef3e155e44

View File

@@ -159,6 +159,27 @@ oldgen('bw', async ctx => [
...xyGen5,
]);
// sprites/minisprites/: the smogdex's icons as files, one apiece, for a reader
// that wants one of them rather than the whole sheet. The sources ship
// verbatim, which is what makes a file and its cell in the sheet the same
// picture; xyicons/ is the trimmed reading of the same set.
//
// They ride the LINKS mirror because what asks for one composes the path out of
// the sprite and nothing else, which is what the set used to make it read a
// whole-set hash out of a pointer file to do.
deploy(async ctx => {
let manifest = new Manifest(ctx, TREE);
for (let f of await ctx.list('src/minisprites/items')) {
await itemspritecopy(manifest, f, {dir: 'minisprites'});
}
for (let f of await ctx.list('src/minisprites/pokemon/gen6')) {
await spritecopy(manifest, f, {dir: 'minisprites'}, {icons: true});
}
manifest.write('__meta/minisprites/manifest.json');
manifest.links(LINKS);
});
// Smogdex spritesheet. The sheet tool bakes the names parsed from the %f
// filenames into the css, hence nameSensitive. The png is declared only so
// cwebp has something to read; only the css and the webp are published.