asajs
Version:
Make your Minecraft JsonUI with ScriptingAPI
268 lines (267 loc) • 10.2 kB
JavaScript
;
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
});