first commit
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* Tags bentext réservés au pipeline : ligne `sprite:<alias>` dans le bloc tags (fichier fr).
|
||||
* L’alias correspond à une entrée de `ressources/public/ingredient-sprites.bentext` (comme les tuiles « base »).
|
||||
*/
|
||||
|
||||
export const VARIANT_TILE_SPRITE_TAG_PREFIX = "sprite:";
|
||||
|
||||
const normalizeAliasKey = (s) => s.trim().toLowerCase().replace(/\s+/g, " ");
|
||||
|
||||
/**
|
||||
* @param {ReadonlyArray<string>} tags Tags déjà normalisés (ex. minuscules depuis readBentext)
|
||||
* @returns {string | null} alias tuile, sans le préfixe
|
||||
*/
|
||||
export const extractVariantTileSpriteAlias = (tags) => {
|
||||
if (!Array.isArray(tags)) return null;
|
||||
for (const t of tags) {
|
||||
const s = typeof t === "string" ? t.trim().toLowerCase() : "";
|
||||
if (!s.startsWith(VARIANT_TILE_SPRITE_TAG_PREFIX)) continue;
|
||||
const rest = normalizeAliasKey(s.slice(VARIANT_TILE_SPRITE_TAG_PREFIX.length));
|
||||
if (rest) return rest;
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
/**
|
||||
* Retire les lignes `sprite:` pour le catalogue et les usages « tags visibles ».
|
||||
* @param {ReadonlyArray<string>} tags
|
||||
* @returns {string[]}
|
||||
*/
|
||||
export const stripVariantTileSpriteTags = (tags) => {
|
||||
if (!Array.isArray(tags)) return [];
|
||||
return tags.filter((t) => {
|
||||
const s = typeof t === "string" ? t.trim().toLowerCase() : "";
|
||||
return !s.startsWith(VARIANT_TILE_SPRITE_TAG_PREFIX);
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user