171 lines
5.3 KiB
JavaScript
171 lines
5.3 KiB
JavaScript
//priority: 100
|
|
console.info("[SOCIETY] fishSmoker.js loaded");
|
|
|
|
global.fishSmokerRecipes = new Map([]);
|
|
const smokableFish = [
|
|
"aquaculture:atlantic_herring",
|
|
"minecraft:pufferfish",
|
|
"aquaculture:minnow",
|
|
"aquaculture:bluegill",
|
|
"aquaculture:perch",
|
|
"minecraft:salmon",
|
|
"aquaculture:blackfish",
|
|
"aquaculture:brown_trout",
|
|
"aquaculture:carp",
|
|
"aquaculture:piranha",
|
|
"aquaculture:smallmouth_bass",
|
|
"minecraft:cod",
|
|
"aquaculture:pollock",
|
|
"aquaculture:jellyfish",
|
|
"aquaculture:rainbow_trout",
|
|
"aquaculture:pink_salmon",
|
|
"minecraft:tropical_fish",
|
|
"aquaculture:red_grouper",
|
|
"aquaculture:gar",
|
|
"aquaculture:muskellunge",
|
|
"aquaculture:synodontis",
|
|
"aquaculture:tambaqui",
|
|
"aquaculture:atlantic_cod",
|
|
"aquaculture:boulti",
|
|
"aquaculture:leech",
|
|
"aquaculture:catfish",
|
|
"aquaculture:tuna",
|
|
"aquaculture:bayad",
|
|
"aquaculture:arapaima",
|
|
"aquaculture:atlantic_halibut",
|
|
"aquaculture:starshell_turtle",
|
|
"aquaculture:brown_shrooma",
|
|
"aquaculture:red_shrooma",
|
|
"aquaculture:arrau_turtle",
|
|
"aquaculture:capitaine",
|
|
"aquaculture:box_turtle",
|
|
"aquaculture:pacific_halibut",
|
|
"aquaculture:goldfish",
|
|
"crabbersdelight:shrimp",
|
|
"crabbersdelight:clawster",
|
|
"crabbersdelight:crab",
|
|
"crabbersdelight:clam",
|
|
"netherdepthsupgrade:searing_cod",
|
|
"netherdepthsupgrade:blazefish",
|
|
"netherdepthsupgrade:lava_pufferfish",
|
|
"netherdepthsupgrade:obsidianfish",
|
|
"netherdepthsupgrade:bonefish",
|
|
"netherdepthsupgrade:wither_bonefish",
|
|
"netherdepthsupgrade:magmacubefish",
|
|
"netherdepthsupgrade:glowdine",
|
|
"netherdepthsupgrade:soulsucker",
|
|
"netherdepthsupgrade:fortress_grouper",
|
|
"netherdepthsupgrade:eyeball_fish",
|
|
"society:neptuna",
|
|
"unusualfishmod:raw_sneep_snorp",
|
|
"unusualfishmod:raw_picklefish",
|
|
"unusualfishmod:raw_forkfish",
|
|
"unusualfishmod:raw_beaked_herring",
|
|
"unusualfishmod:raw_sailor_barb",
|
|
"unusualfishmod:raw_demon_herring",
|
|
"unusualfishmod:raw_triple_twirl_pleco",
|
|
"unusualfishmod:raw_copperflame_anthias",
|
|
"unusualfishmod:raw_drooping_gourami",
|
|
"unusualfishmod:raw_duality_damselfish",
|
|
"unusualfishmod:raw_blind_sailfin",
|
|
"unusualfishmod:raw_circus_fish",
|
|
"unusualfishmod:raw_snowflake",
|
|
"unusualfishmod:raw_aero_mono",
|
|
"unusualfishmod:raw_hatchetfish",
|
|
"unusualfishmod:raw_spindlefish",
|
|
"unusualfishmod:raw_bark_angelfish",
|
|
"unusualfishmod:raw_amber_goby",
|
|
"unusualfishmod:raw_eyelash",
|
|
"crittersandcompanions:koi_fish",
|
|
];
|
|
smokableFish.forEach((fish) => {
|
|
let fishId = fish.path;
|
|
if (fishId.includes("raw_")) {
|
|
if (fishId === "raw_snowflake") fishId = "frosty_fin";
|
|
else fishId = fishId.substring(4, fishId.length);
|
|
}
|
|
global.fishSmokerRecipes.set(fish, {
|
|
output: [`1x society:smoked_${fishId}`],
|
|
});
|
|
});
|
|
StartupEvents.registry("block", (event) => {
|
|
event
|
|
.create("society:fish_smoker", "cardinal")
|
|
.property(booleanProperty.create("working"))
|
|
.property(booleanProperty.create("mature"))
|
|
.property(booleanProperty.create("upgraded"))
|
|
.box(1, 0, 4, 15, 28, 12)
|
|
.defaultCutout()
|
|
.tagBlock("minecraft:mineable/pickaxe")
|
|
.tagBlock("minecraft:mineable/axe")
|
|
.tagBlock("minecraft:needs_stone_tool")
|
|
.item((item) => {
|
|
item.tooltip(Text.translatable("block.society.fish_smoker.description").gray());
|
|
item.tooltip(Text.translatable("society.working_block_entity.preserve_quality").green());
|
|
item.modelJson({
|
|
parent: "society:block/kubejs/fish_smoker/fish_smoker_off",
|
|
});
|
|
})
|
|
.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";
|
|
const quality = block.properties.get("quality");
|
|
const facing = block.properties.get("facing");
|
|
|
|
if (hand == "OFF_HAND") return;
|
|
if (hand == "MAIN_HAND") {
|
|
if (!upgraded && item == "society:ancient_roe") {
|
|
if (!player.isCreative()) item.count--;
|
|
level.spawnParticles(
|
|
"farmersdelight:star",
|
|
true,
|
|
block.x,
|
|
block.y + 1,
|
|
block.z,
|
|
0.2 * rnd(1, 2),
|
|
0.2 * rnd(1, 2),
|
|
0.2 * rnd(1, 2),
|
|
3,
|
|
0.01
|
|
);
|
|
block.set(block.id, {
|
|
facing: facing,
|
|
working: block.properties.get("working"),
|
|
mature: block.properties.get("mature"),
|
|
upgraded: true,
|
|
});
|
|
}
|
|
}
|
|
|
|
global.handleBERightClick(
|
|
"farmersdelight:block.skillet.add_food",
|
|
click,
|
|
global.fishSmokerRecipes,
|
|
5,
|
|
false,
|
|
false,
|
|
upgraded ? 2 : 1
|
|
);
|
|
})
|
|
.blockEntity((blockInfo) => {
|
|
blockInfo.initialData({ stage: 0, recipe: "", quality: 0 });
|
|
blockInfo.serverTick(artMachineTickRate, 0, (entity) => {
|
|
global.handleBETick(entity, global.fishSmokerRecipes, 2);
|
|
});
|
|
}).blockstateJson = {
|
|
multipart: getCardinalMultipartJson("fish_smoker", true),
|
|
};
|
|
});
|