asajs
Version:
Make your Minecraft JsonUI with ScriptingAPI
124 lines (123 loc) • 5.29 kB
JavaScript
;
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var UIBuilder_exports = {};
__export(UIBuilder_exports, {
UIBuilder: () => UIBuilder
});
module.exports = __toCommonJS(UIBuilder_exports);
var import_fs = __toESM(require("fs"));
var import_jsonc_parser = require("jsonc-parser");
var import_JsonBuilder = require("./JsonBuilder");
var import_SearchFiles = require("./SearchFiles");
var import_GenerateDir = require("./GenerateDir");
var import_PreCompile = require("../PreCompile");
class UIBuilder {
static delete(installPath) {
try {
import_fs.default.unlinkSync(installPath);
} catch (error) {
if (import_fs.default.existsSync(installPath)) import_fs.default.rmSync(installPath, { recursive: true });
}
}
static jsonUI(installPath) {
const build = import_JsonBuilder.JsonBuilder.save.build;
let count = 0;
for (const file in build) {
const namespace = build[file].namespace;
delete build[file].namespace;
for (const jsonUI in build[file]) build[file][jsonUI] = build[file][jsonUI].getUI();
console.timeLog(
"COMPILER",
"".concat(file, " ").concat(Object.keys(build[file]).length, " elements has generated!")
);
build[file].namespace = namespace;
(0, import_PreCompile.UIWriteJson)("".concat(installPath, "/@/").concat(file), build[file], "utf-8");
delete build[file];
count++;
}
return count;
}
static modify(installPath) {
if (!import_fs.default.existsSync("".concat(installPath, "/ui"))) import_fs.default.mkdirSync("".concat(installPath, "/ui"));
let count = 0;
const modify = import_JsonBuilder.JsonBuilder.save.modify;
for (const key in modify) {
(0, import_GenerateDir.GenerateDir)(installPath, key);
for (const element in modify[key]) modify[key][element] = modify[key][element].getUI();
console.timeLog(
"COMPILER",
"".concat(key, " ").concat(Object.keys(modify[key]).length, " modify element(s) has generated!")
);
(0, import_PreCompile.UIWriteJson)("".concat(installPath, "/").concat(key), modify[key], "utf-8");
delete modify[key];
count++;
}
return count;
}
static uiDefs(installPath) {
const arr = import_SearchFiles.SearchFiles.array("".concat(installPath, "/@"), "@");
(0, import_PreCompile.UIWriteJson)("".concat(installPath, "/ui/_ui_defs.json"), { ui_defs: arr }, "utf-8");
return arr.length;
}
static contents(installPath) {
const arr = import_SearchFiles.SearchFiles.array(installPath);
(0, import_PreCompile.UIWriteJson)(
"".concat(installPath, "/contents.json"),
{
content: arr.map((v) => ({ path: v }))
},
"utf-8"
);
return arr.length;
}
static texturesList(installPath) {
const arr = import_SearchFiles.SearchFiles.array(installPath).filter((v) => /\.(png|jpg|jpeg)$/.test(v)).map((v) => v.replace(/\.(png|jpg|jpeg)$/, ""));
let textureList = [];
if (import_fs.default.existsSync(".bedrock/textures/textures_list.json")) {
const texturesList = import_fs.default.readFileSync(".bedrock/textures/textures_list.json", "utf-8");
textureList = (0, import_jsonc_parser.parse)(texturesList);
}
if (!import_fs.default.existsSync("".concat(installPath, "/textures"))) import_fs.default.mkdirSync("".concat(installPath, "/textures"));
(0, import_PreCompile.UIWriteJson)(
"".concat(installPath, "/textures/textures_list.json"),
[...arr, ...textureList],
"utf-8"
);
return arr.length;
}
static globalVariables(installPath) {
const globalVariables = import_JsonBuilder.JsonBuilder.save.globalVariables;
(0, import_PreCompile.UIWriteJson)("".concat(installPath, "/ui/_global_variables.json"), globalVariables, "utf-8");
return Object.keys(globalVariables).length;
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
UIBuilder
});