Files
jgl_sunlit_patch/kubejs/server_scripts/playerEvents/customGUI.js
T
2026-07-31 10:34:32 +09:00

106 lines
3.0 KiB
JavaScript

console.info("[SOCIETY] coinUi.js loaded");
const xOffset = 64;
PlayerEvents.tick((e) => {
const player = e.player;
if (global.clockIcon && player.age % 20 == 0) {
if (
["gag:energized_hearthstone", "gag:hearthstone"].includes(player.getHeldItem("main_hand").id)
) {
player.paint({
clockIcon: { remove: true },
});
} else {
player.paint({
clockIcon: {
type: "item",
x: 8,
y: 22,
item: "minecraft:clock",
alignX: "left",
alignY: "top",
},
});
}
}
fishRadarPainter(e);
});
const fishRadarPadding = 2;
const fishRadarPainter = (e) => {
const { player, level } = e;
let localConditions = Text.empty();
function setLocalConditions(x) {
localConditions = x;
}
if (player.age % 100 == 0 && player.isCuriosEquipped("society:fish_radar")) {
let fish = [];
if (level.dimension !== "minecraft:the_nether") {
fish = global.overworldRadar(e, fish, setLocalConditions);
} else {
fish = global.netherRadar(e, fish, setLocalConditions);
}
if (player.stages.has("mystical_ocean")) fish.push("society:neptuna");
let fishRadarStart = 48;
player.paint({
fishRadarDisplay: {
type: "text",
x: fishRadarPadding,
y: fishRadarStart,
text:
`${
Text.of("=[ ").gray()
.append(Text.translatable("item.society.fish_radar").green())
.append(" ]=").toJson()
}`,
color: "#AAAAAA",
alignX: "left",
alignY: "top",
},
fishConditions: {
type: "text",
x: level.dimension == "minecraft:the_nether" ? -40 : 8,
y: fishRadarStart + 8 + fishRadarPadding,
text: `${localConditions.toJson()}`,
color: "#FFFFFFF",
alignX: "left",
alignY: "top",
},
fishRadarBottom: {
type: "text",
x: fishRadarPadding,
y: fishRadarStart + 16 + fishRadarPadding * 2,
text: "==============",
color: "#AAAAAA",
alignX: "left",
alignY: "top",
},
});
let fishUiElements = {};
let fishUiElementIds = [];
for (let index = 0; index < 10; index++) {
fishUiElementIds.push(`fish_radar_${index}`);
}
fish.forEach((fishItem, index) => {
fishUiElements[`fish_radar_${index}`] = {
type: "item",
x: 10 + (index >= 5 ? (index - 5) * 18 : index * 18),
y: fishRadarStart + 32 + fishRadarPadding * 4 + (index >= 5 ? 18 : 0),
item: fishItem,
alignX: "left",
alignY: "top",
};
});
global.renderUiItemText(player, fishUiElements, fishUiElementIds);
} else if (player.age % 100 == 0 && !player.isCuriosEquipped("society:fish_radar")) {
let removedFishUiIds = ["fishRadarDisplay", "fishConditions", "fishRadarBottom"];
for (let index = 0; index < 10; index++) {
removedFishUiIds.push(`fish_radar_${index}`);
}
global.clearUiItemPaint(player, removedFishUiIds);
}
};