From c56745087522cf4d95207a6bff6c82ed84d4e281 Mon Sep 17 00:00:00 2001 From: Redeix <59435925+Redeix@users.noreply.github.com> Date: Fri, 20 Jun 2025 03:49:39 -0500 Subject: [PATCH] - Lots of food stuff (#1196) * - Lots of food stuff * Updated Changelog --- CHANGELOG.md | 1 + kubejs/assets/tfg/lang/en_us.json | 37 ++++++ .../tfg/textures/item/clean_foil_pack.png | Bin 0 -> 522 bytes kubejs/assets/tfg/textures/item/dry_ice.png | Bin 0 -> 5009 bytes .../tfg/textures/item/dry_ice.png.mcmeta | 5 + kubejs/assets/tfg/textures/item/foil_pack.png | Bin 0 -> 416 bytes .../tfg/textures/item/food/calorie_paste.png | Bin 0 -> 347 bytes .../item/food/freeze_dried_banana.png | Bin 0 -> 454 bytes .../item/food/freeze_dried_blackberry.png | Bin 0 -> 456 bytes .../item/food/freeze_dried_blueberry.png | Bin 0 -> 452 bytes .../item/food/freeze_dried_bunchberry.png | Bin 0 -> 455 bytes .../item/food/freeze_dried_cherry.png | Bin 0 -> 450 bytes .../item/food/freeze_dried_chorus_fruit.png | Bin 0 -> 455 bytes .../item/food/freeze_dried_cloudberry.png | Bin 0 -> 454 bytes .../item/food/freeze_dried_cranberry.png | Bin 0 -> 456 bytes .../item/food/freeze_dried_elderberry.png | Bin 0 -> 459 bytes .../textures/item/food/freeze_dried_fig.png | Bin 0 -> 457 bytes .../item/food/freeze_dried_glow_berries.png | Bin 0 -> 457 bytes .../item/food/freeze_dried_gooseberry.png | Bin 0 -> 457 bytes .../item/food/freeze_dried_green_apple.png | Bin 0 -> 455 bytes .../textures/item/food/freeze_dried_lemon.png | Bin 0 -> 452 bytes .../item/food/freeze_dried_melon_slice.png | Bin 0 -> 455 bytes .../textures/item/food/freeze_dried_olive.png | Bin 0 -> 454 bytes .../item/food/freeze_dried_orange.png | Bin 0 -> 453 bytes .../textures/item/food/freeze_dried_peach.png | Bin 0 -> 458 bytes .../item/food/freeze_dried_pineapple.png | Bin 0 -> 454 bytes .../textures/item/food/freeze_dried_plum.png | Bin 0 -> 460 bytes .../food/freeze_dried_popped_chorus_fruit.png | Bin 0 -> 454 bytes .../item/food/freeze_dried_pumpkin_chunks.png | Bin 0 -> 454 bytes .../item/food/freeze_dried_raspberry.png | Bin 0 -> 454 bytes .../item/food/freeze_dried_red_apple.png | Bin 0 -> 455 bytes .../item/food/freeze_dried_red_grapes.png | Bin 0 -> 449 bytes .../item/food/freeze_dried_snowberry.png | Bin 0 -> 455 bytes .../item/food/freeze_dried_strawberry.png | Bin 0 -> 451 bytes .../item/food/freeze_dried_white_grapes.png | Bin 0 -> 452 bytes .../food/freeze_dried_wintergreen_berry.png | Bin 0 -> 458 bytes .../tfg/textures/item/food/meal_bag.png | Bin 0 -> 491 bytes .../tfg/textures/item/used_foil_pack.png | Bin 0 -> 463 bytes .../gregtech/recipes.recycling.js | 21 ++++ kubejs/server_scripts/tfc/tags.js | 4 + kubejs/server_scripts/tfg/data.js | 20 ++++ kubejs/server_scripts/tfg/recipes.food.js | 106 +++++++++++++++++- .../tfg/recipes.miscellaneous.js | 65 +++++++++++ kubejs/server_scripts/tfg/tags.js | 22 +++- kubejs/startup_scripts/main_startup_script.js | 3 + kubejs/startup_scripts/tfg/constants.js | 34 +++++- .../startup_scripts/tfg/events.food_traits.js | 5 + kubejs/startup_scripts/tfg/items.food.js | 45 +++++++- kubejs/startup_scripts/tfg/items.js | 14 ++- 49 files changed, 371 insertions(+), 11 deletions(-) create mode 100644 kubejs/assets/tfg/textures/item/clean_foil_pack.png create mode 100644 kubejs/assets/tfg/textures/item/dry_ice.png create mode 100644 kubejs/assets/tfg/textures/item/dry_ice.png.mcmeta create mode 100644 kubejs/assets/tfg/textures/item/foil_pack.png create mode 100644 kubejs/assets/tfg/textures/item/food/calorie_paste.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_banana.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_blackberry.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_blueberry.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_bunchberry.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_cherry.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_chorus_fruit.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_cloudberry.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_cranberry.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_elderberry.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_fig.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_glow_berries.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_gooseberry.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_green_apple.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_lemon.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_melon_slice.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_olive.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_orange.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_peach.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_pineapple.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_plum.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_popped_chorus_fruit.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_pumpkin_chunks.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_raspberry.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_red_apple.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_red_grapes.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_snowberry.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_strawberry.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_white_grapes.png create mode 100644 kubejs/assets/tfg/textures/item/food/freeze_dried_wintergreen_berry.png create mode 100644 kubejs/assets/tfg/textures/item/food/meal_bag.png create mode 100644 kubejs/assets/tfg/textures/item/used_foil_pack.png create mode 100644 kubejs/startup_scripts/tfg/events.food_traits.js 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 0000000000000000000000000000000000000000..73bcf233364c321ce6a7a9bb8664dbdeb3e4a53b GIT binary patch literal 522 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s7Go-U3d7QMBTHg*R)3bgOHEqYYyzDe+~@H-ckJyAidv#;NZ$xVM~Uy%6F>oohs z*FljUT(i?By9IG%K4}c^O5#vr+sXRzsLb-?g%T$t_Ut*U_T2L9hTX>Z|D>f&?O-sN ze?D@1-uBn>sSiaDlvpjjnia@oF^3`NM$IWL zlVSb&2ai5D9NKHUNoTjrgXw!CoBG99%RTs2x5jENpXa0t873E^e!taWZ2e<>ecE5U zoe$rMHW(grJoR+b4+h33g_ia@dsLR6_Nu!-fnU&}ljEf3o!d<-P&)~Lksx1m)xU(RCerRmRQI)6SzCYAH|U>@dR->#DwsLzU+_Px1Loou5`=&?7IK} literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..58c6865737cb036925883a26aab2bf60278f6cb5 GIT binary patch literal 5009 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6c275d4545ad5b2e8ed2526da84ac9e887cc8a02 GIT binary patch literal 416 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s6;PZ!4!i{7P^6(=1s5NX?A@{L1()v|S$nOz>fD$w9*GFHg4U}%2KvsEKTc3qe7 zk;FxZ3RpI!P0rMudw1sFQ0tff_x|5IeU$*y|BK-@6?@|rH*d>rPuY4mPyLzB=>Wrn z0vERFI;>dLwMgT|F2086pE(zl?Y_IdK|$$dY_@Np$es7)zxJ^os6PL(BIIUFepL3B zYcC()e%tna-r2OnNgHRJdk}l?H>bdY*H&w`t_jorD)>Rpe%9XaHgf%*3vY@s^cb!z zx^iA&XN=xwhGd>&Gfe(Q#JYUAw|Hxqyzm^q-9?jaQR; zTLmsf=FSRfI>puagzHwmp=QbY&AT}{G>riW@^qQ*Gpqy1+z0Qo!jY;Ciepcf>`;ugOxK?e`y5MW| zY_rDZ`%4@yg|4pNvfDQAS8d;^RI$P{pG!8)J#cGkh5GTBxH-%hGJlpt*)=FgU_#T*S=@_*LU`LC9kQg!V+W}_c=8j{4g!*u6D&gR_VL5wG7I3irCt+ yKC?+bFpJ@Ujo&h+C-Q-eQ#9ZG)qgWTfj56zO0iL7usH(*1B0ilpUXO@geCwTCW?3f literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1ca12b7cb990cc7f0c2561556c4510cb12695d73 GIT binary patch literal 454 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s6oPZ!4!i{7P^7v>*w5NY3^tu`&8dR3CIhe8TxUkginWPt`xlYIhLqvA|ei!Uj< zT;c7j59u?uKA6<@I^cwp`n26srlxs+3%X&V5w|Y;9%I~wz%>A@0LW4120RM1Rj6<5#D^JH1@ad(j(t%zx}oi6k%Mj zHO+25_wqGnnyNuw)s>rXF4&r8A#>?vNtf*p&9$Wm1r&Ikx82tLTNi)F^u*)vFWL;R zW*qu#?Kw$AXzH|tC4HI<&p%6U=uO!gHC1{`l&;pVt8B+Ty(X#bSl4|`N^|KB?+p<; zo8s1&Prmu0XlKoP?a;WU%sVMY8>`zbo_>7Uo3*vd_|VOqvi&T=H66ixg;|@uH3Pj2 zC3sxs9r8=Gnw$2u>TXh9&Ax!uR|{m?%Xa6!-`LmSyR2n-^ye^)8Z@;y}g#GFa3=9mOu6{1- HoD!MS)A!koe|w+TJrA3D;`5yMFWPtSyqmX_zfeYe z?$HdBRU+(;4FxQ&%@%!(pWGHV26d@;GFZs zd2QCg1cfe z*jg67H%GvAVgbwSv&ZC@bP0l+XkK6BEej literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..911bd0a4b1ab5d4557222eca4520a2669aa45ff0 GIT binary patch literal 452 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s75PZ!4!i{7P^H)b6Q5NX>l{flE~um%gu(WAZsb6!1r_T-Vm7hai52iXO-UvNM1 z>dCaTx|97EOg_!}w9RMH(M2yy@{^M@7XF`7Q2g)n-{*HaY|j7epLgc)+p^u(9g9}H z&^h+FaOI6cnHEJ2DVIQ&3FfnXYwoM}B{OW&VHTKt@=18}ozmFfdP|RduPxgx>p6*G z!PYdp`P|F3W=|2)T>7_SZ`|UoX(mz^-6A%x+P08yI$|gSUWMOtDPlL z;@RK2|LZni{9488pcyKAkVlWB={?7C+x+$CuViiAEqX3(^Kn6+k59KeFS>R6U69w5 zAf9&Tz$F`^XZS6zTzqlE41HbSy>Z72Wvu4*Ej1QVWnMbv?DI-FhTCt&8p2kmzHbaV z74x;4`TXY=#fY_G-`rn)ty1w!`Y7IgbUw$MSzT#ui&p4s&O30R;6=tf1_lNOPgg&e IbxsLQ04|WsE&u=k literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..562dee3bbd56a346ec80570d4d69a7e0de190b1c GIT binary patch literal 455 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s7TPZ!4!i{7P^*XA)finQ*(`9-koN>`o}(?TY9r>4UbO*FZh7cAp%IPgHrt6-1g zwOP=eUd;a-ow~A-i zxg-mjXTrx%7X<-nhkE(+ngoC>1k2r?FBb;lH%soZrmo8%#$dwXser-<~pG> z&p+?E{Wh+oY|}NS1ygp(9^}olk^7zgd-BtNUwgfl7HvHAvZTtkN&DV>o!^tc-d#FH zW9f_UzZZEt+-@+_=Tp?$XNG4V3t!Ees=$%4HEQ0uz$rXag6!f&Tp4n9zEw%N0L zX_jBn=Ut>B)R(X|>Zkn5%P%LS&O9EkBUZ2UAzN#fW!Iv843BsZy0dWZQeC&zAfWyYOv^I+!3S4kYqRie^x-%yyxems1`VM9e?vFPWUx#!x6zY$L~cIN*-yibtoPuRpl7 zl5c%}N@Q5}6^VmdXNwuuUDtlVb~0~!w%LpCzfU}$sr~N+_a>dgpKW>!HI^QUZ91D4 z+;{x(>~mp1zei@@l{v_lw=p6_NyKK~nvAVc=Grl9!@euucx0mQ@%d0`xYxq1X+|?U zv|4W;D%z=IJ-6?0O+8oU_S+tsl00mE=Yp>AY`La4|NU=sbqUov4;IA6?QI@9N0c0fzwi}zcv9VtBXut4Fo z5ra$1(WHe<)i<|X%UJvO`0cl1f{7+l7vGkxHvSQ=6lBQaae2z!yyFQ50p`4?ew=^F z&G7B&r!Tvkw{E-iB9BG=_piVbtGNvJ9@k!ft!*ybeYW`5qwdf4me-;V8MwGyh*~|H z<@D1{FTVc{pF8*5b7O{MGky!+d9dvA%jcUHfB5lQeQVU)tk%yz|CF(W>$p4iJ=&eU z*6^5t3}5KXL-~njvqgK|4kz#XU$HoDy)X;oT)*R&ExWoJ4UawVUc}Mxw~pUo_0><$ z4@f-j`?b|k#PyV5j+yj-<*!w?n{+<^Sbg=CH%pywsKz`)?? L>gTe~DWM4f!kW-; literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..187085684fe6e289fed11151cc318fcb87a63b41 GIT binary patch literal 454 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s6oPZ!4!i{7P^*XJJ!5NX|iJ>mJU5MN;-4mMLEA(<=-5w^zI0uG*&M|d85DBh|O zBfG9^KSP>9e@Z29SBtJ@$*a9vv{SsxLhA1p?=OD8+T-$+|0`1T)?Lqj=PJMwnQkb- z!*#Upu>z0dH3bf)hAm;MAO5yWlwc~bkz+iPVe;#$LTT*vd)}HKYv=#1^A~Yt$XGk` z{PROQr~7(!PPtUK=Vs1@sLSuaXKsx;D*0#1wOt7u0&R-7-%iWhuAL{9^3i*?b`Y{z4X>!lZ?l$VN_bBcAl z-g;S5G`Cl8IyZyY%HM)#9vpkTv3A)xPX6=yQ%*miGEYE12nE(nt6BWnhCl$SFd|p``-5b_gL3?&;PjdrxosuS!c)M7*Ha1 z_~C|-Hx_({1Vnh76c|pt{%W=Fy>Oc%!|}(04n4;o$MY6lFMYdtiqQS2OQv{ezI}E!t@+xlg9#41@9KSjuzbrkRp$l+o|}2wzf{>4US7~4-yg?l zu_S$--967qOG+-><#22N!gJtd2~&=8LpO8EteZ6ZE*pO|cb%5% zp&96P@%?w#iHH0Wt>!-48g({FZuj|+)uA%S7hcVZv~mtK3h=sFGw(U$hTCr$GEAht z$!RP-6T08*gN?sL)7Prp`XzqLokd*5>UYNc>pal6G9yi+>lf3Zf`h7dna55tFfcH9 My85}Sb4q9e0BnxS_y7O^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d8db379db1abe1e1cdb1589c5409c047e722b75e GIT binary patch literal 459 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s7jPZ!4!i{7P^7p{BcAkwx!^PO@@$k`a?g9>Je&P|6O2CQ*NFu!Ta!IL$4x8j0| zwv8Gwvg^9k8CoSxc~?nyHLSZa*K>F48{c>Nw=CcOJYRn9OvfUPA02UbPXDc2UvnX9 z`rM-_Mk`g>9UBT*QkmD9I$X@!8sH^(+>qh-y8XwaPFL70yZ-uW`iJ#vwwgLOSoB%S@bR=ef4s1u=l`}# z3^DqW_VqQ&zL%pGF4wh))t6+5{Pz53`GlP9x1Y1k^=scg_1nqouk|mPsPZ_k+3KNr z)Vb+vRV)u%vsdc!+i%$#43`P5KXZUL&usS3h_oiET(8)`jg6M ztGzW1j~Phyy39NzeCGM*MK^P*&YYhgmuVu!;^?sb_ScfWMQI5=AOE@rvK;tW!Ls0P z-tXdsoEZomH|6}kG&H}`ZO$Pd1GCUDAE>0iPJe3oSCs53Ay OFnGH9xvX-rE~g6|GPIwf7a})5OfW^ z7y0G)U#E@FD>=L;n0GAVP*@$dx+T#=<~YNfGHV7y37$IB6E*kCzXy38GDz8dcajPx zLsYifPaviDLhlPciH8a9jnpy4g-Ti3&W4UCWeeV}`==K3*cEX{M@&@9c@{%)q_5}SQC!CF)G!Yt(a*Sl{x`fNfH-^$l| zOIbP0l+XkKBgn&E literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..be3e900148505aef26d9809bc773d85e9b4d9c97 GIT binary patch literal 457 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s7zPZ!4!i{7P^b@LAeh_ubWt+QgL>fTk$I5}CGl@$+8^f72nVrrc0nqW}Oa$J7K zO4o;7heAJcJ1Fi*Iho6$bHZu)JKspf=uP2YU+;Ndd48v8=B!Whwllg&+R?;+?c^@4s3=9mO Lu6{1-oD!M6{fQ%I2eRXoG>9Ip!Kjw^8-l_=Sv?LSVHF| z>T+%OWX%)Z#Uzq;#YZzY;P#=gvnel~ZY^BZ0ykilE!s@WqEr}j7#~E_AM>7~o@YI=}sJUPMJ;>{jLCWTv6I3`E zqO#Q{cYe@IogAdJv_xKiy7!iAU#e_polPrbvtPPZPlD-4;hC(hi!Q(H*vwY>=lOJZ zhI{eB@ABsx921d>?Me9hZx+*r`|laeJ)V93nc7^n_uS{xi?#n%{5~Sl{Qh^w+KEA3 zn^`WuG|Aq6TYc_YzIJ8?ua&0--#lnLys&zkv1YkB{}ivKlSTWEKmIJ3^YPr0H$Ja+ zd20rGU3^>SI`2?!qKQ=MRIj6narJkD^rnBb>33WF@P&@+K?lvJpI99k4pi-BTM)K- zXYqn5o813iQQ%-oit(fN|i$6DWzNs^9U$$rF(i5+x%d`%h`{`nRfPsO5 N!PC{xWt~$(695q=CsWxU*A3ufmB5 zcJrU#&HKJ)^VN?PEDoBbwoS5kDs0Nm^Qk@l_->}x(xPpLUY1l@HtE{U=xII~Q?9A% zrTOdcK8>Iqx;|=?_k^vsJahX`W7gKL=apNcbluZ6z1X}or|WYtF>Jf7%h2m~crNqO zDYmbkvpEWIcyEYWd#C@(%My=CM;_{nb=wQ>Fcm$k;~E&h!RH{qYP72%0|Nttr>mdK II;Vst05e6zqW}N^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..053bac6cb6c3197e9f5edd42ec2e8605780b148d GIT binary patch literal 452 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s75PZ!4!i{7P^_jVm}5NX}d`I}>A?j;tMqsROrHe5b+?$ohE=>ij3@!`35|U7IXa=k_;sNWKGz$F8lq`DL?j|Pur~6rNpr1 zn$Pm!ha#zygOrwTkw0G8b8S}KdiTW_Pn>_Se9JXU=LQ3w$hBc5Rfu> z>-O8CkzBi5KUT~M(-Q5LtT)q~e%hkXdG*({mprcL95houSI%QUP_>tBLD=e>#S5kw zx&OU*;ImC4$F$Q+|4y8BRxMB@^3Ttjf9g!Tm#vw(@WdgdgQu&X J%Q~loCIEq)&XoWF literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e8b21068dde4535571ed6fed10f6a40bed14b41f GIT binary patch literal 455 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s7TPZ!4!i{7P^*XJDy5II)A{r0^D;a5!*8xsn2R4k4d$#6A4kUZfu?E?dg`zG@h zt`A=oh_b{nh&)?$Ta1N^Y3?rb)YhDnc3114Tkn5ACwgM49GF!5zPl3?)TszPz>^?Tl$A8Y5|&2txVWyn}N z(?{)4p!y4GpUj|m@$7IqlH|5gRIKupMN$w?u|>|`ESF~_QNwR`U+#k*O~@-6;4mE znw$2v?Dw+G7oQd}I%s~iXp+2BV6o-=q$e(qzfKNXS+e=i$BG*JCQZLd!k$H&?k=68 zvGhgRZYBT3?FLf4o4l4L8OG0xnsPc-=J>*k84*^_fd&CyH*4lSXWVc%k8#D-tZye{UrnyFQ#@O3+ckGY{GhFRY#RLOFlE{1mUHyG8qsKRzz#Q@E&KZK;Cxd1!1di7B84$ zy3(Wou?GJn>4Jv*tkPF&^z`1_lNOPgg&e IbxsLQ0EY;|ApigX literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4ecd0618db34cc00bb6422b0a57ac4b148a0f9b7 GIT binary patch literal 453 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s7*PZ!4!i{7P^*XJDy5II)A{igDlSyxRI8z-n*2#H;pacH3d$2`W1oN^5hPRK13 zYh8Uf^dn1%;EB0ASz9A^IV^wY8=1K+W&W%EpXc5$KezV8=Q;mh9E^!se|@%iqJ-Go zqZKxKqSk%Q1}v`420VgF)eM^l+RGF7fIs3d)j=^&h!-cG^Z!816 zW-hMFeo#5jfaUeqTmL-v#`RnD>HaI)`A4`hHu&P10Fke};xPw}mAPI{VPIfj@O1Ta JS?83{1OOIT#&`e# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..cce2ccc6e02b99f5d55353c42f4ed3d038a07e45 GIT binary patch literal 458 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s6&PZ!4!i{7P^_hvCUinQ*J4DwhdVtv(&yD3S~+Hu2Vld>=~F{gV64k_6++<2*- zlbyQ##*N&k+%DSO?o69II2TRLTP1mI%_IlEt@YpUyuV|uJxS%EeU*Xu^wUpYxeBmk zreAznVsy0cu>z0dEd>syh9x0d4}aSwN-%A>{g%OH`|ZD16$)do-}Bb|SUdk~m9K~^ zL&jQ3zV<^qr~7(!PPtUKCqm~!)aAVGE3anVl>9U0npHA~K%3&}r<2k)YvxHU`B=Q! zkm2@u;Vt(%9$Q>~k;k(5?Q_nC!w(s5I2z6MdoLZLC0ew3qwc>SR)WV3*S%h})y+#Y zPpHRj@sf)fF{Nf!^UpJAEPdy0(ER#q)wi2z^-n%Nomyj8zxB|;gaYd(&3kY9bH2IX zj`ivc>Iz$}dP$^=`){4SrdYSw=f5v!IxTE?Y!R|L)H_|nh|NoL_W92?3}LH98J-s1 zoX5O$ish^8Z1bLTIvdPC|F%D5{q@d8Cm#8$O|}=jVY>7zk89NZzLWa`_S`HMWnf@n N@O1TaS?83{1OO;V$T|Q3 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7deeeea9e73d7394016c21492781280ee530241e GIT binary patch literal 454 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s6oPZ!4!i{7P^*XJDy5II)A{igDlRb8cujR`Z9BAb%A+7BrhR5P-)`3Unol*|g; zVHGo7)rN6}QPI`h0F_iGtIgHHVY75^F8}qu=K1%z#oC*69^3CS7N36l=_^+OmdbQP z2_CMaeUBA*9PcS`Fg2`+TmSgCU7`e2frSjikphc9R~3q5uix|5{8&5RqOWri2g6#^ z%P&JLQg1Gq;-UHW`0KAyYfb;w%@120I_IE&=34GHhD3=?H*;Q;?S8b(QSSf0M79I} zlwDtkPg2n|(dtdu^528eLax6-R^{~5O?MXD%qjYBu=%LhT#rdC*Gn%(DK8Z<=Y00L z^4iOibym`I&p*#M4wXB|lV>7zGyS99)6ZX=mIm#NdYEFgQ}&?9@!eA@rr&xOQI^E4}bnVc}cRXsWIr(v(GmC4R6c19Ts2Q@Z3Q& zweQ!~#^;rX1lELU|5o05J9m-BrXSr$ANjMC`BoY`PrNSveEETeKgESv7#J8BJYD@< J);T3K0RZ7!$0Ps% literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0a264cf88187f2e0da91a2ff28be30a50ef738d3 GIT binary patch literal 460 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s7DPZ!4!i{7P^7v^a>inQ&&`Ax9w$}C@x2T27cDi$unF2W*hY8`frnFcr1SlZXT zjS|U|%@eI<444tPd4l$W(8FO9X6nRx%>J@s?oG@8KmQe{xlBv_qnh{j_{R#H--51z zagkqs|8?5*ypqFvf_TRw4u#cWt6LI1WR5euDYIrUl;EioIZ<=JJX=#WQDW209FIvX z3~Nm%pLD6XzQi)f3|V0 z<&IZDUQ>cfcE?U!UJxwN>lV2*sBnfk|9_3?rz_^UFTPk%GHsE ztiF23Ho)uV>N-6Emc|V%-A51EE(u%hI!T4E-fZ^Yt^>WA`e~Y zQN}ZUTE6Sdo+6~V^moPHxW!wSU4MNs$E@4M*F*)&AKV6!k zZ~Bz}^W{B;t#1Cx5wiN449hQb7Br`9jIc3Zas9PUx^#HWAFG6(gWqenT=UR8>fH3Q zWY*T(Z+D*yyZ%~~Vd<669AyQEA6~Gvp2NGgZf?-ZlI@2+R{XJO(zTnz+rGK*?$Rk5 zOJ9`jR`P$i%|NPmlh@Km2J!c8PCYf6_xxgpiOk%k8WI{yWA-Uz?!KkDl5g<8#q7m}d*h1rn-or1 zb=U2W*C>-=PvqFd<|x3hGHE$X~BD{j5}=9@a_9xUH-jn%oqfG2WoSc#Qv;bnz(d0xgF za_2t$@|&d6>Q=5Sk;|XX(05!pf&FCC#vS#r+H-FkF>y|L${2fOs5vX@MGq;@dJ z%=`A+vUQs;J}qK&&@8oYlDv~)vg!Ple@8BVmR=g9x&6?|lp^aU&9L9XS@oOlE}f#W z^hMcjCGW)T26FwEy_O~!+RMdjOh0YW=e+phhLW~L2@9rd`e}2XIbm-cbHM7WZ!816 zW-gv*{=vpyqDiCcP5+gwtsReVJUajUv%TOA)6}y(u3`5Vzui~X^m!^M#uz+Z{an^L HB{Ts5creB@ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..057e14fd53b9c81605e432b325eabd02cd3cabd6 GIT binary patch literal 454 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s6oPZ!4!i{7P^74r`{NVLt*o~Dpioo4Fmp&%i{$;sEQsKL|JQr~bOVY-0K{)N*N z3QBiq)iG+YY}eVz=D5K=zpvc?UTc%iWBaO&-M|0-`=HphXwPPe z{^PAl=RXTfQ^*%^6?C|kVZw2Ef<+(Wju<_LB&)gqvL^i8_kP~eDJ_X7UY00%3NdWC zrZe69;ndX0K}t(YW`F-}8g&?>$`|_sS6}^L(_gmx?F${(gASTcKe0M89QatlvfyUUuIdF- zHiiGasKCLL$XT{~?(d1a?&^6?viS40>aRMJ`LaDTm!5ddeKlg=lC|%PJ~A*cFnGH9 KxvX*w5NY3^tu`&8det&cPL^h6#e+H)%K{`=gnCyv`U=YYW>?D! z++h_XTF0ruGF@jUTWix)Kb>+-?X%O~EMHgtz3zSW`&id$sej!0(+c;-a{t65*uS~lN&Q^%?HW5PVkCF!$cy*h)s z4kjpk5-H=l{L*Cg_19vb|NiWZTHE&6V$1DZ?{p0=HZRTS`OhmE-jrE0%sRWQmfcJ9 z^ObyFoAbhL347yi%dfosR_OS~qw#vv>y=mS$z;gNb4?T!t+5i5xuk4G(@Wu80y@ z#}|Gzo?+FqE2d{z&P?^2uzQR4*=cV=%QN?XpZERuJC{I_Kknz#3U}Ytl5bMbu3hZz&5%W?B5EN_}UH-uJ(IC(7`(r#08@_uu24^YMAO+pJ|f)^%T#(p*~MvEgoB z_s5DD%bObKiy5W_ofY(XJneL<>Y>-w?P04!B_CGpt&=$@k{+I``N_uJt23zUWr@}) zkut8;S696#u@d|I@~PAAyT=M;*qR%c8jF}RFP(Dsd8Hh~^UsnEaqH9HHwK-G`MRp{ zdF3GinSS@*6WkUH28u-f`CIp2oymIHrkM*hUQ4T7KTzuLG4VD70|SGntDnm{r-UW| DNmIlr literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..12678614d2b6e455e8158717cfca8ed0da804452 GIT binary patch literal 455 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s7TPZ!4!i{7P^*XJDy5II&q{fut$-W*R~ahGO^U=4?G+^{0;>+&bnOT z?W-SgIwa}^Dcw*3{!%h3Z8jz?D580vE%Gn>(5`w+Ioj;`Q?{?IhI-U@gMnkuxxtJqA82+ zzwchd%{{|MZRPvlJJxX@I35{TDp$GE?qb%~HP(+0omdyBnfh7sMA>fE1s5}J6fc-! znx0uR1){!7iMX!&O z^4qfa>`!c36Sm@FQ|INkd$>Wvjbg65X7^4BvQdp# z8+Nq9W?hI`;ePvTUMthMmlY;T+_Eh_Tgj^&wKgoZB~Zk6d%~ovrtY!D(Xn2gL0u

c1$XlvTktg>Ja9>}YgR+hsb8OM_!|yCWN=u2ee-t*&D3>O zp$9(OByw!Ky|&h4@x=}kU)_IId;bYH$_7WC37GO&TK@9Bzf619oM&KQVDNPHb6Mw< G&;$S|Daf(_ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..382a4b6462fa7aa8b86c59afa29c91f92d5cfa98 GIT binary patch literal 452 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s75PZ!4!i{7P^H+CIz5OF=<^0&oDRE()9DOsIk)6rWuBX36h;5~GzNnWAs&_Bm0 z?cF71EB`QDJeB4!Q}K3$q)GJIoI4u3H*EKsvFG=>+I*!?HqY&=Ht}D7{q>nb*P=z6 zCHUHxCY}E*Fl|AGfUBTG-1_UBhbLI{F?w7Uap-Yd9M4;H|NGtDQzjYk+8Fj3n{TE}-na9S|K!A;gWqenT=UR88r$@< zW?uR3yR*-QO+U@bu=L7fjmZ*RJ9z^Dk-R58=k>;EQL1M82}_QaTuOBeABDfq{X+)78&q Iol`;+0MK*H;Q#;t literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..453481302f5279a9f208bf6dd78e9dc01e6f33d2 GIT binary patch literal 458 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s6&PZ!4!i{7P^4YLn9h#apMw-Sjd_TJ3Ga`dS0gk3v#il~dTFN|McvBScmYwjPO z$kM{o&!(N+yI^uNdn-5JHC0yM_9FM3DPq6o>y>~1_x}66-5n;rKl|UEc~oN;FT>(E zp;T;doWA%Q3%)}FDZEVz3?AB3x%RymZc}9V{a4Q6%kRJOyg}DX-)^5GbpQL!yzMT5 zEDhIYolH@h6TQ__b7Ih~)2pv?tu?)yH{EUV#PaAh2f!(6*YTVg!g#!y_wW} zR&S|`rt9*{f{|R-tq%)kOgo+0{qx%ohm|3R3T0k>-L=$M#FBaGl(pwS+c22T=4H5= zb#))}(kYd%rnAj^&gr}%M(=I^l^nCqMJFDePupxSc*8LDERSng{Ps2bYLW{ltYKha OVDNPHb6Mw<&;$V6X2+la literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..52d0615ead4d4a25fccad377ccac98142bcc1e72 GIT binary patch literal 491 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s8to-U3d7QIU+Z}g516ggJ!zp10yTaGJIOQcDm$+;`kOEo1!!2Il!PiEKo7=MeK z1jpXpWFfhoM{J_|^z2xfM+;aMyPe%?7he;~uH8~34 zVEWj1iN}oY4j=h>v0WWL=I4tl$~0GPQD3!1U3bk+C%gIPOZpzqSeN)|T9-Z7=3rs5 z7XCo9ZQ2ZTs_GaMa(?7$Tr6gZk$HQ`xPs}xd+D>swgqQA9y_upGysoLwe z{b8Xf!@X*;ZdQMP5#!lst)@>6Vh9Npjp8^kdGWT+B~z}H%1#NgcwTT$_UacVzFpl{ zvyP^1cFgXbVpMz1&_Pr5)FvAnF$UK_mlFvF9Lr@oj+cLPimH6i_^!mik|NSxDdt;{CEJum{<2`PRBjz~$ zs!KfHxYaDmTk%@dk|{jxhyODNWna5x@!ICR;ju5b>{*s{weG&V?tQr1U&aYbmb{w0 TVOKl@0|SGntDnm{r-UW|K^x5^ literal 0 HcmV?d00001 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