UNPKG

asajs

Version:

Make your Minecraft JsonUI with ScriptingAPI

124 lines (123 loc) 5.29 kB
"use strict"; 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 });