neuralgia/kubejs/server_scripts/tfg/data.js
The Compendium System / The Atlassian Collective d45e2f164a
Food n' Bags Bug Fixing Compilation (#1967)
* oops I might've hit space and made linux upset mb gang

* > metal bar > look inside > not a metal bar

* sns is a mess huh

* sns is a mess huh (fixed sns and sophisticated backpack stuff)

* hot potato (pun intended)

* made bulbkin pie not allergic to firmalife ovens
2025-10-06 11:48:53 -05:00

982 lines
No EOL
26 KiB
JavaScript

// priority: 0
"use strict";
/** @param {Internal.TFCDataEventJS} event */
function registerTFCDataForTFG(event) {
registerTFGHeatData(event);
registerTFGItemSize(event);
registerTFGSupportData(event);
registerTFGFoodData(event);
registerTFGCropRanges(event);
registerTFGFLPlanters(event);
registerTFGFauna(event);
}
/** @param {Internal.TFCDataEventJS} event */
function registerTFGHeatData(event) {
event.itemHeat("tfg:latex_soaked_gloves", 1, null, null);
global.MINECRAFT_DYE_NAMES.forEach((color) => {
event.itemHeat(`tfg:decorative_vase/unfired/${color}`, 1, null, null);
});
event.itemHeat("tfg:decorative_vase/unfired", 1, null, null);
event.itemHeat("tfg:sunflower_product", 1, null, null);
event.itemHeat("tfg:roasted_sunflower_seeds", 1, null, null);
event.itemHeat("#tfc:powders", 1, null, null);
event.itemHeat('betterend:cave_pumpkin_pie_raw', 1.0, null, null);
event.itemHeat('betterend:cave_pumpkin_pie', 1.0, null, null);
}
/** @param {Internal.TFCDataEventJS} event */
function registerTFGItemSize(event) {
/**
* Turns an array of items into an ingredient that is an alternative of items in the array.
* @param {Internal.Ingredient_[]} items Items to to take.
* @returns {Internal.Ingredient}
*/
function orArray(items) {
// I hate type wrapping
return /** @type {Internal.Ingredient[]} */ (items).reduce(
(/** @type {Internal.Ingredient} */ previous, current) => previous.or(current),
Ingredient.none
);
}
global.MINECRAFT_DYE_NAMES.forEach((color) => {
event.itemSize(`tfg:decorative_vase/${color}`, "normal", "medium", `decorative_vase/${color}`);
event.itemSize(`tfg:decorative_vase/unfired/${color}`, "normal", "medium", `decorative_vase/unfired/${color}`);
});
event.itemSize("tfg:decorative_vase", "normal", "medium", "decorative_vase");
event.itemSize("tfg:decorative_vase/unfired", "normal", "medium", "decorative_vase/unfired");
event.itemSize("tfg:fishing_net/wood", "large", "medium", "wood_fishing_net");
event.itemSize("tfg:fishing_net/brass", "large", "medium", "brass_fishing_net");
event.itemSize("tfg:fishing_net/rose_gold", "large", "medium", "rose_gold_fishing_net");
event.itemSize("tfg:fishing_net/sterling_silver", "large", "medium", "sterling_silver_fishing_net");
event.itemSize("tfg:fishing_net/invar", "large", "medium", "invar_fishing_net");
event.itemSize("tfg:fishing_net/cupronickel", "large", "medium", "cupronickel_fishing_net");
event.itemSize("tfg:fishing_net/tin_alloy", "large", "medium", "tin_alloy_fishing_net");
event.itemSize("tfg:fishing_net/magnalium", "large", "medium", "magnalium_fishing_net");
event.itemSize("tfg:trowel", "large", "medium", "trowel");
event.itemSize("tfg:railgun_ammo_shell", "large", "heavy", "trowel");
event.itemSize("tfg:harvest_basket", "large", "medium", "harvest_basket");
event.itemSize("tfg:aluminium_harvest_basket", "large", "medium", "aluminium_harvest_basket");
event.itemSize("tfg:rapeseed_product", "small", "light", "rapeseed_product");
event.itemSize("tfg:sunflower_product", "small", "light", "sunflower_product");
event.itemSize("betterend:amber_root_product", "small", "light", "amber_roots");
event.itemSize("betterend:blossom_berry_product", "small", "light", "amber_roots");
event.itemSize("betterend:cave_pumpkin", "small", "light", "amber_roots");
event.itemSize("betterend:chorus_mushroom_product", "small", "light", "amber_roots");
event.itemSize("betterend:shadow_berry_product", "small", "light", "amber_roots");
event.itemSize(Ingredient.of("#minecraft:buttons"), "very_small", "very_light", "buttons");
event.itemSize(Ingredient.of("#forge:buzz_saw_heads"), "large", "heavy", "buzz_saw_blades");
event.itemSize(
Ingredient.of("#minecraft:wool_carpets").or("#domum_ornamentum:floating_carpet"),
"small",
"very_light",
"carpets"
);
event.itemSize("create:chain_conveyor", "large", "medium", "chain_conveyor");
event.itemSize("create:flywheel", "large", "medium", "flywheel");
event.itemSize("create:large_water_wheel", "very_large", "heavy", "large_water_wheel");
event.itemSize("create:water_wheel", "large", "medium", "water_wheel");
event.itemSize(Ingredient.of("#forge:double_plates"), "large", "medium", "double_plates");
event.itemSize(Ingredient.of("#forge:dense_plates"), "large", "medium", "dense_plates");
event.itemSize(Ingredient.of("#forge:dusts"), "small", "very_light", "dusts");
event.itemSize(Ingredient.of("#forge:pure_dusts"), "small", "very_light", "pure_dusts");
event.itemSize(Ingredient.of("#forge:impure_dusts"), "small", "very_light", "impure_dusts");
event.itemSize(orArray(global.FRAMED_HALF_BLOCKS), "small", "very_light", "framed_half_blocks");
event.itemSize(orArray(global.FRAMED_TINY_BLOCKS), "very_small", "very_light", "framed_tiny_blocks");
event.itemSize(Ingredient.of("#forge:gears"), "large", "heavy", "gears");
event.itemSize(Ingredient.of("#forge:glass_panes"), "small", "very_light", "glass_panes");
event.itemSize(Ingredient.of("#greate:crushing_wheels"), "large", "medium", "crushing_wheels");
event.itemSize(Ingredient.of("#gtceu:molds"), "large", "heavy", "gregtech_molds");
event.itemSize(Ingredient.of("#forge:hot_ingots"), "large", "medium", "hot_ingots");
event.itemSize(Ingredient.of("#forge:rods/long"), "large", "medium", "long_rods");
event.itemSize(Ingredient.of("#tfg:metal_bars"), "small", "very_light", "metal_bars");
event.itemSize(
Ingredient.of("#tfc:dry_mud_bricks").or("#tfc:wet_mud_bricks"),
"very_small",
"very_light",
"mud_bricks"
);
event.itemSize(Ingredient.of("#forge:rotors"), "normal", "medium", "rotors");
event.itemSize(Ingredient.of("#forge:small_gears"), "normal", "medium", "small_gears");
event.itemSize(Ingredient.of("#forge:small_springs"), "small", "very_light", "small_springs");
event.itemSize(Ingredient.of("#forge:springs"), "large", "medium", "springs");
event.itemSize(
Ingredient.of("#forge:storage_blocks").subtract(
orArray([
"minecraft:stone",
"minecraft:bricks",
"minecraft:quartz_block",
"minecraft:amethyst_block",
"minecraft:glass",
"minecraft:clay",
"minecraft:ice",
"minecraft:bone_block",
"minecraft:obsidian",
"minecraft:glowstone",
"ae2:quartz_block",
"gtceu:red_granite",
"gtceu:light_concrete",
"gtceu:dark_concrete",
"create:cardboard_block",
])
),
"large",
"medium",
"storage_blocks"
);
event.itemSize(Ingredient.of("#forge:turbine_blades"), "large", "heavy", "turbine_blades");
event.itemSize("gtceu:turbine_rotor", "very_large", "very_heavy", "turbine_rotors");
event.itemSize("vintageimprovements:centrifuge", "very_large", "heavy", "vintage_centrifuge");
event.itemSize("vintageimprovements:helve_hammer", "large", "medium", "vintage_helve_hammer");
event.itemSize("vintageimprovements:lathe", "normal", "medium", "vintage_lathe");
event.itemSize(Ingredient.of("#forge:whisks"), "large", "medium", "whisks");
// Fluid pipes
event.itemSize(Ingredient.of("#forge:tiny_fluid_pipes"), "tiny", "very_light", "tiny_fluid_pipes");
event.itemSize(Ingredient.of("#forge:small_fluid_pipes"), "very_small", "very_light", "small_fluid_pipes");
event.itemSize(Ingredient.of("#forge:large_fluid_pipes"), "normal", "light", "large_fluid_pipes");
event.itemSize(Ingredient.of("#forge:huge_fluid_pipes"), "normal", "medium", "huge_fluid_pipes");
event.itemSize(
Ingredient.of("#forge:quadruple_fluid_pipes").or("#forge:nonuple_fluid_pipes"),
"normal",
"medium",
"multiple_fluid_pipes"
);
// Item pipes
event.itemSize(
Ingredient.of("#forge:small_item_pipes").or("#forge:small_restrictive_pipes"),
"very_small",
"very_light",
"small_item_pipes"
);
event.itemSize(
Ingredient.of("#forge:large_item_pipes").or("#forge:large_restrictive_pipes"),
"normal",
"light",
"large_item_pipes"
);
event.itemSize(
Ingredient.of("#forge:huge_item_pipes").or("#forge:huge_restrictive_pipes"),
"normal",
"medium",
"huge_item_pipes"
);
// Air ducts
event.itemSize("gtceu:small_duct_pipe", "very_small", "very_light", "small_duct_pipe");
event.itemSize("gtceu:large_duct_pipe", "normal", "light", "large_duct_pipe");
event.itemSize("gtceu:huge_duct_pipe", "normal", "medium", "huge_duct_pipe");
// Nuclear Rod
event.itemSize(Ingredient.of("#tfg:fission_rods"), "very_large", "heavy");
// Cables
event.itemSize(Ingredient.of("#forge:single_cables").or("#forge:single_wires"), "tiny", "very_light", "cables_1x");
event.itemSize(
Ingredient.of("#forge:double_cables").or("#forge:double_wires"),
"very_small",
"very_light",
"cables_2x"
);
event.itemSize(Ingredient.of("#forge:octal_cables").or("#forge:octal_wires"), "normal", "light", "cables_8x");
event.itemSize(Ingredient.of("#forge:hex_cables").or("#forge:hex_wires"), "normal", "medium", "cables_16x");
event.itemSize("computercraft:cable", "tiny", "very_light", "networking_cable");
event.itemSize("gtceu:normal_optical_pipe", "very_small", "very_light", "optical_fiber_cable");
event.itemSize(
Ingredient.of("#ae2:glass_cable").or("#ae2:covered_cable").or("#ae2:smart_cable"),
"very_small",
"very_light",
"me_cables"
);
event.itemSize(
Ingredient.of("#ae2:covered_dense_cable").or("#ae2:smart_dense_cable"),
"normal",
"light",
"me_dense_cables"
);
event.itemSize(
orArray([
"ae2:quartz_fixture",
"ae2:light_detector",
"ae2:wireless_access_point",
"ae2:quartz_fiber",
"ae2:toggle_bus",
"ae2:inverted_toggle_bus",
"ae2:cable_anchor",
"ae2:level_emitter",
"ae2:energy_level_emitter",
"expatternprovider:threshold_level_emitter",
]),
"tiny",
"very_light",
"ae2_tiny_parts"
);
event.itemSize(
orArray([
"ae2:monitor",
"ae2:semi_dark_monitor",
"ae2:dark_monitor",
"ae2:storage_bus",
"ae2:import_bus",
"ae2:export_bus",
"ae2:annihilation_plane",
"ae2:formation_plane",
"ae2:pattern_encoding_terminal",
"ae2:crafting_terminal",
"ae2:terminal",
"ae2:storage_monitor",
"ae2:conversion_monitor",
"ae2:cable_pattern_provider",
"ae2:cable_interface",
"ae2:pattern_access_terminal",
"ae2:cable_energy_acceptor",
"ae2:me_p2p_tunnel",
"ae2:redstone_p2p_tunnel",
"ae2:item_p2p_tunnel",
"ae2:fluid_p2p_tunnel",
"ae2:light_p2p_tunnel",
"ae2:facade",
"expatternprovider:ex_interface_part",
"expatternprovider:ex_export_bus_part",
"expatternprovider:ex_import_bus_part",
"expatternprovider:ex_pattern_access_part",
"expatternprovider:tag_storage_bus",
"expatternprovider:tag_export_bus",
"expatternprovider:mod_storage_bus",
"expatternprovider:mod_export_bus",
"expatternprovider:active_formation_plane",
"expatternprovider:precise_export_bus",
"expatternprovider:precise_storage_bus",
"expatternprovider:threshold_export_bus",
"expatternprovider:oversize_interface_part",
]),
"very_small",
"very_light",
"ae2_small_parts"
);
event.itemSize("tfg:lab_equipment", "normal", "medium", "lab_equipment/lab_equipment");
event.itemSize("tfg:dirty_lab_equipment", "normal", "medium", "lab_equipment/dirty_lab_equipment");
event.itemSize("gtceu:petri_dish", "tiny", "light", "gtceu/petri_dish");
// These items don't like to have their size changed for some reason.
// This is the only combination that I could get to work. V
event.itemSize("tfg:beaker", "large", "heavy", "tfg/beaker");
event.itemSize("tfg:flask", "normal", "medium", "tfg/flask");
event.itemSize("tfg:vial", "tiny", "light", "tfg/vial");
}
//up, down, horizontal
/** @param {Internal.TFCDataEventJS} event */
function registerTFGSupportData(event) {
event.support("tfg:light_concrete_support_horizontal", 4, 4, 8, "light_concrete_support");
event.support("tfg:dark_concrete_support_horizontal", 4, 4, 8, "dark_concrete_support");
event.support("tfg:reinforced_light_concrete_support_horizontal", 6, 6, 16, "reinforced_light_concrete_support");
event.support("tfg:reinforced_dark_concrete_support_horizontal", 6, 6, 16, "reinforced_dark_concrete_support");
event.support("tfg:rebar_support_horizontal", 4, 4, 8, "rebar_support");
event.support("tfg:steel_support_horizontal", 6, 6, 16, "steel_support");
const other_stone = ["pyroxenite", "migmatite", "travertine"];
const stone_types = global.TFC_STONE_TYPES.concat(other_stone);
stone_types.forEach((stone) => {
event.support(`tfg:${stone}_support_horizontal`, 2, 2, 4, `${stone}_support`);
});
global.AD_ASTRA_WOOD.forEach((wood) => {
event.support(`tfg:${wood.name}_support_horizontal`, 2, 2, 4, `${wood.name}_support`);
});
}
/** @param {Internal.TFCDataEventJS} event */
function registerTFGFoodData(event) {
// meats
event.foodItem("tfg:food/raw_birt", (food) => {
food.hunger(4);
food.protein(1.5);
food.decayModifier(3);
});
event.foodItem("tfg:food/cooked_birt", (food) => {
food.hunger(4);
food.saturation(2);
food.protein(2.5);
food.decayModifier(2.25);
});
event.foodItem("tfg:food/raw_crawlermari", (food) => {
food.hunger(4);
food.water(5);
food.protein(1.1);
food.decayModifier(3);
});
event.foodItem("tfg:food/cooked_crawlermari", (food) => {
food.hunger(4);
food.saturation(2);
food.protein(2.2);
food.decayModifier(2.25);
});
event.foodItem("tfg:food/raw_limpet", (food) => {
food.hunger(4);
food.water(5);
food.protein(1.2);
food.decayModifier(3);
});
event.foodItem("tfg:food/cooked_limpet", (food) => {
food.hunger(5);
food.saturation(2);
food.protein(2.4);
food.decayModifier(2.25);
});
event.foodItem("tfg:food/raw_moon_rabbit", (food) => {
food.hunger(3);
food.protein(2.0);
food.decayModifier(3);
});
event.foodItem("tfg:food/cooked_moon_rabbit", (food) => {
food.hunger(6);
food.saturation(2.5);
food.protein(5);
food.decayModifier(2.25);
});
event.foodItem("tfg:food/raw_glacian_mutton", (food) => {
food.hunger(3);
food.protein(2.0);
food.decayModifier(3);
});
event.foodItem("tfg:food/cooked_glacian_mutton", (food) => {
food.hunger(6);
food.saturation(3);
food.protein(5);
food.decayModifier(1.5);
});
event.foodItem("tfg:food/raw_sniffer_beef", (food) => {
food.hunger(3);
food.protein(2.0);
food.decayModifier(3);
});
event.foodItem("tfg:food/cooked_sniffer_beef", (food) => {
food.hunger(6);
food.saturation(4);
food.protein(7);
food.decayModifier(1.5);
});
event.foodItem("tfg:food/raw_wraptor", (food) => {
food.hunger(3);
food.protein(2.0);
food.decayModifier(3);
});
event.foodItem("tfg:food/cooked_wraptor", (food) => {
food.hunger(6);
food.saturation(4);
food.protein(5);
food.decayModifier(1.5);
});
event.foodItem("tfg:food/raw_springling_chops", (food) => {
food.hunger(2);
food.protein(1.5);
food.decayModifier(3);
});
event.foodItem("tfg:food/cooked_springling_chops", (food) => {
food.hunger(4);
food.saturation(3);
food.protein(5);
food.decayModifier(1.5);
});
event.foodItem("tfg:food/raw_walker_steak", (food) => {
food.hunger(3);
food.protein(2.0);
food.decayModifier(3);
});
event.foodItem("tfg:food/cooked_walker_steak", (food) => {
food.hunger(6);
food.saturation(3);
food.protein(8);
food.decayModifier(1.5);
});
event.foodItem("tfg:food/raw_glider_wings", (food) => {
food.hunger(1);
food.protein(1.5);
food.decayModifier(3);
});
event.foodItem("tfg:food/cooked_glider_wings", (food) => {
food.hunger(3);
food.saturation(3);
food.protein(3);
food.decayModifier(1.5);
});
event.foodItem("tfg:food/raw_whole_soarer", (food) => {
food.hunger(3);
food.protein(2.0);
food.decayModifier(3);
});
event.foodItem("tfg:food/cooked_whole_soarer", (food) => {
food.hunger(6);
food.saturation(6);
food.protein(4);
food.decayModifier(1.5);
});
event.foodItem("tfg:food/raw_crusher_meat", (food) => {
food.hunger(3);
food.protein(1.5);
food.decayModifier(3);
});
event.foodItem("tfg:food/cooked_crusher_meat", (food) => {
food.hunger(5);
food.saturation(6);
food.protein(4);
food.decayModifier(1.5);
});
event.foodItem("tfg:food/raw_goober_meat", (food) => {
food.hunger(2);
food.protein(3.0);
food.decayModifier(3);
});
event.foodItem("tfg:food/cooked_goober_meat", (food) => {
food.hunger(4);
food.saturation(3);
food.protein(6);
food.decayModifier(1.5);
});
// high-tech food
global.FOOD_FRUIT.forEach((fruit) => {
event.foodItem(`tfg:food/freeze_dried/${fruit.name}`, (food) => {
food.hunger(4);
food.saturation(fruit.saturation);
food.water(0);
food.fruit(fruit.fruit);
food.decayModifier(fruit.decay);
});
});
event.foodItem("tfg:food/calorie_paste", (food) => {
food.hunger(6);
food.saturation(4);
food.decayModifier(4.5);
food.grain(0.1);
food.vegetables(0.2);
food.protein(0.2);
});
event.foodItem("tfg:food/meal_bag", (food) => {
food.type("dynamic");
});
// crops
event.foodItem("tfg:roasted_sunflower_seeds", (food) => {
food.hunger(4);
food.decayModifier(0.5);
food.grain(0.1);
food.saturation(0.5);
});
event.foodItem("tfg:sunflower_product", (food) => {
food.decayModifier(0.5);
});
event.foodItem("betterend:amber_root_product", (food) => {
food.hunger(4);
food.decayModifier(1);
food.saturation(1);
food.grain(3);
});
event.foodItem("betterend:blossom_berry_product", (food) => {
food.hunger(5);
food.decayModifier(2);
food.saturation(1);
food.water(7.5);
food.fruit(1.5);
});
event.foodItem("betterend:cave_pumpkin", (food) => {
food.hunger(4);
food.saturation(0);
food.decayModifier(0.5);
});
event.foodItem("betterend:cave_pumpkin_chunks", (food) => {
food.hunger(4);
food.saturation(1);
food.decayModifier(2.5);
food.water(5);
food.fruit(0.8);
});
event.foodItem("betterend:cave_pumpkin_pie_dough", (food) => {
food.hunger(2);
food.decayModifier(3);
});
event.foodItem("betterend:cave_pumpkin_pie_raw", (food) => {
food.hunger(2);
food.decayModifier(3);
});
event.foodItem("betterend:cave_pumpkin_pie", (food) => {
food.hunger(4);
food.saturation(4);
food.decayModifier(2);
food.water(5);
food.protein(1);
food.fruit(4);
food.grain(2);
});
event.foodItem("betterend:chorus_mushroom_product", (food) => {
food.hunger(2);
food.saturation(1);
food.decayModifier(3);
food.water(3);
food.vegetables(1.5);
});
event.foodItem("betterend:chorus_mushroom_cooked", (food) => {
food.hunger(2);
food.saturation(2.5);
food.decayModifier(1.5);
food.vegetables(2);
});
event.foodItem("betterend:shadow_berry_product", (food) => {
food.hunger(5);
food.decayModifier(2);
food.saturation(1);
food.water(5);
food.fruit(1.5);
});
event.foodItem("betterend:shadow_berry_cooked", (food) => {
food.hunger(5);
food.decayModifier(1);
food.saturation(2);
food.fruit(2);
});
event.foodItem("betterend:bolux_mushroom_product", (food) => {
food.hunger(2);
food.saturation(1);
food.decayModifier(3);
food.water(3);
food.vegetables(1.5);
});
event.foodItem("betterend:bolux_mushroom_cooked", (food) => {
food.hunger(2);
food.saturation(2.5);
food.decayModifier(1.5);
food.vegetables(2);
});
// misc
event.foodItem("tfg:food/ice_soup", (food) => {
food.hunger(1);
food.water(20);
food.decayModifier(0);
});
event.drinkable("tfg:semiheavy_ammoniacal_water", (data) => {
data.thirst(10);
data.effect("minecraft:nausea", (effect) => {
effect.chance(0.5);
effect.duration(200);
});
});
}
/** @param {Internal.TFCDataEventJS} event */
function registerTFGCropRanges(event) {
// Earth
event.climateRange((climate) => {
climate.minHydration(20);
climate.maxHydration(80);
climate.minTemperature(5);
climate.maxTemperature(40);
climate.hydrationWiggle(7.5);
climate.temperatureWiggle(5.5);
}, "tfg:sunflower");
event.climateRange((climate) => {
climate.minHydration(10);
climate.maxHydration(60);
climate.minTemperature(-5);
climate.maxTemperature(25);
climate.hydrationWiggle(7.5);
climate.temperatureWiggle(1.5);
}, "tfg:rapeseed");
event.climateRange((climate) => {
climate.minHydration(15);
climate.maxHydration(65);
climate.minTemperature(-8);
climate.maxTemperature(25);
climate.hydrationWiggle(6.5);
climate.temperatureWiggle(3);
}, "tfg:flax");
// Mars
event.climateRange((climate) => {
climate.minHydration(0);
climate.maxHydration(40);
climate.minTemperature(-150);
climate.maxTemperature(15);
climate.hydrationWiggle(7.5);
climate.temperatureWiggle(5.5);
}, "betterend:amber_root");
event.climateRange((climate) => {
climate.minHydration(70);
climate.maxHydration(100);
climate.minTemperature(-80);
climate.maxTemperature(30);
climate.hydrationWiggle(7.5);
climate.temperatureWiggle(5.5);
}, "betterend:blossom_berry");
event.climateRange((climate) => {
climate.minHydration(0);
climate.maxHydration(40);
climate.minTemperature(-150);
climate.maxTemperature(15);
climate.hydrationWiggle(7.5);
climate.temperatureWiggle(5.5);
}, "betterend:bolux_mushroom");
event.climateRange((climate) => {
climate.minHydration(0);
climate.maxHydration(60);
climate.minTemperature(-100);
climate.maxTemperature(30);
climate.hydrationWiggle(7.5);
climate.temperatureWiggle(5.5);
}, "betterend:cave_pumpkin_plant");
event.climateRange((climate) => {
climate.minHydration(0);
climate.maxHydration(40);
climate.minTemperature(-150);
climate.maxTemperature(15);
climate.hydrationWiggle(7.5);
climate.temperatureWiggle(5.5);
}, "betterend:chorus_mushroom");
event.climateRange((climate) => {
climate.minHydration(50);
climate.maxHydration(100);
climate.minTemperature(-80);
climate.maxTemperature(30);
climate.hydrationWiggle(7.5);
climate.temperatureWiggle(5.5);
}, "betterend:shadow_berry");
}
/** @param {Internal.TFCDataEventJS} event */
function registerTFGFLPlanters(event) {
event.firmalifePlantable(
"tfg:sunflower_seeds",
"large",
0,
3,
0.15,
"tfg:sunflower_seeds",
"tfg:sunflower_product",
"nitrogen",
[
"tfg:block/crop/sunflower_greenhouse_0",
"tfg:block/crop/sunflower_greenhouse_1",
"tfg:block/crop/sunflower_greenhouse_2",
"tfg:block/crop/sunflower_greenhouse_3",
],
null
);
event.firmalifePlantable(
"tfg:rapeseed_seeds",
"large",
0,
3,
0.15,
"tfg:rapeseed_seeds",
"tfg:rapeseed_product",
"phosphorous",
[
"tfg:block/crop/rapeseed_greenhouse_0",
"tfg:block/crop/rapeseed_greenhouse_1",
"tfg:block/crop/rapeseed_greenhouse_2",
"tfg:block/crop/rapeseed_greenhouse_3",
],
null
);
event.firmalifePlantable(
"tfg:flax_seeds",
"large",
0,
3,
0.2,
"tfg:flax_seeds",
"tfg:flax_product",
"nitrogen",
[
"tfg:block/crop/flax_age_0",
"tfg:block/crop/flax_age_1",
"tfg:block/crop/flax_age_5_top",
"tfg:block/crop/flax_age_6_top",
],
null
);
event.firmalifePlantable(
"betterend:amber_root_seeds",
"large",
0,
3,
0.15,
"betterend:amber_root_seeds",
"betterend:amber_root_product",
"phosphorous",
[
"betterend:block/amber_root_0",
"betterend:block/amber_root_1",
"betterend:block/amber_root_2",
"betterend:block/amber_root_3",
],
null
);
event.firmalifePlantable(
"betterend:blossom_berry_seeds",
"large",
0,
3,
0.15,
"betterend:blossom_berry_seeds",
"betterend:blossom_berry_product",
"potassium",
[
"betterend:block/blossom_berry_seed_0",
"betterend:block/blossom_berry_seed_1",
"betterend:block/blossom_berry_seed_2",
"betterend:block/blossom_berry_seed_3",
],
null
);
event.firmalifePlantable(
"betterend:bolux_mushroom_seeds",
"quad",
1,
3,
0.15,
"betterend:bolux_mushroom_seeds",
"betterend:bolux_mushroom_product",
"phosphorous",
[
"betterend:block/bolux_mushroom_greenhouse_0",
"betterend:block/bolux_mushroom_greenhouse_1",
"betterend:block/bolux_mushroom_greenhouse_2",
"betterend:block/bolux_mushroom_greenhouse_3",
],
null
);
event.firmalifePlantable(
"betterend:chorus_mushroom_seeds",
"quad",
1,
3,
0.15,
"betterend:chorus_mushroom_seeds",
"betterend:chorus_mushroom_product",
"phosphorous",
[
"betterend:block/chorus_mushroom_0",
"betterend:block/chorus_mushroom_1",
"betterend:block/chorus_mushroom_2",
"betterend:block/chorus_mushroom_3",
],
null
);
event.firmalifePlantable(
"betterend:cave_pumpkin_plant_seeds",
"hanging",
2,
3,
0.15,
"betterend:cave_pumpkin_plant_seeds",
"betterend:cave_pumpkin",
"phosphorous",
[
"betterend:block/cave_pumpkin_greenhouse_0",
"betterend:block/cave_pumpkin_greenhouse_1",
"betterend:block/cave_pumpkin_greenhouse_2",
"betterend:block/cave_pumpkin_greenhouse_3",
],
"betterend:block/cave_pumpkin_top"
);
event.firmalifePlantable(
"betterend:shadow_berry_seeds",
"quad",
1,
3,
0.15,
"betterend:shadow_berry_seeds",
"betterend:shadow_berry_product",
"potassium",
[
"betterend:block/shadow_berry_greenhouse_0",
"betterend:block/shadow_berry_greenhouse_1",
"betterend:block/shadow_berry_greenhouse_2",
"betterend:block/shadow_berry_greenhouse_3",
],
null
);
}
/** @param {Internal.TFCDataEventJS} event */
function registerTFGFauna(event) {
// -108 is the average at z=-4k to z=-6k, which feels like a big enough band
event.fauna(
climate => {
climate.maxTemp(-108)
climate.fuzzy(false)
},
faunaData => {
faunaData.solidGround(true)
},
"tfg:glacian_ram")
event.fauna(
climate => {
climate.minTemp(-102)
climate.maxTemp(-30)
climate.fuzzy(true)
},
faunaData => {
faunaData.solidGround(true)
},
"tfg:sniffer")
event.fauna(
climate => {
climate.minTemp(-100)
climate.fuzzy(true)
},
faunaData => {
faunaData.solidGround(true)
},
"tfg:wraptor")
event.fauna(
climate => {
climate.minTemp(-108)
climate.fuzzy(true)
},
faunaData => {
faunaData.solidGround(true)
},
"species:springling")
event.fauna(
climate => {
climate.minTemp(-109)
climate.fuzzy(true)
},
faunaData => {
faunaData.solidGround(true)
},
"species:goober")
event.fauna(
climate => {
climate.minTemp(-97)
climate.fuzzy(true)
},
faunaData => {
faunaData.solidGround(true)
},
"wan_ancient_beasts:walker")
event.fauna(
climate => {
climate.minTemp(-109)
climate.fuzzy(true)
},
faunaData => {
faunaData.solidGround(true)
},
"wan_ancient_beasts:eater")
event.fauna(
climate => {
climate.minTemp(-100)
climate.fuzzy(true)
},
faunaData => {
faunaData.solidGround(true)
},
"wan_ancient_beasts:crusher")
event.fauna(
climate => {
climate.minTemp(-105)
climate.fuzzy(true)
},
faunaData => {
faunaData.solidGround(true)
},
"wan_ancient_beasts:soarer")
event.fauna(
climate => {
climate.minTemp(-106)
climate.fuzzy(true)
},
faunaData => {
faunaData.solidGround(true)
},
"wan_ancient_beasts:glider")
}