-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathmake_letters.js
More file actions
28 lines (21 loc) · 1.04 KB
/
make_letters.js
File metadata and controls
28 lines (21 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/env node
const fs = require("fs");
const path = require("path");
const meshesDir = __dirname + "/../scene3d/assets/meshes";
const lettersDir = __dirname + "/../scene3d/prefabs/icons/letters";
// fs.readdirSync(lettersDir).forEach((file) => {
// console.log(file);
// });
const goContents = fs.readFileSync(lettersDir + "/icon_letter_A.go", { encoding: "utf-8" });
const letters = "BCDEFGHIJKLMNOPRSTUVWXYZ0123456789".split("");
letters.forEach((letter) => {
const filename = lettersDir + "/icon_letter_" + letter + ".go";
const lua = fs.readFileSync(meshesDir + "/icon_letter_" + letter + ".lua", { encoding: "utf-8" });
const size = lua.match(/M\.size = vmath\.vector3\(([\d\.]+), *([\d\.]+), *([\d\.]+)\)/);
const maxDimension = Math.max(size[1], size[2], size[3]);
const contents = goContents
.replace(/letter_A/g, "letter_" + letter)
.replace(/92\.5750017166/g, maxDimension.toFixed(10));
console.log("Write '" + letter + "'");
fs.writeFileSync(filename, contents, { encoding: "utf-8" });
});