diff --git a/CHANGELOG.md b/CHANGELOG.md index 22525a761..e3932cd72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - New bedrock ore veins on the moon! Much better sources of infinite materials than stone dusts. @TomPlop - New machines to properly automate food, along with proper compatibility between machines and TFC's food system, so you can't turn rotten grains into fresh bread any more. The electric greenhouse now also always outputs fresh food. @ofoxsmith - New electric refrigerator with different tiers. You can craft the old one into this new one, but please take your food out of it before upgrading otherwise it will be lost! @ofoxsmith +- Added many new advanced food items including freeze-dried fruit, calorie paste, and meal bags. @Redeix - Quest updates for all of the above. @TomPlop ### Minor changes - Balance changes for water wheels @Pyritie diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index e0b8a61af..f225e0684 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -282,6 +282,7 @@ "item.tfg.food.cooked_crawlermari": "Cooked Crawlermari", "item.tfg.food.raw_limpet": "Raw Limpet", "item.tfg.food.cooked_limpet": "Cooked Limpet", + "tfg.tooltip.foodtrait.freeze_dried": "Cryodesiccated", "material.tfg.latex": "Latex", "material.tfg.vulcanized_latex": "Vulcanized Latex", "material.tfg.fluix": "Fluix", @@ -358,6 +359,41 @@ "item.gtceu.silver_purified_ore": "Deprecated Item, Craft to Upgrade", "item.gtceu.tin_purified_ore": "Deprecated Item, Craft to Upgrade", "item.gtceu.lead_purified_ore": "Deprecated Item, Craft to Upgrade", + "item.tfg.foil_pack": "Foil Pack", + "item.tfg.used_foil_pack": "Used Foil Pack", + "item.tfg.clean_foil_pack": "Clean Foil Pack", + "item.tfg.dry_ice": "Dry Ice", + "item.tfg.food.freeze_dried.red_grapes": "Freeze Dried Red Grapes", + "item.tfg.food.freeze_dried.white_grapes": "Freeze Dried White Grapes", + "item.tfg.food.freeze_dried.glow_berries": "Freeze Dried Glow Berries", + "item.tfg.food.freeze_dried.chorus_fruit": "Freeze Dried Chorus Fruit", + "item.tfg.food.freeze_dried.popped_chorus_fruit": "Freeze Dried Popped Chorus Fruit", + "item.tfg.food.freeze_dried.blackberry": "Freeze Dried Blackberries", + "item.tfg.food.freeze_dried.blueberry": "Freeze Dried Blueberries", + "item.tfg.food.freeze_dried.bunchberry": "Freeze Dried Bunchberries", + "item.tfg.food.freeze_dried.cloudberry": "Freeze Dried Cloudberries", + "item.tfg.food.freeze_dried.cranberry": "Freeze Dried Cranberries", + "item.tfg.food.freeze_dried.elderberry": "Freeze Dried Elderberries", + "item.tfg.food.freeze_dried.gooseberry": "Freeze Dried Gooseberries", + "item.tfg.food.freeze_dried.raspberry": "Freeze Dried Raspberries", + "item.tfg.food.freeze_dried.snowberry": "Freeze Dried Snowberries", + "item.tfg.food.freeze_dried.strawberry": "Freeze Dried Strawberries", + "item.tfg.food.freeze_dried.wintergreen_berry": "Freeze Dried Wintergreen Berries", + "item.tfg.food.freeze_dried.banana": "Freeze Dried Banana", + "item.tfg.food.freeze_dried.cherry": "Freeze Dried Cherries", + "item.tfg.food.freeze_dried.green_apple": "Freeze Dried Green Apple", + "item.tfg.food.freeze_dried.lemon": "Freeze Dried Lemon", + "item.tfg.food.freeze_dried.olive": "Freeze Dried Olives", + "item.tfg.food.freeze_dried.orange": "Freeze Dried Orange", + "item.tfg.food.freeze_dried.peach": "Freeze Dried Peach", + "item.tfg.food.freeze_dried.plum": "Freeze Dried Plum", + "item.tfg.food.freeze_dried.red_apple": "Freeze Dried Red Apple", + "item.tfg.food.freeze_dried.pumpkin_chunks": "Freeze Dried Pumpkin Chunks", + "item.tfg.food.freeze_dried.melon_slice": "Freeze Dried Melon Slice", + "item.tfg.food.freeze_dried.fig": "Freeze Dried Fig", + "item.tfg.food.freeze_dried.pineapple": "Freeze Dried Pineapple", + "item.tfg.food.calorie_paste": "Calorie Paste", + "item.tfg.food.meal_bag": "Meal Bag", "gtceu:rich_raw_copper": "Deprecated Item, Craft to Upgrade", "gtceu:poor_raw_copper": "Deprecated Item, Craft to Upgrade", "gtceu:rich_raw_gold": "Deprecated Item, Craft to Upgrade", @@ -501,6 +537,7 @@ "tfg.food_recipe.brining": "Brining", "tfg.food_recipe.smoking": "Smoking", "tfg.food_recipe.drying": "Drying", + "tfg.food_recipe.freeze_drying": "Dessicate", "tfg.recipe.macerator_warning": "Only outputs first slot until HV", "tfg.grapplemod.repair": "Repair recipe, keeps your upgrades. §lNEVER combine two grapples or you'll lose ALL your upgrades!§r", "tfg.grapplemod.upgrades.maxlen": "Increases §lMax Length§r by 20, up to 200.", diff --git a/kubejs/assets/tfg/textures/item/clean_foil_pack.png b/kubejs/assets/tfg/textures/item/clean_foil_pack.png new file mode 100644 index 000000000..73bcf2333 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/clean_foil_pack.png differ diff --git a/kubejs/assets/tfg/textures/item/dry_ice.png b/kubejs/assets/tfg/textures/item/dry_ice.png new file mode 100644 index 000000000..58c686573 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/dry_ice.png differ diff --git a/kubejs/assets/tfg/textures/item/dry_ice.png.mcmeta b/kubejs/assets/tfg/textures/item/dry_ice.png.mcmeta new file mode 100644 index 000000000..24f9c2fae --- /dev/null +++ b/kubejs/assets/tfg/textures/item/dry_ice.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} diff --git a/kubejs/assets/tfg/textures/item/foil_pack.png b/kubejs/assets/tfg/textures/item/foil_pack.png new file mode 100644 index 000000000..6c275d454 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/foil_pack.png differ diff --git a/kubejs/assets/tfg/textures/item/food/calorie_paste.png b/kubejs/assets/tfg/textures/item/food/calorie_paste.png new file mode 100644 index 000000000..6bcea6b2f Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/calorie_paste.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_banana.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_banana.png new file mode 100644 index 000000000..1ca12b7cb Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_banana.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_blackberry.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_blackberry.png new file mode 100644 index 000000000..63011bff7 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_blackberry.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_blueberry.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_blueberry.png new file mode 100644 index 000000000..911bd0a4b Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_blueberry.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_bunchberry.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_bunchberry.png new file mode 100644 index 000000000..562dee3bb Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_bunchberry.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_cherry.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_cherry.png new file mode 100644 index 000000000..6c9e782ec Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_cherry.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_chorus_fruit.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_chorus_fruit.png new file mode 100644 index 000000000..01cb91bcc Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_chorus_fruit.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_cloudberry.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_cloudberry.png new file mode 100644 index 000000000..187085684 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_cloudberry.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_cranberry.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_cranberry.png new file mode 100644 index 000000000..01b1ddb55 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_cranberry.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_elderberry.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_elderberry.png new file mode 100644 index 000000000..d8db379db Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_elderberry.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_fig.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_fig.png new file mode 100644 index 000000000..9ce1b66a8 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_fig.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_glow_berries.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_glow_berries.png new file mode 100644 index 000000000..be3e90014 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_glow_berries.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_gooseberry.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_gooseberry.png new file mode 100644 index 000000000..e8eb7c407 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_gooseberry.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_green_apple.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_green_apple.png new file mode 100644 index 000000000..ad20cfcb7 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_green_apple.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_lemon.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_lemon.png new file mode 100644 index 000000000..053bac6cb Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_lemon.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_melon_slice.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_melon_slice.png new file mode 100644 index 000000000..e8b21068d Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_melon_slice.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_olive.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_olive.png new file mode 100644 index 000000000..6d6ee80bd Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_olive.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_orange.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_orange.png new file mode 100644 index 000000000..4ecd0618d Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_orange.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_peach.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_peach.png new file mode 100644 index 000000000..cce2ccc6e Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_peach.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_pineapple.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_pineapple.png new file mode 100644 index 000000000..7deeeea9e Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_pineapple.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_plum.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_plum.png new file mode 100644 index 000000000..0a264cf88 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_plum.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_popped_chorus_fruit.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_popped_chorus_fruit.png new file mode 100644 index 000000000..9c5764b29 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_popped_chorus_fruit.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_pumpkin_chunks.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_pumpkin_chunks.png new file mode 100644 index 000000000..08be23af3 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_pumpkin_chunks.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_raspberry.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_raspberry.png new file mode 100644 index 000000000..057e14fd5 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_raspberry.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_red_apple.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_red_apple.png new file mode 100644 index 000000000..2f9f07894 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_red_apple.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_red_grapes.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_red_grapes.png new file mode 100644 index 000000000..bb4890be9 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_red_grapes.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_snowberry.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_snowberry.png new file mode 100644 index 000000000..12678614d Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_snowberry.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_strawberry.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_strawberry.png new file mode 100644 index 000000000..f259dc3c9 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_strawberry.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_white_grapes.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_white_grapes.png new file mode 100644 index 000000000..382a4b646 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_white_grapes.png differ diff --git a/kubejs/assets/tfg/textures/item/food/freeze_dried_wintergreen_berry.png b/kubejs/assets/tfg/textures/item/food/freeze_dried_wintergreen_berry.png new file mode 100644 index 000000000..453481302 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/freeze_dried_wintergreen_berry.png differ diff --git a/kubejs/assets/tfg/textures/item/food/meal_bag.png b/kubejs/assets/tfg/textures/item/food/meal_bag.png new file mode 100644 index 000000000..52d0615ea Binary files /dev/null and b/kubejs/assets/tfg/textures/item/food/meal_bag.png differ diff --git a/kubejs/assets/tfg/textures/item/used_foil_pack.png b/kubejs/assets/tfg/textures/item/used_foil_pack.png new file mode 100644 index 000000000..94470adb7 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/used_foil_pack.png differ diff --git a/kubejs/server_scripts/gregtech/recipes.recycling.js b/kubejs/server_scripts/gregtech/recipes.recycling.js index 11aea9140..bb3064ca6 100644 --- a/kubejs/server_scripts/gregtech/recipes.recycling.js +++ b/kubejs/server_scripts/gregtech/recipes.recycling.js @@ -215,4 +215,25 @@ function registerGTCEURecyclingRecipes(event) { .duration(1792) .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) .EUt(GTValues.VA[GTValues.LV]) + + // Clean Foil pack + event.recipes.gtceu.macerator('gtceu:macerator/recycling/clean_foil_pack') + .itemInputs('tfg:clean_foil_pack') + .itemOutputs( + ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Aluminium, 1), + ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Polyethylene, 1) + ) + .duration(GTMaterials.Aluminium.getMass() * 1) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/clean_foil_pack') + .itemInputs('tfg:clean_foil_pack') + .itemOutputs( + ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Aluminium, 2), + ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Ash, 1) + ) + .duration(GTMaterials.Aluminium.getMass() * 1) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) } \ No newline at end of file diff --git a/kubejs/server_scripts/tfc/tags.js b/kubejs/server_scripts/tfc/tags.js index 112706c76..a46993c62 100644 --- a/kubejs/server_scripts/tfc/tags.js +++ b/kubejs/server_scripts/tfc/tags.js @@ -82,6 +82,10 @@ const registerTFCItemTags = (event) => { // Make eggs not useless event.add('tfc:foods/usable_in_salad', 'tfc:food/cooked_egg') event.add('tfc:foods/usable_in_salad', 'tfc:food/boiled_egg') + event.add('tfc:foods/usable_in_jam_sandwich', 'tfc:food/cooked_egg') + event.add('tfc:foods/usable_in_jam_sandwich', 'tfc:food/boiled_egg') + event.add('tfc:foods/usable_in_sandwich', 'tfc:food/cooked_egg') + event.add('tfc:foods/usable_in_sandwich', 'tfc:food/boiled_egg') // Чтобы жарились бревна из TFC в пиролиз. печке // Почему нельзя просто добавить тег в тег? (допустим minecraft:logs), потому что из-за этого ломаются все рецепты minecraft:logs, магия... diff --git a/kubejs/server_scripts/tfg/data.js b/kubejs/server_scripts/tfg/data.js index 6a42f8f1e..ebac871f4 100644 --- a/kubejs/server_scripts/tfg/data.js +++ b/kubejs/server_scripts/tfg/data.js @@ -102,4 +102,24 @@ const registerTFGFoodData = (event) => { food.protein(2.4) food.decayModifier(2.25) }) + + 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) + }) + + event.foodItem('tfg:food/meal_bag', food => { + food.type('dynamic') + }) } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.food.js b/kubejs/server_scripts/tfg/recipes.food.js index b928b0944..7491e9b25 100644 --- a/kubejs/server_scripts/tfg/recipes.food.js +++ b/kubejs/server_scripts/tfg/recipes.food.js @@ -116,6 +116,7 @@ function registerTFGFoodRecipes(event) { // Raw crop to grain processorRecipe(`${grain}_grain`, 100, 8, { + circuit: 30, itemInputs: [`tfc:food/${grain}`], itemOutputs: [`tfc:food/${grain}_grain`], itemOutputProvider: TFC.isp.of(`tfc:food/${grain}_grain`).copyOldestFood() @@ -123,6 +124,7 @@ function registerTFGFoodRecipes(event) { // Grain to flour processorRecipe(`${grain}_flour`, 100, 8, { + circuit: 31, itemInputs: [`tfc:food/${grain}_grain`], itemOutputs: [`2x tfc:food/${grain}_flour`], itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_flour`).copyOldestFood() @@ -171,9 +173,10 @@ function registerTFGFoodRecipes(event) { }) //Note: Jam needs to be first in the recipe code or else it will consider it as the usable_in_jam_sandwhich ingredients. - processorRecipe(`${grain}_${type[0]}_jam_sandwich`, 100, 16, { + //1 Jam + processorRecipe(`${grain}_${type[0]}_jam_sandwich_1`, 100, 16, { circuit: 4, - itemInputs: [`2x ${type[1]}`, '#tfc:foods/preserves', '2x #tfc:foods/usable_in_jam_sandwich'], + itemInputs: [`2x ${type[1]}`, '#tfc:foods/preserves', '2x #tfc:foods/usable_in_jam_sandwich_2'], itemOutputs: [`2x tfc:food/${grain}_bread_jam_sandwich`, 'tfc:empty_jar'], itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_bread_jam_sandwich`).meal( (food => food.hunger(4).water(0.5).saturation(1).decayModifier(4.5)), [ @@ -181,6 +184,30 @@ function registerTFGFoodRecipes(event) { (portion) => portion.nutrientModifier(0.8).saturationModifier(0.8).waterModifier(0.8), ]), }) + + //2 Jam + processorRecipe(`${grain}_${type[0]}_jam_sandwich_2`, 100, 16, { + circuit: 4, + itemInputs: [`2x ${type[1]}`, '2x #tfc:foods/preserves', '1x #tfc:foods/usable_in_jam_sandwich_2'], + itemOutputs: [`2x tfc:food/${grain}_bread_jam_sandwich`, '2x tfc:empty_jar'], + itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_bread_jam_sandwich`).meal( + (food => food.hunger(4).water(0.5).saturation(1).decayModifier(4.5)), [ + (portion) => portion.ingredient(Ingredient.of('#tfc:sandwich_bread')).nutrientModifier(0.5).saturationModifier(0.5).waterModifier(0.5), + (portion) => portion.nutrientModifier(0.8).saturationModifier(0.8).waterModifier(0.8), + ]), + }) + + //3 Jam + processorRecipe(`${grain}_${type[0]}_jam_sandwich_3`, 100, 16, { + circuit: 4, + itemInputs: [`2x ${type[1]}`, '3x #tfc:foods/preserves'], + itemOutputs: [`2x tfc:food/${grain}_bread_jam_sandwich`, '3x tfc:empty_jar'], + itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_bread_jam_sandwich`).meal( + (food => food.hunger(4).water(0.5).saturation(1).decayModifier(4.5)), [ + (portion) => portion.ingredient(Ingredient.of('#tfc:sandwich_bread')).nutrientModifier(0.5).saturationModifier(0.5).waterModifier(0.5), + (portion) => portion.nutrientModifier(0.8).saturationModifier(0.8).waterModifier(0.8), + ]), + }) }) @@ -344,6 +371,73 @@ function registerTFGFoodRecipes(event) { }) }) + global.FOOD_FRUIT.forEach(fruit => { + processorRecipeText(`${fruit.name}/drying`, 100, 120, "tfg.food_recipe.freeze_drying", { + circuit: 7, + itemInputs: [fruit.id, 'tfg:foil_pack', 'tfg:dry_ice'], + itemOutputs: [`tfg:food/freeze_dried/${fruit.name}`], + itemOutputProvider: TFC.isp.of(`tfg:food/freeze_dried/${fruit.name}`).copyOldestFood().removeTrait('firmalife:dried').addTrait('tfg:freeze_dried') + }) + }) + + //#endregion + + //#region Meal Bags + //1 Input + processorRecipeText('meal_bag/1', 100, 120, "tfg.food_recipe.freeze_drying", { + circuit: 10, + itemInputs: ['1x #tfg:foods/usable_in_meal_bag', '2x tfg:foil_pack', 'tfg:dry_ice'], + itemOutputs: ['2x tfg:food/meal_bag'], + itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal( + (food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [ + (portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8), + ]).addTrait('tfg:freeze_dried') + }) + + //2 Input + processorRecipeText('meal_bag/2', 100, 120, "tfg.food_recipe.freeze_drying", { + circuit: 11, + itemInputs: ['2x #tfg:foods/usable_in_meal_bag', '2x tfg:foil_pack', 'tfg:dry_ice'], + itemOutputs: ['2x tfg:food/meal_bag'], + itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal( + (food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [ + (portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8), + ]).addTrait('tfg:freeze_dried') + }) + + //3 Input + processorRecipeText('meal_bag/3', 100, 120, "tfg.food_recipe.freeze_drying", { + circuit: 12, + itemInputs: ['3x #tfg:foods/usable_in_meal_bag', '2x tfg:foil_pack', 'tfg:dry_ice'], + itemOutputs: ['2x tfg:food/meal_bag'], + itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal( + (food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [ + (portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8), + ]).addTrait('tfg:freeze_dried') + }) + + //4 Input + processorRecipeText('meal_bag/4', 100, 120, "tfg.food_recipe.freeze_drying", { + circuit: 13, + itemInputs: ['4x #tfg:foods/usable_in_meal_bag', '2x tfg:foil_pack', 'tfg:dry_ice'], + itemOutputs: ['2x tfg:food/meal_bag'], + itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal( + (food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [ + (portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8), + ]).addTrait('tfg:freeze_dried') + }) + + //5 Input + processorRecipeText('meal_bag/5', 100, 120, "tfg.food_recipe.freeze_drying", { + circuit: 14, + itemInputs: ['5x #tfg:foods/usable_in_meal_bag', '2x tfg:foil_pack', 'tfg:dry_ice'], + itemOutputs: ['2x tfg:food/meal_bag'], + itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal( + (food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [ + (portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8), + ]).addTrait('tfg:freeze_dried') + }) + //#endregion //#region ================= Misc ================= @@ -414,6 +508,14 @@ function registerTFGFoodRecipes(event) { itemOutputs: ['firmalife:food/soybean_paste'], itemOutputProvider: TFC.isp.of('firmalife:food/soybean_paste').copyOldestFood(), }) + + processorRecipeText('calorie_paste', 100, 512, "tfg.food_recipe.freeze_drying", { + circuit: 8, + itemInputs: ['firmalife:food/soybean_paste', 'tfg:foil_pack'], + itemOutputs: ['tfg:food/calorie_paste'], + fluidInputs: [Fluid.of('gtceu:fermented_biomass', 40)], + itemOutputProvider: TFC.isp.of('tfg:food/calorie_paste').copyOldestFood().addTrait('tfg:freeze_dried'), + }) // Vinegar global.TFC_ALCOHOL.forEach(alcohol => { diff --git a/kubejs/server_scripts/tfg/recipes.miscellaneous.js b/kubejs/server_scripts/tfg/recipes.miscellaneous.js index a56d31f7c..d0253d333 100644 --- a/kubejs/server_scripts/tfg/recipes.miscellaneous.js +++ b/kubejs/server_scripts/tfg/recipes.miscellaneous.js @@ -424,4 +424,69 @@ function registerTFGMiscellaneousRecipes(event) { .duration(40) .circuit(4) .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.forming_press('tfg:forming_press/foil_pack') + .itemInputs(ChemicalHelper.get(TagPrefix.foil, GTMaterials.Aluminium, 1), ChemicalHelper.get(TagPrefix.foil, GTMaterials.Polyethylene, 1)) + .itemOutputs('1x tfg:foil_pack') + .duration(100) + .circuit(4) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.compressor('tfg:compressor/dry_ice') + .inputFluids(Fluid.of('gtceu:carbon_dioxide', 1000)) + .itemOutputs('10x tfg:dry_ice') + .duration(100) + .circuit(4) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_reactor('tfg:chemical_reactor/decompress_dry_ice') + .outputFluids(Fluid.of('gtceu:carbon_dioxide', 100)) + .itemInputs('1x tfg:dry_ice') + .duration(20) + .circuit(4) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.ore_washer('tfg:ore_washer/clean_foil_pack') + .itemInputs('1x tfg:used_foil_pack') + .inputFluids(Fluid.of('minecraft:water', 100)) + .itemOutputs('1x tfg:clean_foil_pack') + .duration(200) + .circuit(1) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.ore_washer('tfg:ore_washer/distilled/clean_foil_pack') + .itemInputs('1x tfg:used_foil_pack') + .inputFluids(Fluid.of('gtceu:distilled_water', 10)) + .itemOutputs('1x tfg:clean_foil_pack') + .duration(200) + .circuit(2) + .EUt(GTValues.VA[GTValues.ULV]) + + event.custom({ + type: "ae2:transform", + circumstance: { + type: "fluid", + tag: "tfc:water" + }, + ingredients: [ + {item: 'tfg:used_foil_pack'}], + result: {item: 'tfg:clean_foil_pack'} + }).id('tfg:ae_transform/clean_foil_pack') + + event.recipes.greate.splashing(['tfg:clean_foil_pack'], 'tfg:used_foil_pack') + .id('tfg:splashing/clean_foil_pack') + + event.shapeless('1x tfg:used_foil_pack', [ + 'tfg:food/calorie_paste' + ]).id('tfg:shapeless/emptying/calorie_paste') + + event.shapeless('1x tfg:used_foil_pack', [ + 'tfg:food/meal_bag' + ]).id('tfg:shapeless/emptying/meal_bag') + + global.FOOD_FRUIT.forEach(fruit => { + event.shapeless('1x tfg:used_foil_pack', [ + `tfg:food/freeze_dried/${fruit.name}` + ]).id(`tfg:shapeless/emptying/freeze_dried/${fruit.name}`) + }) } diff --git a/kubejs/server_scripts/tfg/tags.js b/kubejs/server_scripts/tfg/tags.js index a65ac51dd..020464b04 100644 --- a/kubejs/server_scripts/tfg/tags.js +++ b/kubejs/server_scripts/tfg/tags.js @@ -141,7 +141,7 @@ const registerTFGItemTags = (event) => { event.add('forge:double_iron_ingots', '#forge:double_ingots/iron') event.add('forge:double_iron_ingots', '#forge:double_ingots/wrought_iron') - // Food + //#region Food const RAW_MEATS = [ 'tfg:food/raw_birt', 'tfg:food/raw_crawlermari', @@ -164,6 +164,26 @@ const registerTFGItemTags = (event) => { event.add('tfc:foods/cooked_meats', meat) }) + //jam sandwhich stuff + const usable_in_jam_sandwich = Ingredient.of('#tfc:foods/usable_in_jam_sandwich').itemIds.toArray().map(String); + const preserves = Ingredient.of('#tfc:foods/preserves').itemIds.toArray().map(String); + + const usable_in_jam_sandwich_2 = usable_in_jam_sandwich.filter(item => !preserves.includes(item)); + + usable_in_jam_sandwich_2.forEach(item => { + event.add('tfc:foods/usable_in_jam_sandwich_2', item); + }); + + //meal bags + event.add('tfg:foods/usable_in_meal_bag', '#tfc:foods/meats'); + event.add('tfg:foods/usable_in_meal_bag', '#tfc:foods/grains'); + event.add('tfg:foods/usable_in_meal_bag', '#tfc:foods/vegetables'); + event.add('tfg:foods/usable_in_meal_bag', '#tfc:foods/fruits'); + event.add('tfg:foods/usable_in_meal_bag', '#tfc:foods/dairy'); + event.add('tfg:foods/usable_in_meal_bag', 'tfc:food/cooked_egg'); + event.add('tfg:foods/usable_in_meal_bag', 'tfc:food/boiled_egg'); + //#endregion + // #region 0.7.19 -> 0.9 conversion event.add('c:hidden_from_recipe_viewers', 'treetap:tap') event.add('c:hidden_from_recipe_viewers', 'tfcea:refrigerator') diff --git a/kubejs/startup_scripts/main_startup_script.js b/kubejs/startup_scripts/main_startup_script.js index 38f06e40c..1d7c77af7 100644 --- a/kubejs/startup_scripts/main_startup_script.js +++ b/kubejs/startup_scripts/main_startup_script.js @@ -87,6 +87,9 @@ GTCEuStartupEvents.registry('gtceu:dimension_marker', event => { registerTFGDimensionMarkers(event) }) +TFCEvents.registerFoodTrait(event => { + registerTFGFoodTraits(event) +}) Platform.mods.kaolinclayze.name = "Primitive Creatures"; Platform.mods.tfg.name = "TerraFirmaGreg"; diff --git a/kubejs/startup_scripts/tfg/constants.js b/kubejs/startup_scripts/tfg/constants.js index 8bed935af..05e2bf04d 100644 --- a/kubejs/startup_scripts/tfg/constants.js +++ b/kubejs/startup_scripts/tfg/constants.js @@ -68,4 +68,36 @@ global.MARS_BIOMES = [ 'tfg:mars/martian_mountains' ] -global.UNIVERSAL_CIRCUIT_TIERS = ["ulv", "lv", "mv", "hv", "ev", "iv", "luv", "zpm", "uv", "uhv"]; \ No newline at end of file +global.UNIVERSAL_CIRCUIT_TIERS = ["ulv", "lv", "mv", "hv", "ev", "iv", "luv", "zpm", "uv", "uhv"]; + +global.FOOD_FRUIT = [ + {name: 'red_grapes', id: 'firmalife:food/red_grapes', saturation: 0.4, water: 2, fruit: 0.5, decay: 2.25}, + {name: 'white_grapes', id: 'firmalife:food/white_grapes', saturation: 0.4, water: 2, fruit: 0.5, decay: 2.25}, + {name: 'glow_berries', id: 'minecraft:glow_berries', saturation: 0, water: 5, fruit: 0.5, decay: 2.25}, + {name: 'chorus_fruit', id: 'minecraft:chorus_fruit', saturation: 0, water: 5, fruit: 2, decay: 1.2}, + {name: 'popped_chorus_fruit', id: 'minecraft:popped_chorus_fruit', saturation: 1, water: 0, fruit: 3, decay: 0.8}, + {name: 'blackberry', id: 'tfc:food/blackberry', saturation: 0.2, water: 5, fruit: 0.8, decay: 4.5}, + {name: 'blueberry', id: 'tfc:food/blueberry', saturation: 0.2, water: 5, fruit: 0.8, decay: 4.5}, + {name: 'bunchberry', id: 'tfc:food/bunchberry', saturation: 0.4, water: 5, fruit: 0.8, decay: 4.5}, + {name: 'cloudberry', id: 'tfc:food/cloudberry', saturation: 0.4, water: 5, fruit: 0.8, decay: 4.5}, + {name: 'cranberry', id: 'tfc:food/cranberry', saturation: 0.2, water: 5, fruit: 1, decay: 2.25}, + {name: 'elderberry', id: 'tfc:food/elderberry', saturation: 0.2, water: 5, fruit: 1, decay: 4.5}, + {name: 'gooseberry', id: 'tfc:food/gooseberry', saturation: 0.4, water: 5, fruit: 0.8, decay: 4.5}, + {name: 'raspberry', id: 'tfc:food/raspberry', saturation: 0.4, water: 5, fruit: 0.8, decay: 4.5}, + {name: 'snowberry', id: 'tfc:food/snowberry', saturation: 0.2, water: 5, fruit: 1, decay: 4.5}, + {name: 'strawberry', id: 'tfc:food/strawberry', saturation: 0.4, water: 10, fruit: 0.5, decay: 4.5}, + {name: 'wintergreen_berry', id: 'tfc:food/wintergreen_berry', saturation: 0.2, water: 5, fruit: 1, decay: 2.1}, + {name: 'banana', id: 'tfc:food/banana', saturation: 0.2, water: 0, fruit: 1, decay: 2.25}, + {name: 'cherry', id: 'tfc:food/cherry', saturation: 0.2, water: 5, fruit: 1, decay: 3.5}, + {name: 'green_apple', id: 'tfc:food/green_apple', saturation: 0.4, water: 0, fruit: 1, decay: 2.5}, + {name: 'lemon', id: 'tfc:food/lemon', saturation: 0.2, water: 5, fruit: 0.08, decay: 2.25}, + {name: 'olive', id: 'tfc:food/olive', saturation: 0.2, water: 0, fruit: 1, decay: 2.25}, + {name: 'orange', id: 'tfc:food/orange', saturation: 0.4, water: 10, fruit: 0.5, decay: 2.25}, + {name: 'peach', id: 'tfc:food/peach', saturation: 0.4, water: 10, fruit: 0.5, decay: 2.5}, + {name: 'plum', id: 'tfc:food/plum', saturation: 0.4, water: 5, fruit: 0.8, decay: 2.25}, + {name: 'red_apple', id: 'tfc:food/red_apple', saturation: 0.4, water: 0, fruit: 1, decay: 2.25}, + {name: 'pumpkin_chunks', id: 'tfc:food/pumpkin_chunks', saturation: 1, water: 5, fruit: 0.8, decay: 2.25}, + {name: 'melon_slice', id: 'tfc:food/melon_slice', saturation: 0.2, water: 5, fruit: 0.8, decay: 2.25}, + {name: 'fig', id: 'firmalife:food/fig', saturation: 1, water: 5, fruit: 0.9, decay: 1}, + {name: 'pineapple', id: 'firmalife:food/pineapple', saturation: 1, water: 1, fruit: 0.8, decay: 4.5} +]; \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/events.food_traits.js b/kubejs/startup_scripts/tfg/events.food_traits.js new file mode 100644 index 000000000..3a0f8432d --- /dev/null +++ b/kubejs/startup_scripts/tfg/events.food_traits.js @@ -0,0 +1,5 @@ +function registerTFGFoodTraits(event) { + + event.registerTraitWithTooltip(0.02, 'tfg:freeze_dried') + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/items.food.js b/kubejs/startup_scripts/tfg/items.food.js index d573c1982..1078c4322 100644 --- a/kubejs/startup_scripts/tfg/items.food.js +++ b/kubejs/startup_scripts/tfg/items.food.js @@ -4,7 +4,7 @@ function registerTFGFoodItems(event) { event.create('tfg:food/raw_birt') .translationKey('item.tfg.food.raw_birt') - .food(food => food.hunger(2).saturation(2) + .food(food => food.hunger(2).saturation(1) .effect('species:birtd', 50, 0, 1) .eaten(ctx => { ctx.player.level.runCommandSilent(`playsound species:effect.birtd.applied player ${ctx.player.username} ${ctx.player.x} ${ctx.player.y} ${ctx.player.z} 1 1`) @@ -12,21 +12,54 @@ function registerTFGFoodItems(event) { event.create('tfg:food/cooked_birt') .translationKey('item.tfg.food.cooked_birt') - .food(food => food.hunger(6).saturation(6)) + .food(food => food.hunger(4).saturation(2)) event.create('tfg:food/raw_limpet') .translationKey('item.tfg.food.raw_limpet') - .food(food => food.hunger(2).saturation(2)) + .food(food => food.hunger(2).saturation(1)) event.create('tfg:food/cooked_limpet') .translationKey('item.tfg.food.cooked_limpet') - .food(food => food.hunger(6).saturation(6)) + .food(food => food.hunger(4).saturation(2)) event.create('tfg:food/raw_crawlermari') .translationKey('item.tfg.food.raw_crawlermari') - .food(food => food.hunger(2).saturation(2)) + .food(food => food.hunger(2).saturation(1)) event.create('tfg:food/cooked_crawlermari') .translationKey('item.tfg.food.cooked_crawlermari') - .food(food => food.hunger(6).saturation(6)) + .food(food => food.hunger(4).saturation(2)) + + global.FOOD_FRUIT.forEach(fruit => { + event.create(`tfg:food/freeze_dried/${fruit.name}`) + .translationKey(`item.tfg.food.freeze_dried/${fruit.name}`) + .texture(`tfg:item/food/freeze_dried_${fruit.name}`) + .food(food => food.hunger(4).saturation(1) + .eaten(ctx => { + ctx.player.give('tfg:used_foil_pack') + })) + }) + + event.create('tfg:food/calorie_paste') + .translationKey('item.tfg.food.calorie_paste') + .food(food => food.hunger(8).saturation(5) + .eaten(ctx => { + ctx.player.give('tfg:used_foil_pack') + })) + .texture('tfg:item/food/calorie_paste') + + event.create('tfg:used_foil_pack') + .translationKey('item.tfg.food.used_foil_pack') + .food(food => food.hunger(0).saturation(0) + .effect('minecraft:nausea', 200, 0, 1) + ) + .texture('tfg:item/used_foil_pack') + + event.create('tfg:food/meal_bag') + .translationKey('item.tfg.food.meal_bag') + .food(food => food.hunger(6).saturation(3) + .eaten(ctx => { + ctx.player.give('tfg:used_foil_pack') + })) + .texture('tfg:item/food/meal_bag') } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/items.js b/kubejs/startup_scripts/tfg/items.js index 0081e7bca..8af8baea1 100644 --- a/kubejs/startup_scripts/tfg/items.js +++ b/kubejs/startup_scripts/tfg/items.js @@ -147,12 +147,24 @@ const registerTFGItems = (event) => { .tooltip(`§9Instant Health II`) //#endregion - //#region Wax + //#region Misc event.create('tfg:paraffin_wax') .translationKey('item.tfg.paraffin_wax') event.create('tfg:conifer_rosin') .translationKey('item.tfg.conifer_rosin') + + event.create('tfg:foil_pack') + .translationKey('item.tfg.foil_pack') + .texture('tfg:item/foil_pack') + + event.create('tfg:clean_foil_pack') + .translationKey('item.tfg.clean_foil_pack') + .texture('tfg:item/clean_foil_pack') + + event.create('tfg:dry_ice') + .translationKey('item.tfg.dry_ice') + .texture('tfg:item/dry_ice') //#endregion //#region Cloth & String