261 lines
11 KiB
JavaScript
261 lines
11 KiB
JavaScript
//priority: 100
|
|
console.info("[SOCIETY] preservesJar.js loaded");
|
|
|
|
const roeFish = [
|
|
{ item: "aquaculture:atlantic_herring" },
|
|
{ item: "minecraft:pufferfish" },
|
|
{ item: "aquaculture:minnow" },
|
|
{ item: "aquaculture:bluegill" },
|
|
{ item: "aquaculture:perch" },
|
|
{ item: "minecraft:salmon" },
|
|
{ item: "aquaculture:blackfish" },
|
|
{ item: "aquaculture:brown_trout" },
|
|
{ item: "aquaculture:carp" },
|
|
{ item: "aquaculture:piranha" },
|
|
{ item: "aquaculture:smallmouth_bass" },
|
|
{ item: "minecraft:cod" },
|
|
{ item: "aquaculture:pollock" },
|
|
{ item: "aquaculture:jellyfish" },
|
|
{ item: "aquaculture:rainbow_trout" },
|
|
{ item: "aquaculture:pink_salmon" },
|
|
{ item: "minecraft:tropical_fish" },
|
|
{ item: "aquaculture:red_grouper" },
|
|
{ item: "aquaculture:gar" },
|
|
{ item: "aquaculture:muskellunge" },
|
|
{ item: "aquaculture:synodontis" },
|
|
{ item: "aquaculture:tambaqui" },
|
|
{ item: "aquaculture:atlantic_cod" },
|
|
{ item: "aquaculture:boulti" },
|
|
{ item: "aquaculture:leech" },
|
|
{ item: "aquaculture:catfish" },
|
|
{ item: "aquaculture:tuna" },
|
|
{ item: "aquaculture:bayad" },
|
|
{ item: "aquaculture:arapaima" },
|
|
{ item: "aquaculture:atlantic_halibut" },
|
|
{ item: "aquaculture:starshell_turtle" },
|
|
{ item: "aquaculture:brown_shrooma" },
|
|
{ item: "aquaculture:red_shrooma" },
|
|
{ item: "aquaculture:arrau_turtle" },
|
|
{ item: "aquaculture:capitaine" },
|
|
{ item: "aquaculture:box_turtle" },
|
|
{ item: "aquaculture:pacific_halibut" },
|
|
{ item: "aquaculture:goldfish" },
|
|
{ item: "crabbersdelight:shrimp" },
|
|
{ item: "crabbersdelight:clawster" },
|
|
{ item: "crabbersdelight:crab" },
|
|
{ item: "crabbersdelight:clam" },
|
|
{ item: "netherdepthsupgrade:searing_cod" },
|
|
{ item: "netherdepthsupgrade:blazefish" },
|
|
{ item: "netherdepthsupgrade:lava_pufferfish" },
|
|
{ item: "netherdepthsupgrade:obsidianfish" },
|
|
{ item: "netherdepthsupgrade:bonefish" },
|
|
{ item: "netherdepthsupgrade:wither_bonefish" },
|
|
{ item: "netherdepthsupgrade:magmacubefish" },
|
|
{ item: "netherdepthsupgrade:glowdine" },
|
|
{ item: "netherdepthsupgrade:soulsucker" },
|
|
{ item: "netherdepthsupgrade:fortress_grouper" },
|
|
{ item: "netherdepthsupgrade:eyeball_fish" },
|
|
{ item: "society:neptuna" },
|
|
{ item: "unusualfishmod:raw_sneep_snorp" },
|
|
{ item: "unusualfishmod:raw_picklefish" },
|
|
{ item: "unusualfishmod:raw_forkfish" },
|
|
{ item: "unusualfishmod:raw_beaked_herring" },
|
|
{ item: "unusualfishmod:raw_sailor_barb" },
|
|
{ item: "unusualfishmod:raw_demon_herring" },
|
|
{ item: "unusualfishmod:raw_triple_twirl_pleco" },
|
|
{ item: "unusualfishmod:raw_copperflame_anthias" },
|
|
{ item: "unusualfishmod:raw_drooping_gourami" },
|
|
{ item: "unusualfishmod:raw_duality_damselfish" },
|
|
{ item: "unusualfishmod:raw_blind_sailfin" },
|
|
{ item: "unusualfishmod:raw_circus_fish" },
|
|
{ item: "unusualfishmod:raw_snowflake" },
|
|
{ item: "unusualfishmod:raw_aero_mono" },
|
|
{ item: "unusualfishmod:raw_hatchetfish" },
|
|
{ item: "unusualfishmod:raw_spindlefish" },
|
|
{ item: "unusualfishmod:raw_bark_angelfish" },
|
|
{ item: "unusualfishmod:raw_amber_goby" },
|
|
{ item: "unusualfishmod:raw_eyelash" },
|
|
{ item: "crittersandcompanions:koi_fish" },
|
|
];
|
|
|
|
global.preservesJarRecipes = new Map([
|
|
["vintagedelight:gearo_berry", { output: ["vintagedelight:gearo_berry_mason_jar"] }],
|
|
["vintagedelight:peanut", { output: ["vintagedelight:nut_mash_mason_jar"] }],
|
|
["vintagedelight:cucumber", { output: ["vintagedelight:relish_mason_jar"] }],
|
|
["vintagedelight:ghost_pepper", { output: ["vintagedelight:pepper_jam_mason_jar"] }],
|
|
["minecraft:glow_berries", { output: ["vintagedelight:glow_berry_mason_jar"] }],
|
|
["minecraft:sweet_berries", { output: ["vintagedelight:sweet_berry_mason_jar"] }],
|
|
["minecraft:apple", { output: ["vintagedelight:apple_sauce_mason_jar"] }],
|
|
["society:ancient_fruit", { output: ["society:ancient_fruit_preserves"] }],
|
|
["pamhc2trees:dragonfruititem", { output: ["society:dragonfruit_preserves"] }],
|
|
["pamhc2trees:starfruititem", { output: ["society:starfruit_preserves"] }],
|
|
["atmospheric:orange", { output: ["society:orange_preserves"] }],
|
|
["pamhc2trees:bananaitem", { output: ["society:banana_preserves"] }],
|
|
["pamhc2trees:mangoitem", { output: ["society:mango_preserves"] }],
|
|
["pamhc2trees:lycheeitem", { output: ["society:lychee_preserves"] }],
|
|
["pamhc2trees:peachitem", { output: ["society:peach_preserves"] }],
|
|
["vinery:cherry", { output: ["society:cherry_preserves"] }],
|
|
["farm_and_charm:strawberry", { output: ["society:strawberry_preserves"] }],
|
|
["pamhc2trees:plumitem", { output: ["society:plum_preserves"] }],
|
|
["pamhc2trees:pawpawitem", { output: ["society:pawpaw_preserves"] }],
|
|
["minecraft:melon_slice", { output: ["society:melon_preserves"] }],
|
|
["farmersdelight:pumpkin_slice", { output: ["society:pumpkin_preserves"] }],
|
|
["vinery:red_grape", { output: ["society:red_grape_preserves"] }],
|
|
["vinery:jungle_grapes_red", { output: ["society:red_grape_preserves"] }],
|
|
["vinery:savanna_grapes_red", { output: ["society:red_grape_preserves"] }],
|
|
["vinery:taiga_grapes_red", { output: ["society:red_grape_preserves"] }],
|
|
["vinery:white_grape", { output: ["society:white_grape_preserves"] }],
|
|
["vinery:jungle_grapes_white", { output: ["society:white_grape_preserves"] }],
|
|
["vinery:savanna_grapes_white", { output: ["society:white_grape_preserves"] }],
|
|
["vinery:taiga_grapes_white", { output: ["society:white_grape_preserves"] }],
|
|
["society:blueberry", { output: ["society:blueberry_preserves"] }],
|
|
["atmospheric:passion_fruit", { output: ["society:passion_fruit_preserves"] }],
|
|
["atmospheric:currant", { output: ["society:currant_preserves"] }],
|
|
["atmospheric:yucca_fruit", { output: ["society:yucca_preserves"] }],
|
|
["atmospheric:aloe_leaves", { output: ["society:aloe_preserves"] }],
|
|
["minecraft:carrot", { output: ["society:carrot_preserves"] }],
|
|
["minecraft:potato", { output: ["society:potato_preserves"] }],
|
|
["minecraft:beetroot", { output: ["society:beetroot_preserves"] }],
|
|
["farm_and_charm:corn", { output: ["society:corn_preserves"] }],
|
|
["farmersdelight:tomato", { output: ["society:tomato_preserves"] }],
|
|
["pamhc2trees:hazelnutitem", { output: ["society:hazelnut_mash"] }],
|
|
["autumnity:foul_berries", { output: ["society:foul_berries_preserves"] }],
|
|
["minecraft:chorus_fruit", { output: ["society:chorus_fruit_preserves"] }],
|
|
["pamhc2trees:lemonitem", { output: ["society:lemon_preserves"] }],
|
|
["farm_and_charm:onion", { output: ["society:onion_preserves"] }],
|
|
["society:eggplant", { output: ["society:eggplant_preserves"] }],
|
|
["veggiesdelight:cauliflower", { output: ["society:cauliflower_preserves"] }],
|
|
["veggiesdelight:bellpepper", { output: ["society:bell_pepper_preserves"] }],
|
|
["veggiesdelight:sweet_potato", { output: ["society:sweet_potato_preserves"] }],
|
|
["veggiesdelight:garlic", { output: ["society:garlic_preserves"] }],
|
|
["snowyspirit:ginger", { output: ["society:ginger_preserves"] }],
|
|
["society:salmonberry", { output: ["society:salmonberry_preserves"] }],
|
|
["society:boysenberry", { output: ["society:boysenberry_preserves"] }],
|
|
["society:cranberry", { output: ["society:cranberry_preserves"] }],
|
|
["society:crystalberry", { output: ["society:crystalberry_preserves"] }],
|
|
["windswept:wild_berries", { output: ["society:wild_berries_preserves"] }],
|
|
["veggiesdelight:zucchini", { output: ["society:zucchini_preserves"] }],
|
|
["veggiesdelight:turnip", { output: ["society:turnip_preserves"] }],
|
|
["veggiesdelight:broccoli", { output: ["society:broccoli_preserves"] }],
|
|
["society:mana_fruit", { output: ["society:mana_fruit_preserves"] }],
|
|
["society:sparkpod", { output: ["society:sparkpod_preserves"] }],
|
|
["society:mossberry", { output: ["society:mossberry_preserves"] }],
|
|
]);
|
|
roeFish.forEach((fish) => {
|
|
const splitFish = fish.item.split(":");
|
|
let fishId = splitFish[1];
|
|
if (!fishId.includes("_barrel") && !fishId.includes("_roe")) {
|
|
if (fishId.includes("raw_")) {
|
|
if (fishId === "raw_snowflake") fishId = "frosty_fin";
|
|
else fishId = fishId.substring(4, fishId.length);
|
|
}
|
|
global.preservesJarRecipes.set(`society:${fishId}_roe`, {
|
|
output: [`society:aged_${fishId}_roe`],
|
|
});
|
|
}
|
|
});
|
|
|
|
StartupEvents.registry("block", (event) => {
|
|
event
|
|
.create("society:preserves_jar", "cardinal")
|
|
.property(booleanProperty.create("working"))
|
|
.property(booleanProperty.create("mature"))
|
|
.property(booleanProperty.create("upgraded"))
|
|
.box(2, 0, 2, 14, 15, 14)
|
|
.defaultCutout()
|
|
.tagBlock("minecraft:mineable/pickaxe")
|
|
.tagBlock("minecraft:mineable/axe")
|
|
.tagBlock("minecraft:needs_stone_tool")
|
|
.item((item) => {
|
|
item.tooltip(Text.translatable("block.society.preserves_jar.description").gray());
|
|
item.modelJson({
|
|
parent: "society:block/kubejs/preserves_jar",
|
|
});
|
|
})
|
|
.defaultState((state) => {
|
|
state
|
|
.set(booleanProperty.create("working"), false)
|
|
.set(booleanProperty.create("mature"), false)
|
|
.set(booleanProperty.create("upgraded"), false);
|
|
})
|
|
.placementState((state) => {
|
|
state
|
|
.set(booleanProperty.create("working"), false)
|
|
.set(booleanProperty.create("mature"), false)
|
|
.set(booleanProperty.create("upgraded"), false);
|
|
})
|
|
.rightClick((click) => {
|
|
const { player, item, block, hand, level } = click;
|
|
const upgraded = block.properties.get("upgraded").toLowerCase() == "true";
|
|
|
|
if (hand == "OFF_HAND") return;
|
|
if (hand == "MAIN_HAND" && !upgraded && item == "society:stone_hand") {
|
|
if (!player.isCreative()) item.count--;
|
|
level.spawnParticles(
|
|
"farmersdelight:star",
|
|
true,
|
|
block.x,
|
|
block.y + 1,
|
|
block.z,
|
|
0.2 * rnd(1, 4),
|
|
0.2 * rnd(1, 4),
|
|
0.2 * rnd(1, 4),
|
|
3,
|
|
0.01
|
|
);
|
|
block.set(block.id, {
|
|
facing: block.properties.get("facing"),
|
|
working: block.properties.get("working"),
|
|
mature: block.properties.get("mature"),
|
|
upgraded: true,
|
|
});
|
|
}
|
|
|
|
global.handleBERightClick(
|
|
"minecraft:block.wood.place",
|
|
click,
|
|
global.preservesJarRecipes,
|
|
upgraded ? 3 : 5,
|
|
true,
|
|
true
|
|
);
|
|
})
|
|
.blockEntity((blockInfo) => {
|
|
blockInfo.initialData({ stage: 0, recipe: "" });
|
|
blockInfo.serverTick(artMachineTickRate, 0, (entity) => {
|
|
global.handleBETick(entity, global.preservesJarRecipes, 3);
|
|
});
|
|
}).blockstateJson = {
|
|
multipart: [
|
|
{
|
|
when: { upgraded: false },
|
|
apply: { model: "society:block/kubejs/preserves_jar_base" },
|
|
},
|
|
{
|
|
when: { working: true },
|
|
apply: { model: "society:block/kubejs/preserves_jar_lid" },
|
|
},
|
|
{
|
|
when: { mature: true, working: false },
|
|
apply: { model: "society:block/kubejs/preserves_jar_lid_done" },
|
|
},
|
|
{
|
|
when: { upgraded: true },
|
|
apply: { model: "society:block/kubejs/preserves_jar_base_upgraded" },
|
|
},
|
|
{
|
|
when: { working: true, upgraded: false },
|
|
apply: { model: "society:block/kubejs/preserves_jar_base" },
|
|
},
|
|
{
|
|
when: { mature: true, upgraded: false },
|
|
apply: { model: "society:block/kubejs/preserves_jar_base" },
|
|
},
|
|
{
|
|
when: { mature: true },
|
|
apply: { model: "society:block/kubejs/machine_done" },
|
|
},
|
|
],
|
|
};
|
|
});
|