From b1ea189f028c9a6fd42def9a1b13720f2869a9c5 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Wed, 17 Sep 2025 23:09:44 +0100 Subject: [PATCH] fauna! --- kubejs/server_scripts/ad_astra/tags.js | 3 +- kubejs/server_scripts/tfg/data.js | 1608 +++++++++++++----------- kubejs/startup_scripts/tfg/fauna.js | 18 + 3 files changed, 881 insertions(+), 748 deletions(-) create mode 100644 kubejs/startup_scripts/tfg/fauna.js diff --git a/kubejs/server_scripts/ad_astra/tags.js b/kubejs/server_scripts/ad_astra/tags.js index 70cb6f834..14872c975 100644 --- a/kubejs/server_scripts/ad_astra/tags.js +++ b/kubejs/server_scripts/ad_astra/tags.js @@ -274,6 +274,7 @@ const registerAdAstraBlockTags = (event) => { event.add('minecraft:animals_spawnable_on', '#tfg:mars_soil') event.add('minecraft:animals_spawnable_on', '#tfg:mars_plants') event.add('minecraft:animals_spawnable_on', '#forge:gravel') + event.add('minecraft:valid_spawn', '#minecraft:animals_spawnable_on') event.add('tfc:can_carve', '#ad_astra:moon_stone_replaceables') event.add('tfc:can_carve', '#ad_astra:mars_stone_replaceables') @@ -372,6 +373,7 @@ const registerAdAstraBiomeTags = (event) => { event.add('tfg:has_dark_sand_particles', 'tfg:mars/martian_dunes') event.add('tfg:has_dark_sand_particles', 'tfg:mars/martian_deep_desert') + event.add('tfg:has_dark_sand_particles', 'tfg:mars/martian_mountains') event.add('tfg:has_medium_sand_particles', 'tfg:mars/amber_plains') event.add('tfg:has_medium_sand_particles', 'tfg:mars/amber_hills') event.add('tfg:has_medium_sand_particles', 'tfg:mars/rusticus_plains') @@ -382,7 +384,6 @@ const registerAdAstraBiomeTags = (event) => { event.add('tfg:has_light_sand_particles', 'tfg:mars/amber_edge') event.add('tfg:has_light_sand_particles', 'tfg:mars/rusticus_edge') event.add('tfg:has_light_sand_particles', 'tfg:mars/sangnum_edge') - event.add('tfg:has_light_sand_particles', 'tfg:mars/martian_mountains') event.add('tfg:has_light_sand_particles', 'tfg:mars/martian_river') } diff --git a/kubejs/server_scripts/tfg/data.js b/kubejs/server_scripts/tfg/data.js index af969ecc3..d548aa1a1 100644 --- a/kubejs/server_scripts/tfg/data.js +++ b/kubejs/server_scripts/tfg/data.js @@ -3,856 +3,970 @@ /** @param {Internal.TFCDataEventJS} event */ function registerTFCDataForTFG(event) { - registerTFGHeatData(event); - registerTFGItemSize(event); - registerTFGSupportData(event); - registerTFGFoodData(event); - registerTFGCropRanges(event); - registerTFGFLPlanters(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); + 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); + 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("tfg:sunflower_product", 1, null, null); + event.itemHeat("tfg:roasted_sunflower_seeds", 1, null, null); + event.itemHeat("#tfc:powders", 1, 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 - ); - } + /** + * 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"); + 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: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:trowel", "large", "medium", "trowel"); - event.itemSize("tfg:railgun_ammo_shell", "large", "heavy", "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: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("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"); + 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" - ); + // 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" - ); + // 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"); + // 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"); - // 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" - ); + // 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" + ); } //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"); + 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); + 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`); - }); + 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`); - }); + 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 + // meats - event.foodItem("tfg:food/raw_birt", (food) => { - food.hunger(4); - food.protein(1.5); - food.decayModifier(3); - }); + 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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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); - }); + event.foodItem("tfg:food/cooked_goober_meat", (food) => { + food.hunger(4); + food.saturation(3); + food.protein(6); + food.decayModifier(1.5); + }); - // high-tech food + // 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); - }); - }); + 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/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"); - }); + event.foodItem("tfg:food/meal_bag", (food) => { + food.type("dynamic"); + }); - // crops + // 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: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("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: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: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", (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_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_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_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.fruit(4); - food.grain(2); - }); + event.foodItem("betterend:cave_pumpkin_pie", (food) => { + food.hunger(4); + food.saturation(4); + food.decayModifier(2); + food.water(5); + 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_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: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_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: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_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); - }); + event.foodItem("betterend:bolux_mushroom_cooked", (food) => { + food.hunger(2); + food.saturation(2.5); + food.decayModifier(1.5); + food.vegetables(2); + }); - // misc + // misc - event.foodItem("tfg:food/ice_soup", (food) => { - food.hunger(1); - food.water(20); - food.decayModifier(0); - }); + 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); - }); - }); + 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"); + // 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(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"); + 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"); + // 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(0); - 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(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(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(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(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(0); - climate.maxHydration(100); - climate.minTemperature(-80); - climate.maxTemperature(30); - climate.hydrationWiggle(7.5); - climate.temperatureWiggle(5.5); - }, "betterend:shadow_berry"); + event.climateRange((climate) => { + climate.minHydration(0); + 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: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: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( + "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: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: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: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: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_greenhouse_fruit' - "betterend:block/cave_pumpkin_top" // TODO: check - ); + 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_greenhouse_fruit' + "betterend:block/cave_pumpkin_top" // TODO: check + ); - 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 - ); + 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) { + + event.fauna( + climate => { + climate.maxTemp(-85) + }, + faunaData => { + faunaData.solidGround(true) + }, + "tfg:glacian_ram") + + event.fauna( + climate => { + climate.minTemp(-85) + climate.maxTemp(-30) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "tfg:sniffer") + + event.fauna( + climate => { + climate.minTemp(-75) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "tfg:wraptor") + + event.fauna( + climate => { + climate.minTemp(-85) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "species:springling") + + event.fauna( + climate => { + climate.minTemp(-90) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "species:goober") + + event.fauna( + climate => { + climate.minTemp(-75) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "wan_ancient_beasts:walker") + + event.fauna( + climate => { + climate.minTemp(-95) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "wan_ancient_beasts:eater") + + event.fauna( + climate => { + climate.minTemp(-75) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "wan_ancient_beasts:crusher") + + event.fauna( + climate => { + climate.minTemp(-85) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "wan_ancient_beasts:soarer") + + event.fauna( + climate => { + climate.minTemp(-85) + climate.fuzzy(true) + }, + faunaData => { + faunaData.solidGround(true) + }, + "wan_ancient_beasts:glider") + + event.fauna( + climate => { + climate.minTemp(-85) + climate.fuzzy(true) + }, + faunaData => {}, + "wan_ancient_beasts:surfer") +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/fauna.js b/kubejs/startup_scripts/tfg/fauna.js new file mode 100644 index 000000000..4b6fceea3 --- /dev/null +++ b/kubejs/startup_scripts/tfg/fauna.js @@ -0,0 +1,18 @@ +// priority: 0 +"use strict"; + +TFCEvents.registerFaunas(event => { + event.replace("tfg:glacian_ram", "on_ground", "ocean_floor"); + event.replace("tfg:sniffer", "on_ground", "ocean_floor"); + event.replace("tfg:wraptor", "on_ground", "ocean_floor"); + event.replace("species:goober", "on_ground", "ocean_floor"); + event.replace("species:springling", "on_ground", "ocean_floor"); + event.replace("wan_ancient_beasts:walker", "on_ground", "ocean_floor"); + event.replace("wan_ancient_beasts:eater", "on_ground", "ocean_floor"); + event.replace("wan_ancient_beasts:crusher", "on_ground", "ocean_floor"); + + event.replace("wan_ancient_beasts:soarer", "no_restrictions", "world_surface"); + event.replace("wan_ancient_beasts:glider", "no_restrictions", "world_surface"); + + event.and("wan_ancient_beasts:surfer", "no_restrictions", "ocean_floor"); +}) \ No newline at end of file