fix: 修改文件名大小写
This commit is contained in:
57
tools/json2lua.js
Normal file
57
tools/json2lua.js
Normal file
@@ -0,0 +1,57 @@
|
||||
const { log } = require("console");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const folderPath = "./configs";
|
||||
const scope = [
|
||||
"StdItems",
|
||||
// "ItemMergeConfig", "MergeConfig", "MergeTotal", "RecyclingSettingConfig", "UpstarConfig", "Monster"
|
||||
];
|
||||
const strKey = (key) => (isNaN(key) ? `${key}` : `[${key}]`);
|
||||
function jsonToLua(jsonObj, indent = "", linefeed = "\n") {
|
||||
let luaStr = "";
|
||||
for (key in jsonObj) {
|
||||
let value = jsonObj[key];
|
||||
key = strKey(key);
|
||||
if (typeof value === "object" && value !== null && !Array.isArray(value)) {
|
||||
// 对象
|
||||
luaStr += `${indent}${key} = {`;
|
||||
luaStr += jsonToLua(value, indent + " ");
|
||||
luaStr += `${indent}},\n`;
|
||||
} else if (Array.isArray(value)) {
|
||||
// 数组
|
||||
luaStr += `${indent}${key} = {`;
|
||||
value.forEach((item) => {
|
||||
if (typeof item === "string") {
|
||||
luaStr += `${indent} '${item}',`;
|
||||
} else if (typeof item == "object") {
|
||||
luaStr += `{${jsonToLua(item, "", "")}},`;
|
||||
} else {
|
||||
luaStr += `${indent} ${item},`;
|
||||
}
|
||||
});
|
||||
luaStr += `${indent}},\n`;
|
||||
} else {
|
||||
// 基础类型
|
||||
if (typeof value === "string") {
|
||||
luaStr += `${indent}${key}="${value}",${linefeed}`;
|
||||
} else {
|
||||
luaStr += `${indent}${key}=${value},${linefeed}`;
|
||||
}
|
||||
}
|
||||
}
|
||||
return luaStr;
|
||||
}
|
||||
const start = () => {
|
||||
const files = fs.readdirSync(folderPath);
|
||||
|
||||
// 过滤出所有的 JSON 文件
|
||||
const jsonFiles = files.filter((file) => path.extname(file) === ".json").filter((file) => scope.map((e) => `${e}.json`).includes(file));
|
||||
jsonFiles.forEach((file) => {
|
||||
const json = JSON.parse(fs.readFileSync(path.join(folderPath, file), "utf8"));
|
||||
const filename = path.basename(file, path.extname(file));
|
||||
const luaConfig = `${filename}={\n${jsonToLua(json)}\n}`;
|
||||
|
||||
fs.writeFileSync(`./luaConfigs/${filename}.config`, luaConfig);
|
||||
});
|
||||
};
|
||||
start();
|
||||
Reference in New Issue
Block a user