import { mkdirSync, writeFileSync, readFileSync } from "node:fs";
import { primitives } from "@botanica/renderer";
const directory = "assets/species/velvetleaf";
mkdirSync(directory, { recursive: true });
const files = {};
const manifest = [];
for (const [id, p] of Object.entries(primitives)) {
const [x, y, w, h] = p.bounds;
manifest.push({
assetId: p.assetId,
category: p.category,
anchor: [(p.anchor[0] - x) / w, (p.anchor[1] - y) / h],
bounds: p.bounds,
paletteSlots: p.paletteSlots,
rendererVersion: p.rendererVersion,
});
const leaf = p.category === "leaf",
line = ["branch", "stem"].includes(p.category);
const paths =
'' +
(p.shade
? ''
: "") +
(p.highlight
? ''
: "") +
(p.veins
? ''
: "");
files[directory + "/" + id + "_v1.svg"] =
'\n";
}
files[directory + "/manifest.json"] = JSON.stringify(manifest, null, 2) + "\n";
for (const [file, value] of Object.entries(files)) {
if (process.argv.includes("--check")) {
if (readFileSync(file, "utf8").replaceAll("\r\n", "\n") !== value)
throw new Error("Asset source drift: " + file);
} else writeFileSync(file, value);
}
console.log(
Object.keys(files).length +
" asset files " +
(process.argv.includes("--check") ? "verified" : "written"),
);