UNPKG

asajs

Version:

Make your Minecraft JsonUI with ScriptingAPI

268 lines (267 loc) 10.2 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; 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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var BindingFunctions_exports = {}; __export(BindingFunctions_exports, { BindingFunctions: () => BindingFunctions, funcObj: () => funcObj }); module.exports = __toCommonJS(BindingFunctions_exports); var import_Class = require("../components/Class"); var import_Random = require("../components/Random"); var import_BindingCompiler = require("./BindingCompiler"); var import_Log = require("./generator/Log"); var import_CurrentLine = require("./reader/CurrentLine"); const funcObj = { sum: (arg, params) => { const bindingName = import_Random.Random.bindingName(); arg.addBindings({ source_property_name: "(".concat(params.join(" + "), ")"), target_property_name: bindingName }); return bindingName; }, sumAvg: (arg, params) => { const bindingName = import_Random.Random.bindingName(); arg.addBindings({ source_property_name: "((".concat(params.join(" + "), ") / ").concat(params.length, ")"), target_property_name: bindingName }); return bindingName; }, max: (arg, params) => { let current = params[0]; for (const nextBinding of params.slice(1)) { arg.addBindings({ source_property_name: [ "(".concat(current, " >= ").concat(nextBinding, ") * ").concat(current, " + (").concat(current, " < ").concat(nextBinding, ") * ").concat(nextBinding) ], target_property_name: current = import_Random.Random.bindingName() }); } return current; }, min: (arg, params) => { let current = params[0]; for (const nextBinding of params.slice(1)) { arg.addBindings({ source_property_name: [ "(".concat(current, " <= ").concat(nextBinding, ") * ").concat(current, " + (").concat(current, " > ").concat(nextBinding, ") * ").concat(nextBinding) ], target_property_name: current = import_Random.Random.bindingName() }); } return current; }, abs: (arg, [binding]) => { const bindingName = import_Random.Random.bindingName(); arg.addBindings({ source_property_name: "((-1 + (".concat(binding, " > 0) * 2) * ").concat(binding, ")"), target_property_name: bindingName }); return bindingName; }, isEven: (arg, params) => { const bindingName = import_Random.Random.bindingName(); if (params.length > 1) { params.map((binding) => { const bindingName2 = import_Random.Random.bindingName(); arg.addBindings({ source_property_name: ["(".concat(binding, " % 2) == 0")], target_property_name: bindingName2 }); return bindingName2; }); arg.addBindings({ source_property_name: "(".concat(params.join(" and "), ")"), target_property_name: bindingName }); } else { arg.addBindings({ source_property_name: ["(".concat(params[0], " % 2) == 0")], target_property_name: bindingName }); } return bindingName; }, isOdd: (arg, params) => { const bindingName = import_Random.Random.bindingName(); if (params.length > 1) { params.map((binding) => { const bindingName2 = import_Random.Random.bindingName(); arg.addBindings({ source_property_name: ["(".concat(binding, " % 2) == 1")], target_property_name: bindingName2 }); return bindingName2; }); arg.addBindings({ source_property_name: "(".concat(params.join(" and "), ")"), target_property_name: bindingName }); } else { arg.addBindings({ source_property_name: ["(".concat(params[0], " % 2) == 1")], target_property_name: bindingName }); } return bindingName; }, int: (arg, [float, intLength]) => { const sumBnd = []; const _intLength = Number.isNaN(+intLength) ? -1 : +intLength; let bindingName = import_Random.Random.bindingName(); if (_intLength < 0) { arg.setProperties({ property_bag: { [bindingName]: 0 } }); arg.addBindings({ source_property_name: "(".concat(bindingName, " + (").concat(bindingName, " < ").concat(float, ") - (").concat(bindingName, " > ").concat(float, "))"), target_property_name: bindingName }); } else { let calcBindingName = import_Random.Random.bindingName(); arg.addBindings({ source_property_name: ["abs(".concat(float, ")")], target_property_name: calcBindingName = import_Random.Random.bindingName() }); for (let i = _intLength - 1; i >= 0; i--) { arg.addBindings({ source_property_name: "(".concat(Math.pow(10, i), " * (").concat(Array.from( { length: 10 }, (v, c) => "(".concat(calcBindingName, " > ").concat((c + 1) * Math.pow(10, i) - 1, ")") ).join(" + "), "))"), target_property_name: bindingName = import_Random.Random.bindingName() }); sumBnd.push(bindingName); if (i !== 0) arg.addBindings({ source_property_name: "(".concat(calcBindingName, " - ").concat(bindingName, ")"), target_property_name: calcBindingName = import_Random.Random.bindingName() }); } arg.addBindings([ { source_property_name: "(".concat(sumBnd.join(" + "), ")"), target_property_name: bindingName = import_Random.Random.bindingName() }, { source_property_name: "(".concat(bindingName, " * (1 - (").concat(float, " < 0) * 2))"), target_property_name: bindingName = import_Random.Random.bindingName() } ]); } return bindingName; }, slice: (arg, [str, start, end]) => { const bindingName = import_Random.Random.bindingName(); if (!(import_BindingCompiler.BindingCompiler.isString(str) || import_BindingCompiler.BindingCompiler.isHasBinding(str))) str = "'".concat(str, "'"); if (end) { arg.addBindings({ source_property_name: [" '%.{".concat(end, " - ").concat(start, "}s' * slice(").concat(str, ", ").concat(start, ") ")], target_property_name: bindingName }); } else { arg.addBindings({ source_property_name: [ Number.isNaN(+start) ? " '__START__{ ".concat(str, " }' - '__START__{ '%.{ ").concat(start, " }s' * ").concat(str, " }' ") : " '__START__{ ".concat(str, " }' - '__START__{ '%.").concat(start, "s' * ").concat(str, " }' ") ], target_property_name: bindingName }); } return bindingName; }, pow: (arg, [num1, num2]) => { const bindingName = import_Random.Random.bindingName(); if (import_BindingCompiler.BindingCompiler.isNumber(num2)) { const $2 = +num2; if (import_BindingCompiler.BindingCompiler.isNumber(num1)) return Math.pow(+num1, $2); else { if ($2 === 0) return 1; else if ($2 > 0) return Array.from({ length: $2 }, () => num1).join(" * "); else return "1 / ".concat(Array.from({ length: $2 * -1 }, () => num1).join(" / ")); } } else { for (let i = 1; i <= 32; i++) { arg.addBindings({ source_property_name: "(".concat(num2, " / ((").concat(num1, " < ").concat(i, ") * ").concat(num2, "))"), target_property_name: "".concat(bindingName).concat(i) }); arg.addBindings({ source_property_name: "(".concat(num2, " / ((").concat(num1, " > ").concat(i * -1, ") * ").concat(num2, "))"), target_property_name: "".concat(bindingName, "_").concat(i) }); } arg.addBindings({ source_property_name: "( ".concat(Array.from( { length: 32 }, (v, i) => "".concat(bindingName).concat(i + 1) ).join(" * "), " / ").concat(Array.from( { length: 32 }, (v, i) => "".concat(bindingName, "_").concat(i + 1) ).join(" / "), ")"), target_property_name: bindingName }); } return bindingName; }, sqrt: (arg, [num]) => { const bindingName = import_Random.Random.bindingName(); if (import_BindingCompiler.BindingCompiler.isNumber(num)) { return "".concat(Math.sqrt(+num)); } else { const binding2 = import_Random.Random.bindingName(); const x = 100; arg.addBindings([ { source_property_name: "(".concat(num, " * ").concat(x, " / 2)"), target_property_name: bindingName }, { source_property_name: "[ abs((".concat(bindingName, " * ").concat(bindingName, ") - ").concat(num, ") > 1 ]"), target_property_name: binding2 }, { source_property_name: "( (".concat(num, " < 0) * -1 + (").concat(num, " > -1) * (").concat(binding2, " * ((").concat(bindingName, " + ").concat(num, " / ").concat(bindingName, ") / 2) + (not ").concat(binding2, ") * ").concat(bindingName, ") )"), target_property_name: bindingName } ]); } return bindingName; } }; class BindingFunctions extends import_Class.Class { static register(name, callback, override) { const n = name; if (override || !funcObj[n]) { funcObj[n] = callback; } else import_Log.Log.error( "".concat((0, import_CurrentLine.CurrentLine)(), " '").concat(n, "' function already exists, do you want to override it?") ); } } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { BindingFunctions, funcObj });