shMonifactory/kubejs/client_scripts/_initial.js
2025-09-14 21:22:24 +03:00

77 lines
1.8 KiB
JavaScript

// priority: 999
/**
! This script loads first before the other startup scripts
* put your util or patches here so that you can access them at other scripts
*/
/**
* # DO NOT USE THIS!!!!
* @private
* @param {string} char 0 - 6
* @param {number} idx
* @returns {Internal.MutableComponent}
*/
const ____rainbowify_idx_to_color = (char, idx) => {
switch (idx) {
case 0:
return Text.red(char);
case 1:
return Text.gold(char); // orange
case 2:
return Text.yellow(char);
case 3:
return Text.green(char);
case 4:
return Text.aqua(char);
case 5:
return Text.blue(char);
case 6:
return Text.lightPurple(char);
default:
return char;
}
}
/**
* Rainbowify text
* @param {string} text
* @param {number} offset
* @returns {Internal.MutableComponent}
*/
const rainbowify = (text, offset) => {
const components = [];
let idx = 0 + (offset || 0);
for (const char of text) {
idx++;
components.push(____rainbowify_idx_to_color(char, (idx % 7)));
}
return Text.join(components);
}
/**
* @param {string} text
* @param {number} offset
* @returns {Internal.MutableComponent}
*/
const rainbowifySingle = (text, offset) => {
return ____rainbowify_idx_to_color(text, (offset % 7));
}
// Tier enums for easier data handling
const TIER_ULV = 0; // ulv
const TIER_LV = 1;
const TIER_MV = 2;
const TIER_HV = 3;
const TIER_EV = 4;
const TIER_IV = 5;
const TIER_LUV = 6;
const TIER_ZPM = 7;
const TIER_UV = 8;
const TIER_UHV = 9;
const TIER_UEV = 10;
const TIER_UIV = 11;
const TIER_MAX = 12;
const TIER_END = 13;
const TIER_ID_MAPPING = [
"ULV", "LV", "MV", "HV", "EV", "IV", "LuV", "ZPM", "UV", "UHV", "UEV", "UIV", "MAX", "END"
]