diff --git a/CHANGELOG.md b/CHANGELOG.md index 1312855d5..0fb346400 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,12 @@ # Changelog ## [Unreleased] +### Major changes +- Added harvest baskets to pick fruit from fruit trees and berry bushes (#1338) @Redeix ### Minor changes - Added ice soup @Pyritie +- Gave plants tag to bushes so they can be used for other things (#1338) @Redeix +- Allowed elytra's to be repaired regardless of damage (#1338) @Redeix ### Bug fixes - Fixed yeast food processor conflict (#1310) @Redeix - Fixed seed oil voiding in barrels (#1310) @Redeix @@ -22,6 +26,8 @@ - Fixed create + greate configs (#1300) @HiddenOwlllll1 @Pyritie - Fixed blue steel diving suit looking like netherite (#1293) @Pyritie - Fixed anthracite not working with blaze burners @Pyritie +- Fixed baked potato recipe missing from oven (#1338) @Redeix +- Fixed sea water barrel recipes (#1338) @Redeix ## [0.10.0] - 13.07.2025 - [!WARNING] If you're upgrading your world from 0.9 to 0.10, please read the upgrade guide [here](https://github.com/TerraFirmaGreg-Team/Modpack-Modern/wiki/%5BEN%5D-Upgrading-from-0.9-to-0.10). We do not recommend using Alpha versions for progression, but if you do, please make frequent backups! diff --git a/config/ftbquests/quests/chapters/tips__tools.snbt b/config/ftbquests/quests/chapters/tips__tools.snbt index ea8dc2477..8c74f3163 100644 --- a/config/ftbquests/quests/chapters/tips__tools.snbt +++ b/config/ftbquests/quests/chapters/tips__tools.snbt @@ -2493,6 +2493,27 @@ x: 0.0d y: 5.0d } + { + dependencies: ["150B7C5CD152E1BA"] + description: ["{quests.tfg_tips.tools_tips.harvest_basket.desc}"] + id: "5B0A9757F1EF1B9E" + subtitle: "{quests.tfg_tips.tools_tips.harvest_basket.subtitle}" + tasks: [{ + id: "15C2F940F5A576D5" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "item_tag(tfg:harvester)" + } + } + title: "{quests.tfg_tips.tools_tips.harvest_basket.task}" + type: "item" + }] + title: "{quests.tfg_tips.tools_tips.harvest_basket.title}" + x: -6.0d + y: 10.0d + } ] subtitle: ["{quests.tfg_tips.tools_tips.subtitle}"] title: "Tips - Tools" diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/harvest_baskets.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/harvest_baskets.json new file mode 100644 index 000000000..831bdd943 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/harvest_baskets.json @@ -0,0 +1,24 @@ +{ + "name": "Harvest Baskets", + "icon": "tfg:harvest_basket", + "category": "tfc:mechanics", + "read_by_default": true, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Harvest Baskets", + "item": { "tag": "tfg:harvester" }, + "text": "Made for those with a short stature--$(thing)Harvest Baskets$() are just the tool needed for plucking trees and bushes of fruit.$(br)To use a harvest basket; right click on a fruit tree or fruit bush and all blocks within a $(thing)7-block radius$() will be picked." + }, + { + "type": "patchouli:text", + "text": "A regular harvest basket has a durability of $(thing)128$(), while the aluminium harvest basket does not take any damage on use. Harvest baskets can also be used by things like the $(thing)Create Deployer$() to automate harvesting. The baskets will use durability in the process." + }, + { + "type": "patchouli:crafting", + "title": "Harvest Basket", + "recipe": "tfg:shaped/harvest_basket_from_papyrus", + "text": "A basic $(item)Harvest Basket$() can be made of soaked papyrus or hardwood." + } + ] +} diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index cbfae6f30..53bf9952c 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -440,6 +440,8 @@ "item.tfg.compressed_heliox_3_bucket": "Heliox-3 Bucket", "item.tfg.compressed_trimix_bucket": "50/30/20 Trimix Bucket", "item.tfg.compressed_trimix_3_bucket": "50/30/20 Trimix-3 Bucket", + "item.tfg.harvest_basket": "Harvest Basket", + "item.tfg.aluminium_harvest_basket": "Aluminium Harvest Basket", "material.tfg.latex": "Latex", "material.tfg.vulcanized_latex": "Vulcanized Latex", "material.tfg.fluix": "Fluix", @@ -2994,5 +2996,9 @@ "quests.tfg_tips.tools_tips.markings.task": "Any #ags_modernmarkings:markings", "quests.tfg_tips.tools_tips.cryodesiccation.title": "Cryodesiccation", "quests.tfg_tips.tools_tips.cryodesiccation.subtitle": "The factory has no time for \"flavor\".", - "quests.tfg_tips.tools_tips.cryodesiccation.desc": "&l&bCryodesiccation&r&r is the process of dehydrating food at very low temperatures. Food with the trait \"Cryodesiccated\" lasts considerably longer than other food preservation methods." + "quests.tfg_tips.tools_tips.cryodesiccation.desc": "&l&bCryodesiccation&r&r is the process of dehydrating food at very low temperatures. Food with the trait \"Cryodesiccated\" lasts considerably longer than other food preservation methods.", + "quests.tfg_tips.tools_tips.harvest_basket.title": "Harvest Baskets", + "quests.tfg_tips.tools_tips.harvest_basket.subtitle": "For competitive pie bakers.", + "quests.tfg_tips.tools_tips.harvest_basket.task": "Any #tfg:harvester", + "quests.tfg_tips.tools_tips.harvest_basket.desc": "&l&2Harvest Baskets&r&r are a new tool made just for &5TFG&r! These baskets can be used to harvest whole trees and bushes of fruit in one right-click! A regular &6Harvest Basket&r has a base durability of &n128&r. But an &3Aluminium Harvest Basket&r takes no damage on use." } \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/aluminium_harvest_basket.json b/kubejs/assets/tfg/models/item/aluminium_harvest_basket.json new file mode 100644 index 000000000..81f801ada --- /dev/null +++ b/kubejs/assets/tfg/models/item/aluminium_harvest_basket.json @@ -0,0 +1,212 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfg:item/aluminium_harvest_basket", + "particle": "tfg:item/aluminium_harvest_basket" + }, + "elements": [ + { + "from": [3, 0, 1], + "to": [4, 6, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 3]}, + "faces": { + "north": {"uv": [0.5, 3, 1, 6], "texture": "#0"}, + "east": {"uv": [7, 9, 14, 12], "texture": "#0"}, + "south": {"uv": [0.5, 3, 1, 6], "texture": "#0"}, + "west": {"uv": [0, 0, 7, 3], "texture": "#0"}, + "up": {"uv": [0.5, 10, 0, 3], "texture": "#0"}, + "down": {"uv": [0.5, 3, 0, 10], "texture": "#0"} + } + }, + { + "from": [12, 0, 1], + "to": [13, 6, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 3]}, + "faces": { + "north": {"uv": [0.5, 3, 1, 6], "texture": "#0"}, + "east": {"uv": [0, 0, 7, 3], "texture": "#0"}, + "south": {"uv": [0.5, 3, 1, 6], "texture": "#0"}, + "west": {"uv": [7, 9, 14, 12], "texture": "#0"}, + "up": {"uv": [0.5, 10, 0, 3], "texture": "#0"}, + "down": {"uv": [0.5, 3, 0, 10], "texture": "#0"} + } + }, + { + "from": [4, 0, 2], + "to": [12, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 0, 2]}, + "faces": { + "north": {"uv": [3, 3.5, 7, 4], "texture": "#0"}, + "east": {"uv": [1, 3, 7, 3.5], "texture": "#0"}, + "south": {"uv": [3, 3.5, 7, 4], "texture": "#0"}, + "west": {"uv": [1, 3, 7, 3.5], "texture": "#0"}, + "up": {"uv": [7, 0, 11, 6], "texture": "#0"}, + "down": {"uv": [7, 0, 11, 6], "texture": "#0"} + } + }, + { + "from": [4, 0, 1], + "to": [12, 6, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 0, 1]}, + "faces": { + "north": {"uv": [7, 6, 11, 9], "texture": "#0"}, + "east": {"uv": [1, 3.5, 1.5, 6.5], "texture": "#0"}, + "south": {"uv": [11, 6, 15, 9], "texture": "#0"}, + "west": {"uv": [1, 3.5, 1.5, 6.5], "texture": "#0"}, + "up": {"uv": [3, 4, 7, 4.5], "texture": "#0"}, + "down": {"uv": [3, 4, 7, 4.5], "texture": "#0"} + } + }, + { + "from": [4, 0, 14], + "to": [12, 6, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 0, 14]}, + "faces": { + "north": {"uv": [11, 6, 15, 9], "texture": "#0"}, + "east": {"uv": [1, 3.5, 1.5, 6.5], "texture": "#0"}, + "south": {"uv": [7, 6, 11, 9], "texture": "#0"}, + "west": {"uv": [1, 3.5, 1.5, 6.5], "texture": "#0"}, + "up": {"uv": [3, 4, 7, 4.5], "texture": "#0"}, + "down": {"uv": [3, 4, 7, 4.5], "texture": "#0"} + } + }, + { + "from": [2.9, 5, 4], + "to": [2.9, 12, 5], + "rotation": {"angle": 22.5, "axis": "x", "origin": [3, 4, 4]}, + "faces": { + "north": {"uv": [0, 0, 0, 3.5], "texture": "#0"}, + "east": {"uv": [1.5, 7, 2, 10.5], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 3.5], "texture": "#0"}, + "west": {"uv": [1.5, 3.5, 2, 7], "texture": "#0"}, + "up": {"uv": [0, 0, 0, 0.5], "texture": "#0"}, + "down": {"uv": [0, 0, 0, 0.5], "texture": "#0"} + } + }, + { + "from": [13.1, 5, 4], + "to": [13.1, 12, 5], + "rotation": {"angle": 22.5, "axis": "x", "origin": [13.2, 4, 4]}, + "faces": { + "north": {"uv": [0, 0, 0, 3.5], "texture": "#0"}, + "east": {"uv": [1.5, 3.5, 2, 7], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 3.5], "texture": "#0"}, + "west": {"uv": [1.5, 7, 2, 10.5], "texture": "#0"}, + "up": {"uv": [0, 0, 0, 0.5], "texture": "#0"}, + "down": {"uv": [0, 0, 0, 0.5], "texture": "#0"} + } + }, + { + "from": [2.9, 11.39004, 7.06147], + "to": [13.1, 11.39004, 8.06147], + "rotation": {"angle": 22.5, "axis": "x", "origin": [2.9, 11.39004, 7.06147]}, + "faces": { + "north": {"uv": [0, 0, 5.1, 0], "texture": "#0"}, + "east": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, + "south": {"uv": [0, 0, 5.1, 0], "texture": "#0"}, + "west": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, + "up": {"uv": [2, 4.5, 7, 5], "texture": "#0"}, + "down": {"uv": [2, 5, 7, 5.5], "texture": "#0"} + } + }, + { + "from": [2.9, 5, 11], + "to": [2.9, 12, 12], + "rotation": {"angle": -22.5, "axis": "x", "origin": [3, 4, 12]}, + "faces": { + "north": {"uv": [0, 0, 0, 3.5], "texture": "#0"}, + "east": {"uv": [2, 7, 1.5, 10.5], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 3.5], "texture": "#0"}, + "west": {"uv": [2, 3.5, 1.5, 7], "texture": "#0"}, + "up": {"uv": [0, 0.5, 0, 0], "texture": "#0"}, + "down": {"uv": [0, 0.5, 0, 0], "texture": "#0"} + } + }, + { + "from": [13.1, 5, 11], + "to": [13.1, 12, 12], + "rotation": {"angle": -22.5, "axis": "x", "origin": [13.2, 4, 12]}, + "faces": { + "north": {"uv": [0, 0, 0, 3.5], "texture": "#0"}, + "east": {"uv": [2, 3.5, 1.5, 7], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 3.5], "texture": "#0"}, + "west": {"uv": [2, 7, 1.5, 10.5], "texture": "#0"}, + "up": {"uv": [0, 0.5, 0, 0], "texture": "#0"}, + "down": {"uv": [0, 0.5, 0, 0], "texture": "#0"} + } + }, + { + "from": [2.9, 11.39004, 7.93853], + "to": [13.1, 11.39004, 8.93853], + "rotation": {"angle": -22.5, "axis": "x", "origin": [2.9, 11.39004, 8.93853]}, + "faces": { + "north": {"uv": [5.1, 0, 0, 0], "texture": "#0"}, + "east": {"uv": [0.5, 0, 0, 0], "texture": "#0"}, + "south": {"uv": [5.1, 0, 0, 0], "texture": "#0"}, + "west": {"uv": [0.5, 0, 0, 0], "texture": "#0"}, + "up": {"uv": [2, 5, 7, 4.5], "texture": "#0"}, + "down": {"uv": [2, 5.5, 7, 5], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [74, 0, 0], + "translation": [0, -2.25, -1.5], + "scale": [0.75, 0.75, 0.76] + }, + "thirdperson_lefthand": { + "rotation": [74, 0, 0], + "translation": [0, -2.25, -1.5], + "scale": [0.75, 0.75, 0.76] + }, + "firstperson_righthand": { + "rotation": [32, 0, 12], + "translation": [0, 1.25, 4] + }, + "firstperson_lefthand": { + "rotation": [32, 0, 12], + "translation": [0, 1.25, 4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, -53, 0], + "translation": [0, 1.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "rotation": [-170.75, 0, 0], + "translation": [0, -1.75, 0], + "scale": [1.6, 1.5, 1.4] + }, + "fixed": { + "rotation": [0, -90, 0], + "scale": [0.5, 0.5, 0.5] + } + }, + "groups": [ + { + "name": "basket", + "origin": [7, 0, 3], + "color": 0, + "children": [0, 1, 2, 3, 4] + }, + { + "name": "handle1", + "origin": [3, 4, 4], + "color": 0, + "children": [5, 6, 7] + }, + { + "name": "handle2", + "origin": [3, 4, 4], + "color": 0, + "children": [8, 9, 10] + } + ] +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/harvest_basket.json b/kubejs/assets/tfg/models/item/harvest_basket.json new file mode 100644 index 000000000..25e299bf5 --- /dev/null +++ b/kubejs/assets/tfg/models/item/harvest_basket.json @@ -0,0 +1,212 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfg:item/harvest_basket", + "particle": "tfg:item/harvest_basket" + }, + "elements": [ + { + "from": [3, 0, 1], + "to": [4, 6, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 3]}, + "faces": { + "north": {"uv": [0.5, 3, 1, 6], "texture": "#0"}, + "east": {"uv": [7, 9, 14, 12], "texture": "#0"}, + "south": {"uv": [0.5, 3, 1, 6], "texture": "#0"}, + "west": {"uv": [0, 0, 7, 3], "texture": "#0"}, + "up": {"uv": [0.5, 10, 0, 3], "texture": "#0"}, + "down": {"uv": [0.5, 3, 0, 10], "texture": "#0"} + } + }, + { + "from": [12, 0, 1], + "to": [13, 6, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 3]}, + "faces": { + "north": {"uv": [0.5, 3, 1, 6], "texture": "#0"}, + "east": {"uv": [0, 0, 7, 3], "texture": "#0"}, + "south": {"uv": [0.5, 3, 1, 6], "texture": "#0"}, + "west": {"uv": [7, 9, 14, 12], "texture": "#0"}, + "up": {"uv": [0.5, 10, 0, 3], "texture": "#0"}, + "down": {"uv": [0.5, 3, 0, 10], "texture": "#0"} + } + }, + { + "from": [4, 0, 2], + "to": [12, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 0, 2]}, + "faces": { + "north": {"uv": [3, 3.5, 7, 4], "texture": "#0"}, + "east": {"uv": [1, 3, 7, 3.5], "texture": "#0"}, + "south": {"uv": [3, 3.5, 7, 4], "texture": "#0"}, + "west": {"uv": [1, 3, 7, 3.5], "texture": "#0"}, + "up": {"uv": [7, 0, 11, 6], "texture": "#0"}, + "down": {"uv": [7, 0, 11, 6], "texture": "#0"} + } + }, + { + "from": [4, 0, 1], + "to": [12, 6, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 0, 1]}, + "faces": { + "north": {"uv": [7, 6, 11, 9], "texture": "#0"}, + "east": {"uv": [1, 3.5, 1.5, 6.5], "texture": "#0"}, + "south": {"uv": [11, 6, 15, 9], "texture": "#0"}, + "west": {"uv": [1, 3.5, 1.5, 6.5], "texture": "#0"}, + "up": {"uv": [3, 4, 7, 4.5], "texture": "#0"}, + "down": {"uv": [3, 4, 7, 4.5], "texture": "#0"} + } + }, + { + "from": [4, 0, 14], + "to": [12, 6, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 0, 14]}, + "faces": { + "north": {"uv": [11, 6, 15, 9], "texture": "#0"}, + "east": {"uv": [1, 3.5, 1.5, 6.5], "texture": "#0"}, + "south": {"uv": [7, 6, 11, 9], "texture": "#0"}, + "west": {"uv": [1, 3.5, 1.5, 6.5], "texture": "#0"}, + "up": {"uv": [3, 4, 7, 4.5], "texture": "#0"}, + "down": {"uv": [3, 4, 7, 4.5], "texture": "#0"} + } + }, + { + "from": [2.9, 5, 4], + "to": [2.9, 12, 5], + "rotation": {"angle": 22.5, "axis": "x", "origin": [3, 4, 4]}, + "faces": { + "north": {"uv": [0, 0, 0, 3.5], "texture": "#0"}, + "east": {"uv": [1.5, 7, 2, 10.5], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 3.5], "texture": "#0"}, + "west": {"uv": [1.5, 3.5, 2, 7], "texture": "#0"}, + "up": {"uv": [0, 0, 0, 0.5], "texture": "#0"}, + "down": {"uv": [0, 0, 0, 0.5], "texture": "#0"} + } + }, + { + "from": [13.1, 5, 4], + "to": [13.1, 12, 5], + "rotation": {"angle": 22.5, "axis": "x", "origin": [13.2, 4, 4]}, + "faces": { + "north": {"uv": [0, 0, 0, 3.5], "texture": "#0"}, + "east": {"uv": [1.5, 3.5, 2, 7], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 3.5], "texture": "#0"}, + "west": {"uv": [1.5, 7, 2, 10.5], "texture": "#0"}, + "up": {"uv": [0, 0, 0, 0.5], "texture": "#0"}, + "down": {"uv": [0, 0, 0, 0.5], "texture": "#0"} + } + }, + { + "from": [2.9, 11.39004, 7.06147], + "to": [13.1, 11.39004, 8.06147], + "rotation": {"angle": 22.5, "axis": "x", "origin": [2.9, 11.39004, 7.06147]}, + "faces": { + "north": {"uv": [0, 0, 5.1, 0], "texture": "#0"}, + "east": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, + "south": {"uv": [0, 0, 5.1, 0], "texture": "#0"}, + "west": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, + "up": {"uv": [2, 4.5, 7, 5], "texture": "#0"}, + "down": {"uv": [2, 5, 7, 5.5], "texture": "#0"} + } + }, + { + "from": [2.9, 5, 11], + "to": [2.9, 12, 12], + "rotation": {"angle": -22.5, "axis": "x", "origin": [3, 4, 12]}, + "faces": { + "north": {"uv": [0, 0, 0, 3.5], "texture": "#0"}, + "east": {"uv": [2, 7, 1.5, 10.5], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 3.5], "texture": "#0"}, + "west": {"uv": [2, 3.5, 1.5, 7], "texture": "#0"}, + "up": {"uv": [0, 0.5, 0, 0], "texture": "#0"}, + "down": {"uv": [0, 0.5, 0, 0], "texture": "#0"} + } + }, + { + "from": [13.1, 5, 11], + "to": [13.1, 12, 12], + "rotation": {"angle": -22.5, "axis": "x", "origin": [13.2, 4, 12]}, + "faces": { + "north": {"uv": [0, 0, 0, 3.5], "texture": "#0"}, + "east": {"uv": [2, 3.5, 1.5, 7], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 3.5], "texture": "#0"}, + "west": {"uv": [2, 7, 1.5, 10.5], "texture": "#0"}, + "up": {"uv": [0, 0.5, 0, 0], "texture": "#0"}, + "down": {"uv": [0, 0.5, 0, 0], "texture": "#0"} + } + }, + { + "from": [2.9, 11.39004, 7.93853], + "to": [13.1, 11.39004, 8.93853], + "rotation": {"angle": -22.5, "axis": "x", "origin": [2.9, 11.39004, 8.93853]}, + "faces": { + "north": {"uv": [5.1, 0, 0, 0], "texture": "#0"}, + "east": {"uv": [0.5, 0, 0, 0], "texture": "#0"}, + "south": {"uv": [5.1, 0, 0, 0], "texture": "#0"}, + "west": {"uv": [0.5, 0, 0, 0], "texture": "#0"}, + "up": {"uv": [2, 5, 7, 4.5], "texture": "#0"}, + "down": {"uv": [2, 5.5, 7, 5], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [74, 0, 0], + "translation": [0, -2.25, -1.5], + "scale": [0.75, 0.75, 0.76] + }, + "thirdperson_lefthand": { + "rotation": [74, 0, 0], + "translation": [0, -2.25, -1.5], + "scale": [0.75, 0.75, 0.76] + }, + "firstperson_righthand": { + "rotation": [32, 0, 12], + "translation": [0, 1.25, 4] + }, + "firstperson_lefthand": { + "rotation": [32, 0, 12], + "translation": [0, 1.25, 4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, -53, 0], + "translation": [0, 1.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "rotation": [-170.75, 0, 0], + "translation": [0, -1.75, 0], + "scale": [1.6, 1.5, 1.4] + }, + "fixed": { + "rotation": [0, -90, 0], + "scale": [0.5, 0.5, 0.5] + } + }, + "groups": [ + { + "name": "basket", + "origin": [7, 0, 3], + "color": 0, + "children": [0, 1, 2, 3, 4] + }, + { + "name": "handle1", + "origin": [3, 4, 4], + "color": 0, + "children": [5, 6, 7] + }, + { + "name": "handle2", + "origin": [3, 4, 4], + "color": 0, + "children": [8, 9, 10] + } + ] +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/item/aluminium_harvest_basket.png b/kubejs/assets/tfg/textures/item/aluminium_harvest_basket.png new file mode 100644 index 000000000..71b5747c9 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/aluminium_harvest_basket.png differ diff --git a/kubejs/assets/tfg/textures/item/harvest_basket.png b/kubejs/assets/tfg/textures/item/harvest_basket.png new file mode 100644 index 000000000..befb0dcc2 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/harvest_basket.png differ diff --git a/kubejs/server_scripts/minecraft/recipes.js b/kubejs/server_scripts/minecraft/recipes.js index 6a0966b02..b748e6208 100644 --- a/kubejs/server_scripts/minecraft/recipes.js +++ b/kubejs/server_scripts/minecraft/recipes.js @@ -814,10 +814,10 @@ const registerMinecraftRecipes = (event) => { .EUt(420) event.recipes.gtceu.assembler('tfg:minecraft/elytra_repairing') - .itemInputs('6x tfg:polycaprolactam_fabric', Item.of('minecraft:elytra', '{Damage:2045}').strongNBT()) + .itemInputs('6x tfg:polycaprolactam_fabric', 'minecraft:elytra') .circuit(4) .itemOutputs(Item.of('minecraft:elytra', "{Damage:0}")) - .duration(1600) + .duration(800) .EUt(120) event.recipes.gtceu.arc_furnace('tfg:minecraft/arc_furnace/recycling/elytra') diff --git a/kubejs/server_scripts/tfc/recipes.js b/kubejs/server_scripts/tfc/recipes.js index 844b4069d..8e3fafd01 100644 --- a/kubejs/server_scripts/tfc/recipes.js +++ b/kubejs/server_scripts/tfc/recipes.js @@ -295,4 +295,11 @@ const registerTFCRecipes = (event) => { ]).id('tfc:shapeless/jar_lid') event.replaceInput({ mod: 'tfc' }, 'minecraft:sugar', '#tfg:sugars') + + // Sea Water + event.recipes.tfc.barrel_instant() + .inputItem(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Salt, 1)) + .inputFluid(Fluid.of('minecraft:water', 1000)) + .outputFluid(Fluid.of('tfc:salt_water', 1000)) + .id('tfg:barrel/water_to_salt_water') } diff --git a/kubejs/server_scripts/tfc/recipes.removes.js b/kubejs/server_scripts/tfc/recipes.removes.js index 01e0ebc4f..d3bebb621 100644 --- a/kubejs/server_scripts/tfc/recipes.removes.js +++ b/kubejs/server_scripts/tfc/recipes.removes.js @@ -128,6 +128,7 @@ function removeTFCRecipes(event) { event.remove({ id: `tfc:crafting/windmill_blade` }) event.remove({ id: `tfc:barrel/dye/bleach_windmill_blades` }) + event.remove({ id: 'tfc:barrel/fresh_to_salt_water' }) global.MINECRAFT_DYE_NAMES.forEach(dye => { event.remove({ id: `tfc:barrel/dye/${dye}_windmill_blade` }) diff --git a/kubejs/server_scripts/tfc/tags.js b/kubejs/server_scripts/tfc/tags.js index 0f8165dbc..5729af43d 100644 --- a/kubejs/server_scripts/tfc/tags.js +++ b/kubejs/server_scripts/tfc/tags.js @@ -64,6 +64,9 @@ const registerTFCItemTags = (event) => { event.add('tfg:ferments_to_rennet', 'firmalife:food/fig') event.add('tfg:ferments_to_rennet', 'tfc:plant/ivy') + //Plants + event.add('tfc:plants', '#tfc:wild_fruits') + // Для складывания event.add('tfc:pileable_ingots', '#forge:ingots') event.add('tfc:pileable_sheets', '#forge:plates') diff --git a/kubejs/server_scripts/tfg/data.js b/kubejs/server_scripts/tfg/data.js index ece0ec8e7..33d264fe8 100644 --- a/kubejs/server_scripts/tfg/data.js +++ b/kubejs/server_scripts/tfg/data.js @@ -42,6 +42,11 @@ const registerTFGItemSize = (event) => { 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: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') diff --git a/kubejs/server_scripts/tfg/recipes.food.js b/kubejs/server_scripts/tfg/recipes.food.js index 103c57f38..1b377381f 100644 --- a/kubejs/server_scripts/tfg/recipes.food.js +++ b/kubejs/server_scripts/tfg/recipes.food.js @@ -459,6 +459,8 @@ function registerTFGFoodRecipes(event) { cookingRecipe("corn_tortilla", "firmalife:food/masa", "firmalife:food/corn_tortilla") + cookingRecipe("baked_potato", "tfc:food/potato", "tfc:food/baked_potato") + cookingRecipe("boiled_egg", "#firmalife:foods/raw_eggs", "tfc:food/boiled_egg") .inputFluids(JsonIO.of({ amount: 200, value: { tag: "tfg:clean_water" }})) diff --git a/kubejs/server_scripts/tfg/recipes.miscellaneous.js b/kubejs/server_scripts/tfg/recipes.miscellaneous.js index 3939f2aa6..2e5ba2829 100644 --- a/kubejs/server_scripts/tfg/recipes.miscellaneous.js +++ b/kubejs/server_scripts/tfg/recipes.miscellaneous.js @@ -745,4 +745,64 @@ function registerTFGMiscellaneousRecipes(event) { .itemOutputs('gtceu:quantum_eye') .duration(24 * 20) .EUt(480) + + // Harvest Baskets + + event.shaped('tfg:harvest_basket', [ + 'BDB', + 'ACA', + 'AAA' + ], { + A: 'tfg:soaked_hardwood_strip', + B: ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 1), + C: 'tfc:glue', + D: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1), + }).id('tfg:shaped/harvest_basket_from_wood') + + event.recipes.gtceu.assembler('tfg:assembler/harvest_basket_from_wood') + .itemInputs( + '5x tfg:soaked_hardwood_strip', + ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 2), + ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1) + ) + .inputFluids(Fluid.of('gtceu:glue', 50)) + .itemOutputs('tfg:harvest_basket') + .duration(100) + .EUt(GTValues.VA[GTValues.ULV]) + + event.shaped('tfg:harvest_basket', [ + 'BDB', + 'ACA', + 'AAA' + ], { + A: 'tfc:soaked_papyrus_strip', + B: ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 1), + C: 'tfc:glue', + D: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1), + }).id('tfg:shaped/harvest_basket_from_papyrus') + + event.recipes.gtceu.assembler('tfg:assembler/harvest_basket_from_papyrus') + .itemInputs( + '5x tfc:soaked_papyrus_strip', + ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 2), + ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1) + ) + .inputFluids(Fluid.of('gtceu:glue', 50)) + .itemOutputs('tfg:harvest_basket') + .duration(100) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.assembler('tfg:assembler/aluminium_harvest_basket') + .itemInputs( + ChemicalHelper.get(TagPrefix.plate, GTMaterials.Aluminium, 3), + ChemicalHelper.get(TagPrefix.foil, GTMaterials.Aluminium, 2), + ChemicalHelper.get(TagPrefix.bolt, GTMaterials.Steel, 2), + ChemicalHelper.get(TagPrefix.rodLong, + GTMaterials.Aluminium, 1) + ) + .inputFluids(Fluid.of('gtceu:cobalt_brass', 144)) + .itemOutputs('tfg:aluminium_harvest_basket') + .duration(200) + .circuit(4) + .EUt(GTValues.VA[GTValues.LV]) } diff --git a/kubejs/server_scripts/tfg/recipes.paper.js b/kubejs/server_scripts/tfg/recipes.paper.js index eb6d1c28e..5f02457f8 100644 --- a/kubejs/server_scripts/tfg/recipes.paper.js +++ b/kubejs/server_scripts/tfg/recipes.paper.js @@ -85,6 +85,12 @@ function registerTFGPapermakingRecipes(event) { .inputs('tfg:hardwood_strip', TFC.fluidStackIngredient('#tfc:water', 100)) .outputItem('tfg:soaked_hardwood_strip') .id('tfg:barrel/soak_hardwood_strip') + event.recipes.gtceu.chemical_bath('tfg:chemical_bath/soak_hardwood_strips') + .inputFluids( JsonIO.of({ amount: 100, value: { tag: "tfc:any_water" }})) + .itemInputs('tfg:hardwood_strip') + .itemOutputs('tfg:soaked_hardwood_strip') + .duration(200) + .EUt(GTValues.VA[GTValues.ULV]) //Create Hardwood Dust using Quern and Millstone/Crushing Wheels event.recipes.gtceu.macerator('tfg:macerator/macerate_hardwood_strips') diff --git a/kubejs/server_scripts/tfg/recipes.recycling.js b/kubejs/server_scripts/tfg/recipes.recycling.js index 6b8c9251f..adac77f11 100644 --- a/kubejs/server_scripts/tfg/recipes.recycling.js +++ b/kubejs/server_scripts/tfg/recipes.recycling.js @@ -376,4 +376,27 @@ function registerTFGRecyclingRecipes(event) { .duration(GTMaterials.Titanium.getMass() * 6) .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) .EUt(GTValues.VA[GTValues.LV]) + + //Aluminium Harvest Basket + event.recipes.gtceu.macerator('tfg:macerator/recycling/aluminium_harvest_basket') + .itemInputs('tfg:aluminium_harvest_basket') + .itemOutputs( + ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 2), + ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Steel, 1), + ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.CobaltBrass, 2) + ) + .duration(GTMaterials.Aluminium.getMass() * 2) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/aluminium_harvest_basket') + .itemInputs('tfg:aluminium_harvest_basket') + .itemOutputs( + ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 2), + ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Steel, 1), + ChemicalHelper.get(TagPrefix.nugget, GTMaterials.CobaltBrass, 2) + ) + .duration(GTMaterials.Aluminium.getMass() * 2) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/tags.js b/kubejs/server_scripts/tfg/tags.js index 9c9284147..8a4c12254 100644 --- a/kubejs/server_scripts/tfg/tags.js +++ b/kubejs/server_scripts/tfg/tags.js @@ -29,7 +29,7 @@ const registerTFGItemTags = (event) => { //Knapping event.add('tfc:any_knapping', 'minecraft:flint') - //Tools & Armor + //#region Tools & Armor event.add('forge:tools/fishing_nets', 'tfg:fishing_net/wood') event.add('forge:tools/fishing_nets', 'tfg:fishing_net/brass') event.add('forge:tools/fishing_nets', 'tfg:fishing_net/rose_gold') @@ -44,6 +44,10 @@ const registerTFGItemTags = (event) => { event.add('forge:tools/trowels', 'tfg:trowel') event.add('tfc:usable_on_tool_rack', 'tfg:trowel') + event.add('tfg:harvester', 'tfg:harvest_basket') + event.add('tfg:harvester', 'tfg:aluminium_harvest_basket') + //#endregion + // #region Paper from wood event.add('tfg:hardwood_strips', 'tfg:hardwood_strip') event.add('tfg:hardwood_strips', 'tfg:soaked_hardwood_strip') @@ -310,6 +314,7 @@ const registerTFGItemTags = (event) => { //#endregion } +//#region Blocks const registerTFGBlockTags = (event) => { event.add('minecraft:mineable/shovel', 'tfg:ash_pile') @@ -340,8 +345,13 @@ const registerTFGBlockTags = (event) => { event.add('minecraft:base_stone_nether', 'tfg:rock/hardened_dripstone') event.add('tfc:rock/hardened', 'tfg:rock/hardened_dripstone') + event.add('tfg:harvester_harvestable', '#tfc:fruit_tree_leaves') + event.add('tfg:harvester_harvestable', '#tfc:berry_bushes') + event.add('tfg:harvester_harvestable', '#tfc:any_spreading_bush') + // #endregion } +//#endregion //#region Fluids const registerTFGFluidTags = (event) => { diff --git a/kubejs/startup_scripts/tfg/items.js b/kubejs/startup_scripts/tfg/items.js index 9ba920be3..a60101bbb 100644 --- a/kubejs/startup_scripts/tfg/items.js +++ b/kubejs/startup_scripts/tfg/items.js @@ -198,6 +198,17 @@ const registerTFGItems = (event) => { event.create('tfg:armor_stand_arms') .translationKey('item.tfg.armor_stand_arms') + event.create('tfg:harvest_basket') + .translationKey('item.tfg.harvest_basket') + .parentModel('tfg:item/harvest_basket') + .maxDamage(128) + + event.create('tfg:aluminium_harvest_basket') + .translationKey('item.tfg.aluminium_harvest_basket') + .parentModel('tfg:item/aluminium_harvest_basket') + .unstackable() + + //Fishing Nets event.create('tfg:fishing_net/wood') .translationKey('item.tfg.fishing_net.wood') .parentModel('tfg:item/fishing_nets/wood_fishing_net')