From 189f5aebcec08380d5ea23d72d1513d719083363 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 18 Apr 2025 10:49:56 +0100 Subject: [PATCH] Alpha Release: additions 0.9.0 (#880) Signed-off-by: Pyritie Signed-off-by: TomPlop Signed-off-by: Adora Signed-off-by: MetenBouldry <94766011+MetenBouldry@users.noreply.github.com> Signed-off-by: CaitlynMC <135169224+CaitlynMC@users.noreply.github.com> Signed-off-by: SverhRazum-Nah Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com> Signed-off-by: Xikaro <55663835+Xikaro@users.noreply.github.com> Co-authored-by: Xikaro Co-authored-by: Nebby <78170922+Nebby1999@users.noreply.github.com> Co-authored-by: Redeix Co-authored-by: TomPlop Co-authored-by: aidie8 Co-authored-by: Xikaro <55663835+Xikaro@users.noreply.github.com> Co-authored-by: Zleub Co-authored-by: Adora Co-authored-by: Curtis Merrill Co-authored-by: julia <97713533+juliakity@users.noreply.github.com> Co-authored-by: GamerDadDave Co-authored-by: MetenBouldry <94766011+MetenBouldry@users.noreply.github.com> Co-authored-by: CaitlynMC <135169224+CaitlynMC@users.noreply.github.com> Co-authored-by: SverhRazum-Nah Co-authored-by: Redeix <59435925+Redeix@users.noreply.github.com> Co-authored-by: Nebby1999 --- .github/README.md | 13 +- .github/workflows/build.yml | 287 +-- CHANGELOG.md | 15 +- config/fallingtrees_common.json | 2 +- config/forgivingworld.json | 108 +- .../quests/chapters/lv__low_voltage.snbt | 368 ++-- .../quests/chapters/questssteam_age.snbt | 79 +- .../quests/chapters/questsstoneage.snbt | 10 +- .../quests/chapters/queststfc_tips.snbt | 1 + defaultconfigs/create-server.toml | 4 +- defaultconfigs/createhorsepower-server.toml | 6 +- defaultconfigs/greate-server.toml | 22 +- ...F TRANSLATING => README IF TRANSLATING.md} | 7 +- .../assets/emi/recipe/filters/categories.json | 3 + kubejs/assets/gtceu/lang/en_us.json | 4 + .../minecraft/textures/block/sponge.png | Bin 0 -> 463 bytes .../minecraft/textures/block/wet_sponge.png | Bin 0 -> 402 bytes .../entries/mechanics/support_beams.json | 244 +++ .../uk_ua/entries/firmalife/irrigation.json | 62 + .../entries/getting_started/introduction.json | 2 +- .../uk_ua/entries/mechanics/bloomery.json | 10 +- .../uk_ua/entries/mechanics/crankshaft.json | 10 +- .../uk_ua/entries/mechanics/fire_clay.json | 8 +- .../uk_ua/entries/mechanics/glassworking.json | 8 +- .../entries/mechanics/mechanical_power.json | 10 +- .../uk_ua/entries/mechanics/papermaking.json | 161 ++ .../uk_ua/entries/mechanics/pumps.json | 10 +- .../uk_ua/entries/tfg_ores/deep_sapphire.json | 4 +- .../entries/tfg_ores/deep_scheelite.json | 4 +- .../entries/tfg_ores/normal_saltpeter.json | 2 +- .../entries/tfg_tips/anvil_working_guide.json | 174 ++ .../entries/tfg_tips/blast_furnace_tips.json | 10 +- .../uk_ua/entries/tfg_tips/faqs.json | 2 +- .../uk_ua/entries/tfg_tips/lv_machines.json | 38 +- .../tfc/textures/gui/knapping/flint.png | Bin 0 -> 528 bytes kubejs/assets/tfg/lang/en_us.json | 223 ++- kubejs/assets/tfg/textures/item/fletching.png | Bin 0 -> 307 bytes .../tfg/textures/item/flint_arrow_head.png | Bin 0 -> 618 bytes .../loot_tables/entities/golem_2.json | 25 - .../loot_tables/entities/tfc.json | 25 - .../tfg/structures/ocean/ocean_moai_0_3.nbt | Bin 1021 -> 1009 bytes .../nether/terrain/clay_patch.json | 4 +- .../nether/terrain/clay_patch_kaolin.json | 6 +- .../advancedperipherals/recipes.js | 2 + kubejs/server_scripts/ae2/recipes.js | 4 +- kubejs/server_scripts/afc/recipes.js | 7 + kubejs/server_scripts/cccbridge/recipes.js | 2 + .../server_scripts/computer_craft/recipes.js | 2 + kubejs/server_scripts/create/recipes.js | 26 +- .../endermanoverhaul/recipes.js | 7 + kubejs/server_scripts/firmalife/recipes.js | 46 +- .../server_scripts/framed_blocks/recipes.js | 29 + .../server_scripts/ftb_quests/CustomQuests.js | 41 + kubejs/server_scripts/greate/recipes.js | 52 +- .../server_scripts/greate/recipes.removes.js | 6 +- kubejs/server_scripts/gregtech/recipes.js | 926 ++------- .../gregtech/recipes.machines.js | 694 +++++++ .../gregtech/recipes.materials.js | 22 +- .../gregtech/recipes.recycling.js | 122 ++ .../gregtech/recipes.removes.js | 3 + .../gregtech/recipes.tfcmetals.js | 310 +++ kubejs/server_scripts/gregtech/tags.js | 6 + kubejs/server_scripts/gregtech/utility.js | 76 +- kubejs/server_scripts/handglider/recipes.js | 22 +- kubejs/server_scripts/main_server_script.js | 8 +- kubejs/server_scripts/minecraft/recipes.js | 77 +- .../minecraft/recipes.removes.js | 3 + kubejs/server_scripts/minecraft/tags.js | 1 - .../primitive_creatures/loot.js | 10 + .../railways/gpedia_locometal_integration.js | 116 +- kubejs/server_scripts/railways/recipes.js | 38 + kubejs/server_scripts/tfc/data.js | 11 +- kubejs/server_scripts/tfc/loot.js | 61 + kubejs/server_scripts/tfc/recipes.js | 28 +- kubejs/server_scripts/tfc/recipes.machines.js | 24 +- .../server_scripts/tfc/recipes.materials.js | 2 +- kubejs/server_scripts/tfc/recipes.metals.js | 71 +- kubejs/server_scripts/tfc/recipes.stone.js | 19 +- kubejs/server_scripts/tfc/tags.js | 7 + kubejs/server_scripts/tfg/events.js | 66 +- kubejs/server_scripts/tfg/recipes.medicine.js | 379 ++-- .../tfg/recipes.miscellaneous.js | 64 +- kubejs/server_scripts/tfg/recipes.supports.js | 4 +- kubejs/server_scripts/tfg/tags.js | 5 + .../vintage_improvements/recipes.js | 5 +- kubejs/startup_scripts/gtceu/constants.js | 2 + kubejs/startup_scripts/gtceu/machines.js | 5 + kubejs/startup_scripts/gtceu/materials.js | 25 +- kubejs/startup_scripts/minecraft/constants.js | 1 - kubejs/startup_scripts/tfg/blocks.js | 2 + kubejs/startup_scripts/tfg/items.js | 8 + mods | 2 +- pakku-lock.json | 1716 +++++++++++------ pakku.json | 22 +- 94 files changed, 4858 insertions(+), 2300 deletions(-) rename kubejs/{.README IF TRANSLATING => README IF TRANSLATING.md} (78%) create mode 100644 kubejs/assets/minecraft/textures/block/sponge.png create mode 100644 kubejs/assets/minecraft/textures/block/wet_sponge.png create mode 100644 kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/support_beams.json create mode 100644 kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/firmalife/irrigation.json create mode 100644 kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/mechanics/papermaking.json create mode 100644 kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_tips/anvil_working_guide.json create mode 100644 kubejs/assets/tfc/textures/gui/knapping/flint.png create mode 100644 kubejs/assets/tfg/textures/item/fletching.png create mode 100644 kubejs/assets/tfg/textures/item/flint_arrow_head.png delete mode 100644 kubejs/data/kaolinclayze/loot_tables/entities/golem_2.json delete mode 100644 kubejs/data/kaolinclayze/loot_tables/entities/tfc.json create mode 100644 kubejs/server_scripts/endermanoverhaul/recipes.js create mode 100644 kubejs/server_scripts/ftb_quests/CustomQuests.js create mode 100644 kubejs/server_scripts/gregtech/recipes.machines.js create mode 100644 kubejs/server_scripts/gregtech/recipes.recycling.js create mode 100644 kubejs/server_scripts/gregtech/recipes.tfcmetals.js create mode 100644 kubejs/server_scripts/primitive_creatures/loot.js create mode 100644 kubejs/server_scripts/tfc/loot.js diff --git a/.github/README.md b/.github/README.md index d508372c7..6df9ecba8 100644 --- a/.github/README.md +++ b/.github/README.md @@ -30,9 +30,12 @@ --- -## Survival Modpack As It Should Be +## Survival Modpack as it Should've Been -**TerraFirmaGreg-Modern** is a Forge modpack that redefines Minecraft survival by introducing realistic challenges alongside advanced technological mechanics. The heart of the modpack is formed by two standout mods: +**TerraFirmaGreg-Modern** is a Forge modpack that redefines Minecraft survival by introducing realistic challenges alongside advanced technological mechanics. +In this modpack, you will be put to the task of taking control of untouched wilderness and turning it to an industrial wonderland. +Start from humble beginning picking up rocks, and end while traversing interstellar space (coming soon)! +The heart of the modpack is formed by two standout mods: - **[TerraFirmaCraft]** - Renowned for its immersive survival mechanics and a unique, challenging approach. - **[GregTech Modern]** - A pinnacle of technical mods that brings deep, complex machinery and automation into the mix. @@ -41,9 +44,10 @@ In addition to these core mods, TerraFirmaGreg-Modern includes several other com - **[Applied Energistics]** โ€“ Cutting-edge storage and automation systems. - **[Create]** โ€“ Innovative machinery and kinetic contraptions. -- **[Gregicality Rocketry]** โ€“ Enhances GregTech with advanced rockets and space exploration features. -Many of these mods come with extra add-ons that further diversify your experience, and the modpack also integrates quests to help you navigate its complex world. + +Several hand-picked TFC and Create addons to provide even more depth. +Many other small mods tie everything together, and the modpack also integrates quests to help you navigate its complex world. --- @@ -60,4 +64,3 @@ Interested in contributing? For detailed setup instructions, coding standards, a [GregTech Modern]: https://www.curseforge.com/minecraft/mc-mods/gregtechceu-modern [Applied Energistics]: https://www.curseforge.com/minecraft/mc-mods/ae2 [Create]: https://www.curseforge.com/minecraft/mc-mods/create -[Gregicality Rocketry]: https://www.curseforge.com/minecraft/mc-mods/gcyr diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index be365a5ad..997458036 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,30 +1,33 @@ name: Project Build -run-name: "Project Build #${{ github.run_number }}" +run-name: "๐Ÿ“ฆ Project Build #${{ github.run_number }}" on: push: branches: + - dev - main concurrency: - group: ${{ github.workflow }} + group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true env: RELEASE_TYPE: "release" MINECRAFT_VERSION: "1.20.1" + RELEASE_ON_GITHUB: "true" + RELEASE_ON_CURSEFORGE: "true" + RELEASE_ON_MODRINTH: "false" + DEV_ENVIRONMENT: ${{ github.branch != 'main' }} jobs: info: name: ๐Ÿ–ฅ๏ธ Project Info runs-on: ubuntu-latest outputs: - project_version: ${{ steps.project_version.outputs.value }} - project_name: ${{ steps.project_name.outputs.value }} - project_full_name: ${{ steps.project_name.outputs.value }}-${{ steps.project_version.outputs.value }} + project_version: ${{ steps.check.outputs.version }} + project_name: ${{ steps.pakku_info.outputs.name }} + project_full_name: ${{ steps.pakku_info.outputs.name }}-${{ steps.check.outputs.version }} changelog: ${{ steps.changelog.outputs.description }} diff: ${{ steps.read_diff.outputs.diff }} - release_type: ${{ env.RELEASE_TYPE }} - minecraft_version: ${{ env.MINECRAFT_VERSION }} exists: ${{ steps.check_tag.outputs.exists }} steps: @@ -79,7 +82,7 @@ jobs: - name: ๐Ÿ“ Check and copy pakku-lock.json from previous tag id: check_copy_lock - if: steps.check_pakku_lock_prev.outputs.file_found == 'true' + if: steps.check_pakku_lock_prev.outputs.file_found shell: bash run: | git show tags/${{ steps.latest_tag.outputs.tag }}:./pakku-lock.json > ./pakku-lock-prev.json @@ -91,7 +94,7 @@ jobs: - name: ๐Ÿ“ฆ Download pakku.jar id: download_pakku - if: steps.check_pakku_lock_prev.outputs.file_found == 'true' + if: steps.check_pakku_lock_prev.outputs.file_found shell: bash run: | curl https://github.com/juraj-hrivnak/pakku/releases/latest/download/pakku.jar -o pakku.jar -L -J @@ -99,7 +102,7 @@ jobs: - name: ๐Ÿ”„ Run pakku diff id: pakku_diff - if: steps.check_pakku_lock_prev.outputs.file_found == 'true' + if: steps.check_pakku_lock_prev.outputs.file_found shell: bash run: | java -jar pakku.jar diff -v --markdown PROJECTS_DIFF.md ./pakku-lock-prev.json ./pakku-lock.json @@ -111,7 +114,7 @@ jobs: - name: ๐Ÿ“ Read PROJECTS_DIFF.md to variable id: read_diff - if: steps.check_pakku_lock_prev.outputs.file_found == 'true' + if: steps.check_pakku_lock_prev.outputs.file_found shell: bash run: | echo "๐Ÿ“ Reading PROJECTS_DIFF.md to variable..." @@ -121,66 +124,82 @@ jobs: echo EOF } >> "$GITHUB_OUTPUT" echo "โœ”๏ธ Diff content read to variable" - - - name: ๐Ÿ“Š Get Project Name - id: project_name - uses: ActionsTools/read-json-action@v1.0.5 - with: - file_path: "pakku.json" - prop_path: "name" - - - name: ๐Ÿ“Š Get Project Version - id: project_version - uses: ActionsTools/read-json-action@v1.0.5 - with: - file_path: "pakku.json" - prop_path: "version" - - name: ๐Ÿ“Š Get Minecraft Version - id: minecraft_version + - name: ๐Ÿ“Š Get Pakku Info + id: pakku_info + uses: ActionsTools/read-json-action@v1.0.5 + with: + file_path: "pakku.json" + + - name: ๐Ÿ“Š Get Pakku-lock Info + id: pakku_lock_info uses: ActionsTools/read-json-action@v1.0.5 with: file_path: "pakku-lock.json" - prop_path: "mc_versions" + + - name: ๐Ÿ” Check if tag exists + uses: mukunku/tag-exists-action@v1.6.0 + id: check_tag + with: + tag: ${{ steps.pakku_info.outputs.version }} + + - name: ๐Ÿ“ Determine Version + id: determine_version + shell: bash + run: | + if [ ${{ steps.check_tag.outputs.exists }} ]; then + echo "version=unreleased" >> $GITHUB_OUTPUT + else + echo "version=${{ steps.pakku_info.outputs.version }}" >> $GITHUB_OUTPUT + fi - name: ๐Ÿ“„ Changelog Parser id: changelog uses: coditory/changelog-parser@v1.0.2 with: path: CHANGELOG.md - - - name: ๐Ÿ“ˆ Upload Diff - id: upload_diff - if: ${{ steps.read_diff.outputs.diff != '' }} && steps.check_pakku_lock_prev.outputs.file_found == 'true' - uses: actions/upload-artifact@v4.6.2 + version: ${{ steps.determine_version.outputs.version }} + continue-on-error: true + + - name: ๐Ÿ” Check if changelog is empty + id: check + shell: bash + run: | + if [ ${{ steps.check_tag.outputs.exists }} ]; then + echo "version=build_#${{ github.run_number }}" >> $GITHUB_OUTPUT + echo "status=Unreleased" >> $GITHUB_OUTPUT + else + echo "status=${{ steps.changelog.outputs.status }}" >> $GITHUB_OUTPUT + echo "version=${{ steps.pakku_info.outputs.version }}" >> $GITHUB_OUTPUT + fi + + - name: ๐Ÿ“„ Format diff + id: format_diff + if: ${{ steps.read_diff.outputs.diff != '' }} + uses: roamingowl/template-output-with-eta@v1.12.0 with: - name: Mods-diff - path: PROJECTS_DIFF.md - - - name: ๐Ÿ” Check if tag exists - uses: mukunku/tag-exists-action@v1.6.0 - id: check_tag - with: - tag: ${{ steps.project_version.outputs.value }} + template: | + ```markdown + ${{ steps.read_diff.outputs.diff }} + ``` - name: ๐Ÿ“ Generate Github Summary uses: WcAServices/markdown-template-action@v1.1.1 with: template: | - ๐Ÿ“ƒ **Name**: ${{ steps.project_name.outputs.value }} - ๐Ÿ“ƒ **Release**: ${{ steps.project_version.outputs.value }} - ๐Ÿ“ƒ **Release Type**: ${{ env.RELEASE_TYPE }} - ๐Ÿ“ƒ **Game Version**: ${{ env.MINECRAFT_VERSION }} + ๐Ÿ“ƒ **Name**: ${{ steps.pakku_info.outputs.name }} + ๐Ÿ“ƒ **Release**: `${{ steps.check.outputs.version }}` + ๐Ÿ“ƒ **Release Type**: `${{ steps.check.outputs.status }}` + ๐Ÿ“ƒ **Game Version**: `${{ steps.pakku_lock_info.outputs.mc_versions }}` ${{ steps.changelog.outputs.description }} - ${{ steps.read_diff.outputs.diff }} + ${{ steps.format_diff.outputs.text }} build-modpack: name: ๐Ÿ“ฆ Build Modpack needs: [info] runs-on: ubuntu-latest - if: needs.info.outputs.exists != 'true' steps: - name: Checkout @@ -192,14 +211,16 @@ jobs: set +e VERSION=${{ needs.info.outputs.project_version }} + sed -i -e "s/\"version\": \"[0-9.]*\"/\"version\": \"${VERSION}\"/g" pakku.json sed -i -e "s/DEV/${VERSION}/g" config/fancymenu/customization/gui_main_menu.txt - # - name: Cache pakku - # uses: actions/cache@v4.1.2 - # with: - # path: build/.cache - # key: ${{ runner.OS }}-pakku-cache-${{ hashFiles('build/.cache/') }} - # restore-keys: ${{ runner.OS }}-pakku-cache- + - name: Cache pakku + uses: actions/cache@v4.2.3 + id: cache + with: + path: build/.cache + key: pakku-cache-${{ hashFiles('pakku-lock.json') }} + restore-keys: pakku-cache- - name: ๐Ÿ“ฆ Export modpack run: | @@ -234,7 +255,6 @@ jobs: name: ๐Ÿ“ฆ Build Server needs: [info] runs-on: ubuntu-latest - if: needs.info.outputs.exists != 'true' steps: - name: Checkout @@ -246,14 +266,16 @@ jobs: set +e VERSION=${{ needs.info.outputs.project_version }} + sed -i -e "s/\"version\": \"[0-9.]*\"/\"version\": \"${VERSION}\"/g" pakku.json sed -i -e "s/DEV/${VERSION}/g" config/fancymenu/customization/gui_main_menu.txt - # - name: Cache pakku - # uses: actions/cache@v4.1.2 - # with: - # path: build/.cache - # key: ${{ runner.OS }}-pakku-cache-${{ hashFiles('build/.cache/') }} - # restore-keys: ${{ runner.OS }}-pakku-cache- + - name: Cache pakku + uses: actions/cache@v4.2.3 + id: cache + with: + path: build/.cache + key: pakku-cache-${{ hashFiles('pakku-lock.json') }} + restore-keys: pakku-cache- - name: ๐Ÿ“ฆ Export modpack run: | @@ -277,7 +299,6 @@ jobs: name: ๐Ÿ“ฆ Build MultiMC needs: [info] runs-on: ubuntu-latest - if: needs.info.outputs.exists != 'true' steps: - name: Checkout @@ -289,15 +310,17 @@ jobs: set +e VERSION=${{ needs.info.outputs.project_version }} + sed -i -e "s/\"version\": \"[0-9.]*\"/\"version\": \"${VERSION}\"/g" pakku.json sed -i -e "s/DEV/${VERSION}/g" config/fancymenu/customization/gui_main_menu.txt sed -i -e "s/DEV/${VERSION}/g" .pakku/multimc-overrides/instance.cfg - # - name: Cache pakku - # uses: actions/cache@v4.1.2 - # with: - # path: build/.cache - # key: ${{ runner.OS }}-pakku-cache-${{ hashFiles('build/.cache/') }} - # restore-keys: ${{ runner.OS }}-pakku-cache- + - name: Cache pakku + uses: actions/cache@v4.2.3 + id: cache + with: + path: build/.cache + key: pakku-cache-${{ hashFiles('pakku-lock.json') }} + restore-keys: pakku-cache- - name: ๐Ÿ“ฆ Export run: | @@ -327,6 +350,7 @@ jobs: name: ๐Ÿš€ Release to GitHub needs: [info, build-modpack, build-server, build-multimc] runs-on: ubuntu-latest + if: github.env.RELEASE_ON_GITHUB && !github.env.DEV_ENVIRONMENT && !needs.info.outputs.exists outputs: url: ${{ steps.release.outputs.url }} @@ -339,6 +363,24 @@ jobs: with: merge-multiple: true + - name: ๐Ÿ” Check if artifact exist + id: check_artifact + shell: bash + run: | + if [ ! -f ${{ needs.info.outputs.project_full_name }}-curseforge.zip ]; then + echo '::error::No value found for artifact `curseforge.zip`.' && exit 1 + fi + if [ ! -f ${{ needs.info.outputs.project_full_name }}-modrinth.mrpack ]; then + echo '::error::No value found for artifact `modrinth.mrpack`.' && exit 1 + fi + if [ ! -f ${{ needs.info.outputs.project_full_name }}-serverpack.zip ]; then + echo '::error::No value found for artifact `serverpack.zip`.' && exit 1 + fi + if [ ! -f ${{ needs.info.outputs.project_full_name }}-multimc.zip ]; then + echo '::error::No value found for artifact `multimc.zip`.' && exit 1 + fi + echo "โœ”๏ธ All artifacts found" + - name: ๐Ÿšซ ะกlose fixed in dev uses: Xikaro/close-issues-based-on-label@master env: @@ -346,7 +388,7 @@ jobs: COMMENT: In ${{ needs.info.outputs.project_version }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Format diff + - name: ๐Ÿ“„ Format diff id: format_diff if: ${{ needs.info.outputs.diff != '' }} uses: roamingowl/template-output-with-eta@v1.12.0 @@ -369,7 +411,7 @@ jobs: ${{ needs.info.outputs.project_full_name }}-curseforge.zip ${{ needs.info.outputs.project_full_name }}-serverpack.zip ${{ needs.info.outputs.project_full_name }}-multimc.zip - prerelease: ${{ needs.info.outputs.release_type != 'release' }} + prerelease: ${{ env.RELEASE_TYPE != 'release' }} generate_release_notes: true token: ${{ secrets.GITHUB_TOKEN }} @@ -377,6 +419,7 @@ jobs: name: ๐Ÿš€ Release to CurseForge needs: [info, build-modpack, build-server, release-github] runs-on: ubuntu-latest + if: github.env.RELEASE_ON_CURSEFORGE && !github.env.DEV_ENVIRONMENT && !needs.info.outputs.exists outputs: id: ${{ steps.release.outputs.id }} @@ -388,15 +431,22 @@ jobs: echo '::error::No value found for secret key `CURSEFORGE_TOKEN`. See https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository' && exit 1 fi - - name: ๐Ÿ“ฆ Download artifact curseforge + - name: ๐Ÿ“ฆ Download artifact uses: actions/download-artifact@v4.2.1 with: - name: ${{ needs.info.outputs.project_full_name }}-curseforge + merge-multiple: true - - name: ๐Ÿ“ฆ Download artifact server - uses: actions/download-artifact@v4.2.1 - with: - name: ${{ needs.info.outputs.project_full_name }}-serverpack + - name: ๐Ÿ” Check if artifact exist + id: check_artifact + shell: bash + run: | + if [ ! -f ${{ needs.info.outputs.project_full_name }}-curseforge.zip ]; then + echo '::error::No value found for artifact `curseforge.zip`.' && exit 1 + fi + if [ ! -f ${{ needs.info.outputs.project_full_name }}-serverpack.zip ]; then + echo '::error::No value found for artifact `serverpack.zip`.' && exit 1 + fi + echo "โœ”๏ธ All artifacts found" - name: ๐Ÿš€ Upload Curseforge id: release @@ -412,47 +462,56 @@ jobs: ${{ needs.info.outputs.changelog }} ${{ needs.info.outputs.diff }} changelog-format: markdown - game-version: ${{ needs.info.outputs.minecraft_version }} - release-type: ${{ needs.info.outputs.release_type }} + game-version: ${{ env.MINECRAFT_VERSION }} + release-type: ${{ env.RELEASE_TYPE }} - # release-modrinth: - # name: ๐Ÿš€ Release to Modrinth - # needs: [info, build-modpack, build-server, release-github] - # runs-on: ubuntu-latest + release-modrinth: + name: ๐Ÿš€ Release to Modrinth + needs: [info, build-modpack, build-server, release-github] + runs-on: ubuntu-latest + if: github.env.RELEASE_ON_MODRINTH && !github.env.DEV_ENVIRONMENT && !needs.info.outputs.exists + outputs: + id: ${{ steps.release.outputs.id }} - # steps: - # - name: ๐Ÿ”’ Check if MODRINTH_API_TOKEN exist - # shell: bash - # run: | - # if [ "${{ secrets.MODRINTH_TOKEN }}" == '' ]; then - # echo '::error::No value found for secret key `MODRINTH_TOKEN`. See https://docs.github.com/en/ actionssecurity-guides/ encrypted-secrets#creating-encrypted-secrets-for-a-repository' && exit 1 - # fi + steps: + - name: ๐Ÿ”’ Check if MODRINTH_API_TOKEN exist + shell: bash + run: | + if [ "${{ secrets.MODRINTH_TOKEN }}" == '' ]; then + echo '::error::No value found for secret key `MODRINTH_TOKEN`. See https://docs.github.com/en/ actionssecurity-guides/ encrypted-secrets#creating-encrypted-secrets-for-a-repository' && exit 1 + fi - # - name: ๐Ÿ“ฆ Download artifact modrinth - # uses: actions/download-artifact@v4.2.1 - # with: - # name: ${{ needs.info.outputs.project_full_name }}-modrinth - - # - name: ๐Ÿ“ฆ Download artifact server - # uses: actions/download-artifact@v4.2.1 - # with: - # name: ${{ needs.info.outputs.project_full_name }}-serverpack - - # - name: ๐Ÿš€ Upload Modrinth - # id: release - # uses: Xikaro/upload-curseforge-modpack-action@1.1.1 - # with: - # api-token: ${{ secrets.MODRINTH_TOKEN }} - # project-id: ${{ vars.MODRINTH_ID }} - # modpack-path: ${{ needs.info.outputs.project_full_name }}-modrinth.mrpack - # modpack-server-path: ${{ needs.info.outputs.project_full_name }}-serverpack.zip - # changelog: ${{ needs.info.outputs.changelog }} - # changelog-format: markdown - # game-version: ${{ needs.info.outputs.minecraft_version }} - # display-name: ${{ needs.info.outputs.project_full_name }} - # server-display-name: ${{ needs.info.outputs.project_full_name }}-serverpack - # release-type: ${{ needs.info.outputs.release_type }} + - name: ๐Ÿ“ฆ Download artifact + uses: actions/download-artifact@v4.2.1 + with: + merge-multiple: true + - name: ๐Ÿ” Check if artifact exist + id: check_artifact + shell: bash + run: | + if [ ! -f ${{ needs.info.outputs.project_full_name }}-modrinth.mrpack ]; then + echo '::error::No value found for artifact `modrinth.mrpack`.' && exit 1 + fi + if [ ! -f ${{ needs.info.outputs.project_full_name }}-serverpack.zip ]; then + echo '::error::No value found for artifact `serverpack.zip`.' && exit 1 + fi + echo "โœ”๏ธ All artifacts found" + + - name: ๐Ÿš€ Upload Modrinth + id: release + uses: Xikaro/upload-curseforge-modpack-action@1.1.1 + with: + api-token: ${{ secrets.MODRINTH_TOKEN }} + project-id: ${{ vars.MODRINTH_ID }} + modpack-path: ${{ needs.info.outputs.project_full_name }}-modrinth.mrpack + modpack-server-path: ${{ needs.info.outputs.project_full_name }}-serverpack.zip + changelog: ${{ needs.info.outputs.changelog }} + changelog-format: markdown + game-version: ${{ env.MINECRAFT_VERSION }} + display-name: ${{ needs.info.outputs.project_full_name }} + server-display-name: ${{ needs.info.outputs.project_full_name }}-serverpack + release-type: ${{ env.RELEASE_TYPE }} discord-message: name: ๐Ÿ“ฑ Discord Message @@ -475,8 +534,8 @@ jobs: content_links_no_embed: .+ content: | **Release**: `${{ needs.info.outputs.project_version }}` - **Release Type**: `${{ needs.info.outputs.release_type }}` - **Game Version**: `${{ needs.info.outputs.minecraft_version }}` + **Release Type**: `${{ env.RELEASE_TYPE }}` + **Game Version**: `${{ env.MINECRAFT_VERSION }}` [CurseForge](https://www.curseforge.com/minecraft/modpacks/terrafirmagreg-modern/files/${{ needs.release-curseforge.outputs.id }}) โ€ข [GitHub](${{ needs.release-github.outputs.url }}) โ€ข [Issues](https://github.com/${{ github.repository }}/issues) ```markdown diff --git a/CHANGELOG.md b/CHANGELOG.md index 944dbc7ff..cdf0a075e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,20 +1,29 @@ # Changelog -## [Unreleased] +## [Unreleased] - 18.04.2025 ### Warning for upgrading your world - This is a major update that changes many things! - It is safest to create a new instance and copy your world across, instead of trying to update your world in-place. - Check that everything works before permanently changing over to the new version! - GregTech has removed its kinetic machines, so they will disappear when upgrading. Please recycle your machines first! - Several ores and ingots have changed. After upgrading, they will have a "REPLACE ME" texture. Put them in a crafting grid to change to the new version. +- Create mechanisms will stop working and will need to be replaced with "Greate" equivalents. This means that if you have any boilers running off of create THEY MAY EXPLODE! +- Tree tap has been replaced you will need to craft your old taps into the new ones. +- Gregicality Rocketry has been removed and will be replaced with Ad Astra soon. Please recycle whatever you can and make sure you are in the overworld. ### Changes - Latest version of GregTech! Comes with new textures and a few new features, many bug fixes and much more stability. - Early game overhaul! You start getting into some automation much earlier and gradually unlock more as you progress, instead of having it all dumped on you after steel. - New dimension! The Beneath, basically a TFG-ified version of the nether. Stand on overworld bedrock for a bit to start exploring! - Quest rewrite! The first few quest chapters have been totally remade from the ground up to be more readable, have fewer breaking dependencies, and reflect actual progression. Most of the optional but useful content has been put into its own dedicated section. - The minimum amount of lava source blocks to be considered infinite has been increased from 1 to 2000. There's many lava lakes underground, and trains are more accessible. -- Many other bug fixes, too many to list! - +- Create has changed completely with the addition of "Greate", "VintageImprovements", and "Horse Power". +- New structures have been added to the overworld. Some with loot! +- More cave supports have been added. Including stone, concrete, and steel supports. Higher tier supports can hold a larger area of blocks. +- Medicine had been added and can apply some helpful potion effects or be applied to arrows. +- Wax alternatives have been added, including paraffin wax and tree rosin. +- Planes! Snake-free. +- Many mods have been updated and include new features. Check out the mods list! +- Many other bug fixes, QoL features, mod integration, and recipes tweaks. too many to list! ## [0.7.19] - 25.01.2025 ### Changes diff --git a/config/fallingtrees_common.json b/config/fallingtrees_common.json index ce931146a..cb379c5a2 100644 --- a/config/fallingtrees_common.json +++ b/config/fallingtrees_common.json @@ -5,7 +5,7 @@ "treeLifetimeLength": 4.0, "dynamicMiningSpeed": { "disable": false, - "speedMultiplication": 0.1, + "speedMultiplication": 0.05, "maxSpeedMultiplication": 16.0 }, "trees": { diff --git a/config/forgivingworld.json b/config/forgivingworld.json index ac09e2342..26056c231 100644 --- a/config/forgivingworld.json +++ b/config/forgivingworld.json @@ -1,65 +1,47 @@ { - "disableVanillaPortals": { - "desc:": "Disables vanilla portals, default:false", - "disableVanillaPortals": true - }, - "teleportCooldown": { - "desc:": "Sets a delay before you can teleport again, default:15 seconds", - "teleportCooldown": 15 - }, - "instantTeleport": { - "desc:": "Instantly teleports instead of notifying the user over time,(Note this causes some lag, due to loading chunks directly) default:false", - "instantTeleport": false - }, - "teleportedRidden": { - "desc:": "Teleport ridden entities too, default:true", - "teleportedRidden": true - }, - "teleportLeashed": { - "desc:": "Teleport leashed entities too, default:true", - "teleportLeashed": true - }, - "debuglogging": { - "desc:": "Enable debug logging, default:false", - "debuglogging": false - }, - "dimensionconnections": [ - { - "from": "minecraft:overworld", - "to": "minecraft:the_nether", - "teleporttype": { - "teleporttype": "AIR", - "teleport_to_y": 125 - }, - "belowy": -58, - "slowfallticks": 1200 - }, - { - "from": "minecraft:the_nether", - "to": "minecraft:the_nether", - "teleporttype": { - "teleporttype": "CAVE", - "teleport_to_y": 4 - }, - "belowy": 0 - }, - { - "from": "minecraft:the_nether", - "to": "minecraft:overworld", - "teleporttype": { - "teleporttype": "CAVE", - "teleport_to_y": -58 - }, - "abovey": 118 - }, - { - "from": "minecraft:overworld", - "to": "minecraft:overworld", - "teleporttype": { - "teleporttype": "AIR", - "teleport_to_y": 360 - }, - "abovey": 364 - } - ] + "disableVanillaPortals": { + "desc:": "Disables vanilla portals, default:false", + "disableVanillaPortals": true + }, + "teleportCooldown": { + "desc:": "Sets a delay before you can teleport again, default:15 seconds", + "teleportCooldown": 15 + }, + "instantTeleport": { + "desc:": "Instantly teleports instead of notifying the user over time,(Note this causes some lag, due to loading chunks directly) default:false", + "instantTeleport": false + }, + "teleportedRidden": { + "desc:": "Teleport ridden entities too, default:true", + "teleportedRidden": true + }, + "teleportLeashed": { + "desc:": "Teleport leashed entities too, default:true", + "teleportLeashed": true + }, + "debuglogging": { + "desc:": "Enable debug logging, default:false", + "debuglogging": false + }, + "dimensionconnections": [ + { + "from": "minecraft:overworld", + "to": "minecraft:the_nether", + "teleporttype": { + "teleporttype": "AIR", + "teleport_to_y": 125 + }, + "belowy": -58, + "slowfallticks": 1200 + }, + { + "from": "minecraft:the_nether", + "to": "minecraft:overworld", + "teleporttype": { + "teleporttype": "CAVE", + "teleport_to_y": -58 + }, + "abovey": 118 + } + ] } \ No newline at end of file diff --git a/config/ftbquests/quests/chapters/lv__low_voltage.snbt b/config/ftbquests/quests/chapters/lv__low_voltage.snbt index 5acd24b9f..114006062 100644 --- a/config/ftbquests/quests/chapters/lv__low_voltage.snbt +++ b/config/ftbquests/quests/chapters/lv__low_voltage.snbt @@ -21,8 +21,8 @@ type: "item" }] title: "{quests.low_voltage.lv_fluid_regulator.title}" - x: 3.0d - y: 0.5d + x: 5.5d + y: -2.0d } { dependencies: ["38993B4697B0E16C"] @@ -41,8 +41,8 @@ type: "item" }] title: "{quests.low_voltage.lv_robot_arm.title}" - x: 3.0d - y: -2.0d + x: 5.5d + y: -4.0d } { dependencies: ["7EED0084BA59FED1"] @@ -57,8 +57,8 @@ type: "item" }] title: "{quests.low_voltage.lv_conveyor.title}" - x: 1.5d - y: -0.75d + x: 4.5d + y: -3.0d } { dependencies: ["7EED0084BA59FED1"] @@ -73,8 +73,8 @@ type: "item" }] title: "{quests.low_voltage.lv_pump.title}" - x: 1.5d - y: 0.5d + x: 4.5d + y: -2.0d } { dependencies: ["7EED0084BA59FED1"] @@ -89,14 +89,11 @@ type: "item" }] title: "{quests.low_voltage.lv_piston.title}" - x: 1.5d - y: -2.0d + x: 4.5d + y: -4.0d } { - dependencies: [ - "7EED0084BA59FED1" - "648BCF486E16CCB2" - ] + dependencies: ["22510C5F2386B453"] description: [ "{quests.low_voltage.lv_steam_turbine.desc.1}" "{@pagebreak}" @@ -112,15 +109,16 @@ type: "item" }] title: "{quests.low_voltage.lv_steam_turbine.title}" - x: 0.0d - y: 1.5d + x: 5.5d + y: 4.5d } { dependencies: ["6431381FBE07D6EF"] description: ["{quests.low_voltage.lv_amp_explanation.desc}"] id: "7B0FF43022F6C2EC" + optional: true shape: "rsquare" - size: 0.66d + size: 1.0d subtitle: "{quests.low_voltage.lv_amp_explanation.subtitle}" tasks: [{ count: 4L @@ -129,16 +127,16 @@ type: "item" }] title: "{quests.low_voltage.lv_amp_explanation.title}" - x: 4.5d - y: 3.5d + x: 5.5d + y: 2.5d } { dependencies: ["45B71324028F6E68"] description: ["{quests.low_voltage.aluminium_ingot.desc}"] hide_dependency_lines: false id: "7567E885B7166603" - shape: "gear" - size: 4.0d + shape: "octagon" + size: 1.5d subtitle: "{quests.low_voltage.aluminium_ingot.subtitle}" tasks: [{ id: "161B5813936E5E42" @@ -147,13 +145,19 @@ }] title: "{quests.low_voltage.aluminium_ingot.title}" x: -9.0d - y: 11.5d + y: 9.75d } { + dependencies: [ + "49896161B31DB7B4" + "5B891BA4897FD73C" + "1912758422EEB006" + ] + dependency_requirement: "one_completed" description: ["{quests.low_voltage.lv_battery_preparation.desc}"] + hide_dependency_lines: true icon: "gtceu:battery_alloy_ingot" id: "6D9D54FAB21EC086" - shape: "rsquare" size: 1.0d subtitle: "{quests.low_voltage.lv_battery_preparation.subtitle}" tasks: [ @@ -170,8 +174,8 @@ } ] title: "{quests.low_voltage.lv_battery_preparation.title}" - x: 7.5d - y: 2.5d + x: 5.5d + y: -0.5d } { description: [ @@ -198,8 +202,8 @@ type: "item" }] title: "GregTech Storage" - x: -4.5d - y: -4.0d + x: 6.5d + y: -0.5d } { dependencies: [ @@ -225,8 +229,8 @@ type: "checkmark" }] title: "{quests.low_voltage.cover_behaviour.title}" - x: 3.0d - y: -0.75d + x: 5.5d + y: -3.0d } { dependencies: [ @@ -251,64 +255,88 @@ type: "checkmark" }] title: "{quests.low_voltage.machine_auto_output_behaviour.title}" - x: -4.5d - y: 0.5d + x: -4.0d + y: 1.5d } { - dependencies: ["648BCF486E16CCB2"] + dependencies: ["22510C5F2386B453"] description: [ "{quests.low_voltage.lv_wiremill.desc.1}" "{@pagebreak}" "{quests.low_voltage.lv_wiremill.desc.2}" ] id: "32EA7E81885C8E87" - optional: true size: 1.0d subtitle: "{quests.low_voltage.lv_wiremill.subtitle}" tasks: [{ - id: "2B5BF6F3ED693B9E" - item: "gtceu:lv_wiremill" + id: "24287B2E01AF3841" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + display: { + Name: "{\"text\":\"Wiremill LV\"}" + } + "ftbfiltersystem:filter": "or(item(gtceu:lv_wiremill)item(vintageimprovements:spring_coiling_machine))" + } + } + title: "{quests.low_voltage.lv_wiremill.task}" type: "item" }] title: "{quests.low_voltage.lv_wiremill.title}" - x: -3.5d - y: -0.5d + x: -3.0d + y: 0.5d } { - dependencies: ["648BCF486E16CCB2"] + dependencies: ["22510C5F2386B453"] description: ["{quests.low_voltage.lv_bender.desc}"] id: "10ECB471A77F5136" - optional: true size: 1.0d subtitle: "{quests.low_voltage.lv_bender.subtitle}" tasks: [{ - id: "3AC3A8728EE60E4C" - item: "gtceu:lv_bender" + id: "362A01D38AC915B7" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + display: { + Name: "{\"text\":\"Bender LV\"}" + } + "ftbfiltersystem:filter": "or(item(gtceu:lv_bender)item(createaddition:rolling_mill))" + } + } + title: "{quests.low_voltage.lv_bender.task}" type: "item" }] title: "{quests.low_voltage.lv_bender.title}" - x: -3.5d - y: 1.5d + x: -3.0d + y: 2.5d } { - dependencies: ["648BCF486E16CCB2"] + dependencies: ["22510C5F2386B453"] description: [ "{quests.low_voltage.lv_lathe.desc.1}" "{@pagebreak}" "{quests.low_voltage.lv_lathe.desc.2}" ] id: "07E7678095258EDB" - optional: true size: 1.0d subtitle: "{quests.low_voltage.lv_lathe.subtitle}" tasks: [{ - id: "6781D0241D0564A5" - item: "gtceu:lv_lathe" + id: "66E007873E6F2471" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "or(item(vintageimprovements:lathe)item(gtceu:lv_lathe))" + } + } + title: "{quests.low_voltage.lv_lathe.task}" type: "item" }] title: "{quests.low_voltage.lv_lathe.title}" - x: -3.5d - y: 0.5d + x: -3.0d + y: 1.5d } { dependencies: ["22510C5F2386B453"] @@ -322,8 +350,8 @@ type: "item" }] title: "{quests.low_voltage.lv_polariser.title}" - x: 2.0d - y: -4.0d + x: 3.0d + y: 1.5d } { dependencies: ["6E186F9C57155BFA"] @@ -335,6 +363,7 @@ "{quests.low_voltage.lbb.desc.3}" ] id: "33263404ED38C6D2" + optional: true shape: "heart" size: 1.0d subtitle: "{quests.low_voltage.lbb.subtitle}" @@ -344,8 +373,8 @@ type: "item" }] title: "{quests.low_voltage.lbb.title}" - x: -1.0d - y: 1.5d + x: 7.0d + y: 4.5d } { dependencies: ["1E9BE8D3F8A602DC"] @@ -375,6 +404,7 @@ "{quests.low_voltage.lv_chemical_bath.desc.2}" ] id: "330BDB559A7BAB35" + optional: true size: 1.0d subtitle: "{quests.low_voltage.lv_chemical_bath.subtitle}" tasks: [{ @@ -383,8 +413,8 @@ type: "item" }] title: "{quests.low_voltage.lv_chemical_bath.title}" - x: 7.5d - y: 4.5d + x: 5.5d + y: 8.0d } { dependencies: ["64E1E87B8AF72968"] @@ -410,11 +440,11 @@ type: "checkmark" }] title: "{quests.low_voltage.programmed_circuits.title}" - x: -5.5d - y: 0.5d + x: -5.0d + y: 1.5d } { - dependencies: ["648BCF486E16CCB2"] + dependencies: ["22510C5F2386B453"] description: ["{quests.low_voltage.lv_canner.desc}"] id: "37307A46E70011D3" size: 1.0d @@ -425,8 +455,8 @@ type: "item" }] title: "{quests.low_voltage.lv_canner.title}" - x: 4.5d - y: 2.5d + x: 3.0d + y: 0.5d } { dependencies: [ @@ -454,8 +484,8 @@ type: "item" }] title: "{quests.low_voltage.lv_battery.title}" - x: 6.0d - y: 2.5d + x: 5.5d + y: 0.5d } { dependencies: ["3E6DC423FE4A99F7"] @@ -484,8 +514,8 @@ type: "item" }] title: "{quests.low_voltage.lv_battery_buffer_4x.title}" - x: 6.0d - y: 3.5d + x: 5.5d + y: 1.5d } { dependencies: ["1646BF9194100E57"] @@ -508,7 +538,7 @@ y: 6.5d } { - dependencies: ["648BCF486E16CCB2"] + dependencies: ["22510C5F2386B453"] description: ["{quests.low_voltage.other_machines.desc}"] icon: "gtceu:crushed_sulfur_ore" id: "701BCADAE5CF6CA5" @@ -521,8 +551,8 @@ type: "checkmark" }] title: "{quests.low_voltage.other_machines.title}" - x: 6.0d - y: 4.5d + x: 5.5d + y: 7.0d } { description: ["{quests.low_voltage.lv_age_progression.desc}"] @@ -538,7 +568,7 @@ }] title: "{quests.low_voltage.lv_age_progression.title}" x: 0.0d - y: 4.5d + y: -3.0d } { dependencies: [ @@ -572,8 +602,8 @@ type: "item" }] title: "{quests.low_voltage.lv_ore_prospector.title}" - x: 6.0d - y: 1.0d + x: 6.5d + y: 0.5d } { dependencies: ["5B2696206205CB2E"] @@ -599,7 +629,7 @@ y: 6.5d } { - dependencies: ["648BCF486E16CCB2"] + dependencies: ["22510C5F2386B453"] description: ["{quests.low_voltage.lv_gas_collector.desc}"] id: "15928F50AE80A5CF" shape: "rsquare" @@ -615,7 +645,7 @@ y: 6.5d } { - dependencies: ["648BCF486E16CCB2"] + dependencies: ["22510C5F2386B453"] description: [ "{quests.low_voltage.lv_chemical_reactor.desc.1}" "{@pagebreak}" @@ -659,8 +689,8 @@ type: "item" }] title: "{quests.low_voltage.universal_cell.title}" - x: -4.5d - y: 1.5d + x: -4.0d + y: 2.5d } { dependencies: ["581CDF545E1EA1FD"] @@ -688,10 +718,7 @@ y: 4.5d } { - dependencies: [ - "5B891BA4897FD73C" - "49896161B31DB7B4" - ] + dependencies: ["5B891BA4897FD73C"] dependency_requirement: "one_completed" description: ["{quests.low_voltage.soldering_alloy.desc}"] icon: "gtceu:soldering_alloy_ingot" @@ -715,10 +742,11 @@ "{@pagebreak}" "{quests.low_voltage.lv_electroliser.desc.2}" "{@pagebreak}" - "{quests.low_voltage.lv_electroliser.desc.3" + "{quests.low_voltage.lv_electroliser.desc.3}" ] hide_dependent_lines: true id: "32B08E6F414A00C0" + optional: true size: 1.0d subtitle: "{quests.low_voltage.lv_electroliser.subtitle}" tasks: [{ @@ -727,33 +755,42 @@ type: "item" }] title: "{quests.low_voltage.lv_electroliser.title}" - x: 6.0d - y: 6.0d + x: 6.5d + y: 7.0d } { - dependencies: ["648BCF486E16CCB2"] + dependencies: ["22510C5F2386B453"] description: ["{quests.low_voltage.lv_cutter.desc}"] id: "3A8D7FC6F316C38C" - optional: true size: 1.0d subtitle: "{quests.low_voltage.lv_cutter.subtitle}" tasks: [{ - id: "662DB818821C4EAE" - item: "gtceu:lv_cutter" + id: "5C48A838AB442329" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + display: { + Name: "{\"text\":\"LV Cutter\"}" + } + "ftbfiltersystem:filter": "or(item(gtceu:lv_cutter)item(greate:steel_mechanical_saw))" + } + } + title: "{quests.low_voltage.lv_cutter.task}" type: "item" }] title: "{quests.low_voltage.lv_cutter.title}" - x: -3.5d - y: -1.5d + x: -3.0d + y: -0.5d } { - dependencies: ["648BCF486E16CCB2"] + dependencies: ["22510C5F2386B453"] description: [ "{quests.low_voltage.lv_centrifuge.desc.1}" "{@pagebreak}" "{quests.low_voltage.lv_centrifuge.desc.2}" "{@pagebreak}" - "{quests.low_voltage.lv_centrifuge.desc.3" + "{quests.low_voltage.lv_centrifuge.desc.3}" ] id: "5263F866638D875C" shape: "octagon" @@ -772,6 +809,7 @@ dependencies: ["37307A46E70011D3"] description: ["{quests.low_voltage.lv_sprayer.desc}"] id: "5AD9884E7BFB2510" + optional: true shape: "heart" size: 1.0d subtitle: "{quests.low_voltage.lv_sprayer.subtitle}" @@ -782,11 +820,11 @@ type: "item" }] title: "{quests.low_voltage.lv_sprayer.title}" - x: 4.5d - y: 1.0d + x: 4.25d + y: -0.5d } { - dependencies: ["648BCF486E16CCB2"] + dependencies: ["22510C5F2386B453"] description: [ "{quests.low_voltage.lv_assembler.desc.1}" "{@pagebreak}" @@ -806,7 +844,7 @@ y: 7.0d } { - dependencies: ["648BCF486E16CCB2"] + dependencies: ["22510C5F2386B453"] description: [ "{quests.low_voltage.lv_extractor.desc.1}" "{@pagebreak}" @@ -866,17 +904,14 @@ y: 11.0d } { - dependencies: [ - "15928F50AE80A5CF" - "32B08E6F414A00C0" - ] + dependencies: ["15928F50AE80A5CF"] dependency_requirement: "one_completed" description: [ "{quests.low_voltage.lv_oxygen.desc.1}" "{@pagebreak}" "{quests.low_voltage.lv_oxygen.desc.2}" "{@pagebreak}" - "{quests.low_voltage.lv_oxygen.desc.3" + "{quests.low_voltage.lv_oxygen.desc.3}" ] icon: "gtceu:oxygen_bucket" id: "1A77CA35F054F988" @@ -921,10 +956,7 @@ y: 9.0d } { - dependencies: [ - "5B891BA4897FD73C" - "49896161B31DB7B4" - ] + dependencies: ["5B891BA4897FD73C"] dependency_requirement: "one_completed" description: ["{quests.low_voltage.gallium_arsenide.desc}"] id: "4073577B7EF9B593" @@ -1010,7 +1042,7 @@ }] title: "{quests.low_voltage.aluminium_dust.title}" x: -9.0d - y: 8.625d + y: 8.0d } { dependencies: ["1E9BE8D3F8A602DC"] @@ -1088,7 +1120,6 @@ icon: "gtceu:lv_rock_crusher" id: "1F2359106FC95603" optional: true - shape: "heart" size: 1.0d subtitle: "{quests.low_voltage.lv_rock_crusher.subtitle}" tasks: [{ @@ -1107,8 +1138,8 @@ type: "item" }] title: "{quests.low_voltage.lv_rock_crusher.title}" - x: -2.0d - y: -6.0d + x: 3.0d + y: 3.5d } { dependencies: ["22510C5F2386B453"] @@ -1116,7 +1147,6 @@ icon: "gtceu:lv_charger_4x" id: "2DB259568F347C0E" optional: true - shape: "heart" size: 1.0d subtitle: "{quests.low_voltage.lv_turbo_charge.subtitle}" tasks: [{ @@ -1135,8 +1165,8 @@ type: "item" }] title: "{quests.low_voltage.lv_turbo_charge.title}" - x: 2.0d - y: -6.0d + x: 3.0d + y: 2.5d } { dependencies: ["22510C5F2386B453"] @@ -1144,7 +1174,6 @@ icon: "gtceu:lv_fisher" id: "3B26CA44EA955B07" optional: true - shape: "heart" size: 1.0d subtitle: "{quests.low_voltage.lv_fisher.subtitle}" tasks: [{ @@ -1163,8 +1192,8 @@ type: "item" }] title: "{quests.low_voltage.lv_fisher.title}" - x: 0.0d - y: -6.0d + x: 3.0d + y: -0.5d } { dependencies: ["7CCC1BDDE0C67F16"] @@ -1180,11 +1209,11 @@ type: "item" }] title: "Tape for Crate" - x: -3.0d - y: -4.0d + x: 7.5d + y: -0.5d } { - dependencies: ["648BCF486E16CCB2"] + dependencies: ["22510C5F2386B453"] description: ["{quests.low_voltage.lv_mixer.desc}"] id: "5B891BA4897FD73C" optional: true @@ -1192,23 +1221,34 @@ size: 2.0d subtitle: "{quests.low_voltage.lv_mixer.subtitle}" tasks: [{ - id: "27715DF608CBAE08" - item: "gtceu:lv_mixer" + id: "337A6B670842F80A" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + display: { + Name: "{\"text\":\"LV Mixer\"}" + } + "ftbfiltersystem:filter": "or(item(greate:steel_mechanical_mixer)item(gtceu:lv_mixer))" + } + } + title: "{quests.low_voltage.lv_mixer.task}" type: "item" }] title: "{quests.low_voltage.lv_mixer.title}" - x: 4.0d + x: 2.0d y: 7.0d } { + dependencies: ["12565AB92A2BF976"] description: [ "{quests.low_voltage.lv_machine_hull.desc.1}" "{@pagebreak}" "{quests.low_voltage.lv_machine_hull.desc.2}" ] id: "22510C5F2386B453" - shape: "octagon" - size: 1.5d + shape: "gear" + size: 2.0d subtitle: "{quests.low_voltage.lv_machine_hull.subtitle}" tasks: [{ id: "499CACFF0350B3CA" @@ -1217,7 +1257,7 @@ }] title: "{quests.low_voltage.lv_machine_hull.title}" x: 0.0d - y: -4.0d + y: 4.5d } { dependencies: ["15928F50AE80A5CF"] @@ -1241,10 +1281,7 @@ y: 9.0d } { - dependencies: [ - "22510C5F2386B453" - "6903C72A254A7B08" - ] + dependencies: ["648BCF486E16CCB2"] description: ["{quests.low_voltage.lv_motor.desc}"] icon: "gtceu:lv_electric_motor" id: "7EED0084BA59FED1" @@ -1258,8 +1295,8 @@ type: "item" }] title: "{quests.low_voltage.lv_motor.title}" - x: 0.0d - y: -0.75d + x: 3.0d + y: -3.0d } { dependencies: ["581CDF545E1EA1FD"] @@ -1287,6 +1324,7 @@ { dependencies: ["3E6DC423FE4A99F7"] id: "4B4F052F00435AFE" + optional: true shape: "heart" tasks: [{ id: "00E6EDB1E4C1482F" @@ -1297,7 +1335,81 @@ } type: "item" }] - x: 7.0d + x: 6.5d + y: 1.5d + } + { + dependencies: ["22510C5F2386B453"] + description: [ + "{quests.steam_age.alternator.desc.1}" + "{@pagebreak}" + "{quests.steam_age.alternator.desc.2}" + "" + "{image:tfg:textures/quests/alternator_multiblock.png width:100 height:100 align:center}" + ] + id: "2DC24661CAD557B0" + optional: true + subtitle: "{quests.steam_age.alternator.subtitle}" + tasks: [ + { + id: "5367AD306EAB07E2" + item: "createaddition:alternator" + type: "item" + } + { + id: "040F5FC6058411EE" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + display: { + Name: "{\"text\":\"LV Converter\"}" + } + "ftbfiltersystem:filter": "or(item(gtceu:lv_1a_energy_converter)item(gtceu:lv_4a_energy_converter)item(gtceu:lv_8a_energy_converter)item(gtceu:lv_16a_energy_converter))" + } + } + title: "" + type: "item" + } + ] + title: "{quests.steam_age.alternator.title}" + x: 5.5d + y: 5.5d + } + { + dependencies: ["7567E885B7166603"] + description: [ + "{quests.low_voltage.mv_hull.desc1}" + "{@pagebreak}" + "{quests.low_voltage.mv_hull.desc2}" + ] + id: "71A3D034BBA13CF0" + shape: "gear" + size: 4.0d + subtitle: "{quests.low_voltage.mv_hull.subtitle}" + tasks: [{ + id: "371A182195BD9277" + item: "gtceu:mv_machine_hull" + type: "item" + }] + title: "{quests.low_voltage.mv_hull.title}" + x: -9.0d + y: 14.0d + } + { + dependencies: ["648BCF486E16CCB2"] + description: ["{quests.low_voltage.lv_machine_casing.desc}"] + id: "12565AB92A2BF976" + shape: "octagon" + size: 2.0d + subtitle: "{quests.low_voltage.lv_machine_casing.subtitle}" + tasks: [{ + id: "7459A24E5EBE148D" + item: "gtceu:lv_machine_casing" + type: "item" + }] + title: "{quests.low_voltage.lv_machine_casing.title}" + x: 0.0d y: 1.0d } ] diff --git a/config/ftbquests/quests/chapters/questssteam_age.snbt b/config/ftbquests/quests/chapters/questssteam_age.snbt index f2fd57329..e6c121a2c 100644 --- a/config/ftbquests/quests/chapters/questssteam_age.snbt +++ b/config/ftbquests/quests/chapters/questssteam_age.snbt @@ -26,20 +26,6 @@ x: -13.5d y: 7.5d } - { - id: "00B33DFF6076A2C0" - linked_quest: "7EED0084BA59FED1" - x: -13.5d - y: 5.5d - } - { - id: "044ADF2296BC1A8F" - linked_quest: "6E186F9C57155BFA" - shape: "square" - size: 1.5d - x: -13.5d - y: 3.5d - } { id: "1F1E7097C015BE33" linked_quest: "48A8E3210B2BAE1C" @@ -1020,54 +1006,6 @@ x: -22.5d y: 12.0d } - { - dependencies: [ - "183D47F04CAEBFA7" - "3D8174C64DDC268B" - ] - description: [ - "{quests.steam_age.alternator.desc.1}" - "{@pagebreak}" - "{quests.steam_age.alternator.desc.2}" - "{image:tfg:textures/quests/alternator_multiblock.png width:100 height:100 align:center}" - ] - id: "0E57FC7FBFF1CFEB" - optional: true - shape: "square" - size: 1.5d - subtitle: "{quests.steam_age.alternator.subtitle}" - tasks: [ - { - id: "2A48D5B33BB7C9FE" - item: "createaddition:alternator" - type: "item" - } - { - id: "0115F13A8C4E6872" - item: "gtceu:lv_4a_energy_converter" - optional_task: true - type: "item" - } - ] - title: "{quests.steam_age.alternator.title}" - x: -10.0d - y: 3.5d - } - { - dependencies: ["3D8174C64DDC268B"] - description: ["{quests.steam_age.what_next.desc}"] - icon: "gtceu:lv_machine_hull" - id: "0DAE3D612E70F462" - shape: "diamond" - subtitle: "{quests.steam_age.what_next.subtitle}" - tasks: [{ - id: "759B03FB27B79731" - type: "checkmark" - }] - title: "{quests.steam_age.what_next.title}" - x: -7.0d - y: 6.0d - } { dependencies: ["51CBF7378FFAD514"] description: [ @@ -1165,21 +1103,20 @@ subtitle: "{quests.steam_age.create_tools.subtitle}" tasks: [ { - id: "272B2620E00219B5" + id: "12C909F6EB4BB615" + item: "create:goggles" + optional_task: true + type: "item" + } + { + id: "7721793B4C0AFD2C" item: { Count: 1 id: "ftbfiltersystem:smart_filter" tag: { - "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(forge:tools/wrench)" + "ftbfiltersystem:filter": "or(item(gtceu:copper_wrench)item(gtceu:bronze_wrench)item(gtceu:black_bronze_wrench)item(gtceu:bismuth_bronze_wrench)item(gtceu:wrought_iron_wrench)item(gtceu:steel_wrench))" } } - title: "Any #forge:tools/wrench" - type: "item" - } - { - id: "12C909F6EB4BB615" - item: "create:goggles" - optional_task: true type: "item" } ] diff --git a/config/ftbquests/quests/chapters/questsstoneage.snbt b/config/ftbquests/quests/chapters/questsstoneage.snbt index d0f810272..d78ad7781 100644 --- a/config/ftbquests/quests/chapters/questsstoneage.snbt +++ b/config/ftbquests/quests/chapters/questsstoneage.snbt @@ -89,12 +89,10 @@ subtitle: "{quests.stone_age.find_potable_water.subtitle}" tasks: [{ icon: "minecraft:water_bucket" - id: "73E3594A5481E63F" - observe_type: 0 - timer: 0L - title: "{quests.tasktype.lookat} {quests.stone_age.find_potable_water.task}" - to_observe: "minecraft:water" - type: "observation" + id: "3601D2311BB1383F" + stage: "tfg.stages.quests.drank_fresh_water_with_hand" + title: "{quests.stone_age.find_potable_water.task}" + type: "gamestage" }] title: "{quests.stone_age.find_potable_water.title}" x: 4.5d diff --git a/config/ftbquests/quests/chapters/queststfc_tips.snbt b/config/ftbquests/quests/chapters/queststfc_tips.snbt index 017ebfa91..862e05861 100644 --- a/config/ftbquests/quests/chapters/queststfc_tips.snbt +++ b/config/ftbquests/quests/chapters/queststfc_tips.snbt @@ -2284,6 +2284,7 @@ "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(tfc:glass_basin_blocks)" } } + optional_task: true title: "Any #tfc:glass_basin_blocks" type: "item" } diff --git a/defaultconfigs/create-server.toml b/defaultconfigs/create-server.toml index 30beb43a9..a3d5e69b6 100644 --- a/defaultconfigs/create-server.toml +++ b/defaultconfigs/create-server.toml @@ -302,8 +302,8 @@ hand_crank = 2.0 steam_engine = 32.0 creative_motor = 16384.0 - large_water_wheel = 16.0 - water_wheel = 4.0 + large_water_wheel = 32.0 + water_wheel = 8.0 windmill_bearing = 32.0 #. diff --git a/defaultconfigs/createhorsepower-server.toml b/defaultconfigs/createhorsepower-server.toml index b68cf9a5b..e65e62016 100644 --- a/defaultconfigs/createhorsepower-server.toml +++ b/defaultconfigs/createhorsepower-server.toml @@ -6,13 +6,13 @@ creatureRPMRange = 16 #How much stress small creatures can produce for the horse crank. #Range: > 1 - smallCreatureStressRange = 4 + smallCreatureStressRange = 8 #How much stress medium creatures can produce for the horse crank. #Range: > 1 - mediumCreatureStressRange = 6 + mediumCreatureStressRange = 12 #How much stress large creatures can produce for the horse crank. #Range: > 1 - largeCreatureStressRange = 8 + largeCreatureStressRange = 16 #Path Category [paths] diff --git a/defaultconfigs/greate-server.toml b/defaultconfigs/greate-server.toml index 7f31edd5c..912518982 100644 --- a/defaultconfigs/greate-server.toml +++ b/defaultconfigs/greate-server.toml @@ -78,7 +78,7 @@ fanSpeedMultiplier = 0.75 andesite_alloy_gearbox = 0.0 andesite_alloy_mechanical_press = 1.0 andesite_alloy_mechanical_mixer = 0.5 - andesite_alloy_millstone = 0.25 + andesite_alloy_millstone = 0.5 andesite_alloy_mechanical_saw = 0.5 andesite_alloy_mechanical_pump = 0.5 @@ -97,7 +97,7 @@ fanSpeedMultiplier = 0.75 steel_gearbox = 0.0 steel_mechanical_press = 2.0 steel_mechanical_mixer = 1.0 - steel_millstone = 0.5 + steel_millstone = 1.0 steel_mechanical_saw = 1.0 steel_mechanical_pump = 1.0 @@ -116,7 +116,7 @@ fanSpeedMultiplier = 0.75 aluminium_gearbox = 0.0 aluminium_mechanical_press = 3.0 aluminium_mechanical_mixer = 1.5 - aluminium_millstone = 1.0 + aluminium_millstone = 1.5 aluminium_mechanical_saw = 1.5 aluminium_mechanical_pump = 1.5 @@ -135,7 +135,7 @@ fanSpeedMultiplier = 0.75 stainless_steel_gearbox = 0.0 stainless_steel_mechanical_press = 4.0 stainless_steel_mechanical_mixer = 2.0 - stainless_steel_millstone = 1.5 + stainless_steel_millstone = 2.0 stainless_steel_mechanical_saw = 2.0 stainless_steel_mechanical_pump = 2.0 @@ -154,7 +154,7 @@ fanSpeedMultiplier = 0.75 titanium_gearbox = 0.0 titanium_mechanical_press = 5.0 titanium_mechanical_mixer = 2.5 - titanium_millstone = 2.0 + titanium_millstone = 2.5 titanium_mechanical_saw = 2.5 titanium_mechanical_pump = 2.5 @@ -173,7 +173,7 @@ fanSpeedMultiplier = 0.75 tungsten_steel_gearbox = 0.0 tungsten_steel_mechanical_press = 6.0 tungsten_steel_mechanical_mixer = 3.0 - tungsten_steel_millstone = 2.5 + tungsten_steel_millstone = 3.0 tungsten_steel_mechanical_saw = 3.0 tungsten_steel_mechanical_pump = 3.0 @@ -192,7 +192,7 @@ fanSpeedMultiplier = 0.75 rhodium_plated_palladium_gearbox = 0.0 rhodium_plated_palladium_mechanical_press = 7.0 rhodium_plated_palladium_mechanical_mixer = 3.5 - rhodium_plated_palladium_millstone = 3.0 + rhodium_plated_palladium_millstone = 3.5 rhodium_plated_palladium_mechanical_saw = 3.5 rhodium_plated_palladium_mechanical_pump = 3.5 @@ -211,7 +211,7 @@ fanSpeedMultiplier = 0.75 naquadah_alloy_gearbox = 0.0 naquadah_alloy_mechanical_press = 8.0 naquadah_alloy_mechanical_mixer = 4.0 - naquadah_alloy_millstone = 4.5 + naquadah_alloy_millstone = 4.0 naquadah_alloy_mechanical_saw = 4.0 naquadah_alloy_mechanical_pump = 4.0 @@ -230,7 +230,7 @@ fanSpeedMultiplier = 0.75 darmstadtium_gearbox = 0.0 darmstadtium_mechanical_press = 9.0 darmstadtium_mechanical_mixer = 4.5 - darmstadtium_millstone = 5.0 + darmstadtium_millstone = 4.5 darmstadtium_mechanical_saw = 4.5 darmstadtium_mechanical_pump = 4.5 @@ -249,7 +249,7 @@ fanSpeedMultiplier = 0.75 neutronium_gearbox = 0.0 neutronium_mechanical_press = 10.0 neutronium_mechanical_mixer = 5.0 - neutronium_millstone = 5.5 + neutronium_millstone = 5.0 neutronium_mechanical_saw = 5.0 neutronium_mechanical_pump = 5.0 @@ -284,7 +284,7 @@ fanSpeedMultiplier = 0.75 #. #Configure the max stress a kinetic block of this tier can support. #Range: > -2147483648 - andesiteMaxCapacity = 16 + andesiteMaxCapacity = 32 #. #Settings related to steel tier machines diff --git a/kubejs/.README IF TRANSLATING b/kubejs/README IF TRANSLATING.md similarity index 78% rename from kubejs/.README IF TRANSLATING rename to kubejs/README IF TRANSLATING.md index dc2aafa30..65b613dd6 100644 --- a/kubejs/.README IF TRANSLATING +++ b/kubejs/README IF TRANSLATING.md @@ -2,8 +2,11 @@ Files located at "assets/x/lang" (where x is the modid youre looking to translat This means that any changes done to the files in "assets/x/lang" WILL BE OVERWRITTEN the next time the tool is ran! If you wish to properly write localization for an already supported/translated mod: -1. Go to "minecraft/tools/LanguageMerger/LanguageFiles" +1. Go to the [Tools-Modern] repo 2. Go to the folder of your mod of choice. 3. Open the Localization folder for your language, these are the actual locales supported by the mod (ie: en_us) * If youre looking to add a new language, create a new folder with your chosen locale -4. Edit, or add a new JSON file with your language values. \ No newline at end of file +4. Edit, or add a new JSON file with your language values. + + +[Tools-Modern]: https://github.com/TerraFirmaGreg-Team/Tools-Modern \ No newline at end of file diff --git a/kubejs/assets/emi/recipe/filters/categories.json b/kubejs/assets/emi/recipe/filters/categories.json index 617dcf1a3..19a43d2d5 100644 --- a/kubejs/assets/emi/recipe/filters/categories.json +++ b/kubejs/assets/emi/recipe/filters/categories.json @@ -66,6 +66,9 @@ { "category": "greate:automatic_packing" }, + { + "category": "greate:packing" + }, { "id": "/emi:/crafting/repairing/[^*]+/" }, diff --git a/kubejs/assets/gtceu/lang/en_us.json b/kubejs/assets/gtceu/lang/en_us.json index fa5dd0f72..218963003 100644 --- a/kubejs/assets/gtceu/lang/en_us.json +++ b/kubejs/assets/gtceu/lang/en_us.json @@ -5,6 +5,10 @@ "block.gtceu.ender_dome": "Enderarium", "block.gtceu.greenhouse": "Greenhouse", "block.gtceu.steam_bloomery": "Steam Bloomery", + "block.gtceu.black_bronze_crate": "Black Bronze Crate", + "block.gtceu.black_bronze_drum": "Black Bronze Drum", + "block.gtceu.bismuth_bronze_crate": "Bismuth Bronze Crate", + "block.gtceu.bismuth_bronze_drum": "Bismuth Bronze Drum", "gtceu.nether_dome": "Netherarium", "gtceu.ender_dome": "Enderarium", "gtceu.greenhouse": "Electric Greenhouse", diff --git a/kubejs/assets/minecraft/textures/block/sponge.png b/kubejs/assets/minecraft/textures/block/sponge.png new file mode 100644 index 0000000000000000000000000000000000000000..013102b5720290865b5f63eab7f7f4203b8a0202 GIT binary patch literal 463 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s7PPZ!4!i{8-5hDDDJcwFyiooUi~FsY1d)t4s>GxrvD-APer|FB{U*F~*XC!L5C zZb_b_enJQO|I2@Q{`vFk_Un?ztr-mYD()}drBtN$ocDco(LIf&6E2;3`>n6z!qYv9 zN?R|^Vw_Xl^LTC$7sI{p7SDb7LzikVU9jrO9z$P#2A7sO+oNV&>gkYaDY|!}^6{2> z8|H%Ddzm-roL?pJ*rD1>b8B4bQx=&kK1c7h7dVCnUd>uPcg^n~Kca27zjDak)^OXv zwMBy6N_)mKcijxzKd)9nbYFv~;cS?xn?hOUQ_TzB0(!Cm6e(kl7mzq5^>ZZMAh{h&7f zcy?hI$Mx6J=Pai^jr@N2cinyF2T$vt=P7T`cspNXsX$YRwEBY$|4)BPnI(6`;>yW0 zZGnb+G|yJEDaPnyYmhk@VNT->cpfJc$roD*l%|Dzftn>*?An<4{z`t44uMoRq67h z$Dbz1$H(8_&oJ}ku6v9tN)Mj7@xAx+Pp7n`v=p_qvMwywU#l|&r!gg@?WpEw(@1?* z_Iu&h#lNQ*EpB3%EN48qBVkLa(xUq9We?unP4DW^J9}3%_1(6Roz?ylf>Vr=)3%fq z1etk;y25UoMtvDBXMc*2TYPdZNVDBwxjDml0iYYSt7r$p!~_{M&)+z`fi;&b6jr5&C@+cAJ|^pm#@F(%$tP{_A0&%Q$uc> z`=!Rd_wTs1EhsH3)+$wXYD#(f{q5(Dotd#^8of{xX7h*(&N47CFnGH9xvX ะ—ั–ะณะฝัƒั‚ะธ -> ะจั‚ะฐะผะฟัƒะฒะฐั‚ะธ.$(br2)ะŸั–ัะปั ั‚ะพะณะพ, ัะบ ะฝะฐัˆะต ะทะฝะฐั‡ะตะฝะฝั Work ะดะพััะณะฝะต ะฑะฐะถะฐะฝะพะณะพ ะทะฝะฐั‡ะตะฝะฝั, ะฟั€ะพัั‚ะพ ะฒะธะบะพะฝะฐะนั‚ะต ะฝะตะพะฑั…ั–ะดะฝั– ะบั€ะพะบะธ, ัะบั– ะดะปั ะณะพะปะพะฒะบะธ ะบะฐะนะปะฐ ั” ั‚ะฐะบะธะผะธ: ะŸั€ะพั‚ัะณะฝัƒั‚ะธ-> ะ—ั–ะณะฝัƒั‚ะธ -> ะจั‚ะฐะผะฟัƒะฒะฐั‚ะธ. ะ† ะฒัƒะฐะปั! ะœะธ ะพั‚ั€ะธะผะฐะปะธ ั–ะดะตะฐะปัŒะฝะพ ะฒะธะบัƒะฒะฐะฝะธะน ะฟั€ะตะดะผะตั‚!" + }, + { + "type": "patchouli:image", + "images": [ + "tfg:textures/gui/field_guide/anvil_working_guide/wrought_iron_pickaxe_head_no_work.png", + "tfg:textures/gui/field_guide/anvil_working_guide/wrought_iron_pickaxe_head_some_work.png", + "tfg:textures/gui/field_guide/anvil_working_guide/wrought_iron_pickaxe_head_complete.png" + ], + "text": "ะ—ะปะธั‚ะพะบ ะฑะตะท ั€ะพะฑะพั‚ะธ->ะ”ะพััะณะฝัƒั‚ะพ ะฑะฐะถะฐะฝะพะณะพ ะทะฝะฐั‡ะตะฝะฝั ั€ะพะฑะพั‚ะธ->ะ’ะธะบะพะฝัƒั”ะผะพ ะฝะตะพะฑั…ั–ะดะฝั– ะบั€ะพะบะธ ะดะปั ะฝะฐัˆะพะณะพ ะตะปะตะผะตะฝั‚ะฐ." + }, + { + "type": "patchouli:text", + "title": "ะŸั€ะธะบะปะฐะดะธ", + "text": "ะ”ะฐะฒะฐะนั‚ะต ั€ะพะทะณะปัะฝะตะผะพ ั†ะตะน ะฟั€ะพั†ะตั ะฝะฐ ะฟั€ะธะบะปะฐะดั– ั–ะฝัˆะธั… ะฟั€ะตะดะผะตั‚ั–ะฒ, ั‚ะฐะบะธั… ัะบ ะขะฐั€ั–ะปะบะฐ ะฐะฑะพ ะกั‚ั€ะธะถะตะฝัŒ. ะ—ะฝะพะฒัƒ ะถ ั‚ะฐะบะธ, ั†ั–ะปัŒะพะฒะฐ ั€ะพะฑะพั‚ะฐ ะฒั–ะดั€ั–ะทะฝัั”ั‚ัŒัั ะฒั–ะด ัะฒั–ั‚ะพะฒะพะณะพ ะฝะฐัั–ะฝะฝั, ั‚ะพะผัƒ ั—ั…ะฝั– ะทะฝะฐั‡ะตะฝะฝั ะฑัƒะดัƒั‚ัŒ ะฒั–ะดั€ั–ะทะฝัั‚ะธัั ัƒ ะฒะฐัˆะพะผัƒ ัะฒั–ั‚ั–.$(br)ะขะฐั€ั–ะปะบะฐ ะฆั–ะปัŒะพะฒะต ะทะฝะฐั‡ะตะฝะฝั: $(bold)111$()$(br)ะะตะพะฑั…ั–ะดะฝั– ะบั€ะพะบะธ: ะฃะดะฐั€ x 3, ะ‘ัƒะดัŒ-ัะบะธะน ะฟะพั€ัะดะพะบ$(br)\"ะฝะตะพะฑั…ั–ะดะฝะพั— ั€ะพะฑะพั‚ะธ\": -3 x 3 = -9$(br)ะŸะพั…ั–ะดะฝะต ะทะฝะฐั‡ะตะฝะฝั: 111 + 9 = 120.$(br)ะ”ะพััะณะฝะตะฝะฝั ะทะฝะฐั‡ะตะฝะฝั: (ะ ัƒะฑะฐั‚ะธ x 5)->(ะ’ะธัะฐะดะธั‚ะธ x 2)->(ะจั‚ะฐะผะฟัƒะฒะฐั‚ะธ x 2)$(br)ะžั‚ั€ะธะผะฐะฝะฝั ะฟั€ะตะดะผะตั‚ะฐ: 120 - (ะ›ะตะณะบะธะน ัƒะดะฐั€ x 3) == $(bold)111$(). ะžะฑะธะดะฒั– ะฒะธะผะพะณะธ ะฒะธะบะพะฝะฐะฝะพ." + }, + { + "type": "patchouli:text", + "text": "ะฆั–ะปัŒะพะฒะต ะทะฝะฐั‡ะตะฝะฝั ัั‚ั€ะธะถะฝั:: $(bold)78$()$(br)ะะตะพะฑั…ั–ะดะฝั– ะบั€ะพะบะธ: ะŸั€ะพั‚ัะณะฝัƒั‚ะธ->ะŸั€ะพั‚ัะณะฝัƒั‚ะธ->ะ—ั–ะณะฝัƒั‚ะธ$(br)\"ะฝะตะพะฑั…ั–ะดะฝะพั— ั€ะพะฑะพั‚ะธ\": (-15 x 2) + 7 = -23$(br)ะŸะพั…ั–ะดะฝะต ะทะฝะฐั‡ะตะฝะฝั: 78 + 23 = 101.$(br)ะ”ะพััะณะฝะตะฝะฝั ะทะฝะฐั‡ะตะฝะฝั: (ะ ัƒะฑะฐั‚ะธ x 5)->(ะ—ั–ะณะฝัƒั‚ะธ x 3)$(br)ะžั‚ั€ะธะผะฐะฝะฝั ะฟั€ะตะดะผะตั‚ะฐ: 101 - 15 - 15 + 7 = 101." + }, + { + "type": "patchouli:text", + "title": "ะ†ะฝัˆั– ั†ั–ะบะฐะฒะธะฝะบะธ", + "text": "ะฏะบั‰ะพ ะพะดะธะฝ ะท ะพะฑะพะฒ'ัะทะบะพะฒะธั… ะบั€ะพะบั–ะฒ ะฟะพั€ะพะถะฝั–ะน, ั†ะต ะพะทะฝะฐั‡ะฐั”, ั‰ะพ ะฒั–ะฝ ั” ัˆะฐะปะตะฝะพัŽ ะบะฐั€ั‚ะพัŽ, ะผะพะถะฝะฐ ะฒะธะบะพั€ะธัั‚ะพะฒัƒะฒะฐั‚ะธ ะฑัƒะดัŒ-ัะบะธะน ะบั€ะพะบ.$(br2)ะฏะบั‰ะพ ัƒ ะฒะฐั ะฝะต ะฒะธะนัˆะปะพ ะท ั€ะพะทั€ะฐั…ัƒะฝะบะฐะผะธ, ะฒะธ ะทะฐะฒะถะดะธ ะผะพะถะตั‚ะต ั€ะพะทะฟะปะฐะฒะธั‚ะธ ั– ะฒั–ะดะปะธั‚ะธ ะฒะฐัˆ ะฟั€ะตะดะผะตั‚ ะฝะฐะทะฐะด ัƒ ะทะปะธั‚ะพะบ, ั†ะต ะทะฝั–ะผะต ั‚ะตะณ ยซะฟั€ะฐั†ัŽะฒะฐะฒยป ะท ะฟั€ะตะดะผะตั‚ะฐ, ั‰ะพ ะดะพะทะฒะพะปะธั‚ัŒ ะฒะฐะผ ัะฟั€ะพะฑัƒะฒะฐั‚ะธ ั‰ะต ั€ะฐะท, ั‰ะพะฑ ั–ะดะตะฐะปัŒะฝะพ ะฒะธะบัƒะฒะฐั‚ะธ ะนะพะณะพ." + }, + { + "type": "patchouli:empty" + }, + { + "type": "patchouli:empty" + }, + { + "type": "patchouli:text", + "text": "ะ’ั–ั‚ะฐั”ะผะพ ะท ะดะพััะณะฝะตะฝะฝัะผ ะบั–ะฝั†ั, ัะบั‰ะพ ะฒะธ ั” ัƒั‡ะฐัะฝะธะบะพะผ, ัะบะธะน ะฑะฐะถะฐั” ะฟะพะฒั‚ะพั€ะธั‚ะธ ั„ะพั‚ะพะณั€ะฐั„ั–ั— ะฒ ั†ัŒะพะผัƒ ะฟะพัั–ะฑะฝะธะบัƒ, ะฝะฐัั–ะฝะฝั, ะฒะธะบะพั€ะธัั‚ะฐะฝะต ะฟั–ะด ั‡ะฐั ะนะพะณะพ ะฝะฐะฟะธัะฐะฝะฝั - $(bold)-7291708953208913102$(), ะ’ะธ ั‚ะฐะบะพะถ ะผะพะถะตั‚ะต ัั‚ะฒะพั€ะธั‚ะธ ั‚ะฒะพั€ั‡ะธะน ัะฒั–ั‚, ั‰ะพะฑ ะฟั€ะพั‚ะตัั‚ัƒะฒะฐั‚ะธ ะฐะปะณะพั€ะธั‚ะผ ัะฐะผะพัั‚ั–ะนะฝะพ!$(br2)$(br)ะขะฐะบะพะถ... ัะบั‰ะพ ะฒะธ ะฒะถะต ั‚ัƒั‚, ัะบั‰ะพ ะฒะธ ะฝะต ะผะพะถะตั‚ะต ะทั€ะพะฑะธั‚ะธ ะฒัั– ั€ะพะทั€ะฐั…ัƒะฝะบะธ ัะฐะผะพัั‚ั–ะนะฝะพ, ะฒะธ ะทะฐะฒะถะดะธ ะผะพะถะตั‚ะต ัะบะพั€ะธัั‚ะฐั‚ะธัั $(l:https://adrianmiller99.github.io/tfg-anvil-calculator/src/index.html)TFC Anvil Calculator$()..." + } + ] +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_tips/blast_furnace_tips.json b/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_tips/blast_furnace_tips.json index 503524741..c64373d1e 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_tips/blast_furnace_tips.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_tips/blast_furnace_tips.json @@ -24,12 +24,6 @@ "type": "patchouli:text", "text": "ะฏะบั‰ะพ ะผะตั‚ะฐะป ะณะฐั€ัั‡ะธะน, ะบะพะปะธ ะนะพะณะพ ะดะพะดะฐัŽั‚ัŒ ัƒ ะดะพะผะตะฝะฝัƒ ะฟั–ั‡, ั‚ะพ ะดะปั ะดะพััะณะฝะตะฝะฝั ะฑะปะธัะบัƒั‡ะพั— ะฑั–ะปะธะทะฝะธ ะทะฝะฐะดะพะฑะธั‚ัŒัั ะผะตะฝัˆะต ั‡ะฐััƒ. ะŸะพะดัƒะผะฐะนั‚ะต ะฟั€ะพ ะฝะฐะณั€ั–ะฒะฐะฝะฝั ะผะตั‚ะฐะปัƒ ะฒ $(l:tfc:mechanics/charcoal_forge)ะ’ัƒะณั–ะปัŒะฝั–ะน ะบัƒะทะฝั–$() ะฟะตั€ะตะด ั‚ะธะผ, ัะบ ะฟะพะบะปะฐัั‚ะธ ะนะพะณะพ ะฒ ัƒะถะต ะณะฐั€ัั‡ัƒ ะฟั–ั‡, ั‰ะพะฑ ะทะฐะพั‰ะฐะดะธั‚ะธ ั‡ะฐั, ะพัะพะฑะปะธะฒะพ ะฒ ะฝะตะฒะตะปะธะบะธั… ะดะพะผะตะฝะฝะธั… ะฟะตั‡ะฐั…, ัะบั– ะพะฑั€ะพะฑะปััŽั‚ัŒ ะผะตะฝัˆัƒ ะบั–ะปัŒะบั–ัั‚ัŒ ะผะตั‚ะฐะปัƒ ะทะฐ ะพะดะธะฝ ั€ะฐะท." }, - { - "type": "patchouli:spotlight", - "title": "ะ”ะพะฟัƒัั‚ะธะผะธะน ะ’ั…ั–ะด", - "item": "gtceu:iron_dust", - "text": "ะฃ ะดะพะผะตะฝะฝั–ะน ะฟะตั‡ั– ะฟั€ะธะนะผะฐัŽั‚ัŒัั ะปะธัˆะต ะฟะตะฒะฝั– ัั‚ะฐะดั–ั— ะฟะตั€ะตั€ะพะฑะปะตะฝะธั… ั€ัƒะด. $(thing)ะ ัƒะดะฝะธะน ะŸะธะป$(), $(thing)ะกะธั€ะฐ ะ ัƒะดะฐ$(), ั‚ะฐ $(thing)ะ›ะธั‚ั–/ะšะพะฒะฐะฝั– ะ—ะปะธั‚ะบะธ$() ะฟั€ะฐั†ัŽัŽั‚ัŒ, ั‚ะพะดั– ัะบ $(thing)ะŸะพะดั€ั–ะฑะฝะตะฝะฐ$(), $(thing)ะะตั‡ะธัั‚ะฐ$(), ะฐะฑะพ ั–ะฝัˆั– ัั‚ะฐะดั–ั— ะฟะตั€ะตั€ะพะฑะบะธ - ะฝั–. ะะปะต ะฒะฐะผ ะดั–ะนัะฝะพ ัะปั–ะด $(l:tfc:tfg_ores/ore_basics#processing)ะžะฑั€ะพะฑะธั‚ะธ$() ะฒะฐัˆั– ั€ัƒะดะธ ะฝะฐ ะฟะธะป." - }, { "type": "patchouli:spotlight", "title": "ะะฒั‚ะพะผะฐั‚ะธะทะฐั†ั–ั", @@ -38,11 +32,11 @@ }, { "type": "patchouli:text", - "text": "ะ’ะธ ะผะพะถะตั‚ะต ะฒั–ะดะบะฐั‡ัƒะฒะฐั‚ะธ ั€ั–ะดะธะฝัƒ ะฑะตะทะฟะพัะตั€ะตะดะฝัŒะพ ะท ะดะพะผะตะฝะฝะพั— ะฟะตั‡ั– ะทะฐ ะดะพะฟะพะผะพะณะพัŽ ั„ัƒะฝะบั†ั–ั— Create $(item)ะœะตั…ะฐะฝั–ั‡ะฝะพั— ะฟะพะผะฟะธ$(). ะŸะตั€ะตะบะฐั‡ัƒะนั‚ะต ั€ั–ะดะธะฝัƒ ะฝะฐ $(l:tfc:tfcchannelcasting/channel_casting)ะคะพั€ะผัƒะฒะฐะปัŒะฝะธะน ัั‚ั–ะป$() ั– ะฒะธั‚ัะณัƒะนั‚ะต ะทะปะธั‚ะบะธ ะทะฐ ะดะพะฟะพะผะพะณะพัŽ ะฑัƒะฝะบะตั€ะฐ ะฐะฑะพ ะถะพะปะพะฑะฐ: ะ›ะตะณะบะฐ ะฐะฒั‚ะพะผะฐั‚ะธะทะฐั†ั–ั!$(br2)ะ’ะธ ั‚ะฐะบะพะถ ะผะพะถะตั‚ะต ะฐะฒั‚ะพะผะฐั‚ะธะทัƒะฒะฐั‚ะธ ั€ะพะฑะพั‚ัƒ ะท ัะธะปัŒั„ะพะฝะพะผ ะทะฐ ะดะพะฟะพะผะพะณะพัŽ $(item)ะ ะพะทะณะพั€ั‚ะฐะปัŒะฝะธะบะฐ$()! ะขั–ะปัŒะบะธ ะฑัƒะดัŒั‚ะต ะพะฑะตั€ะตะถะฝั–, ะพัะบั–ะปัŒะบะธ ะฒะธะบะพั€ะธัั‚ะฐะฝะฝั ัะธะปัŒั„ะพะฝั–ะฒ ะฝะฐะดะผั–ั€ะฝะพ ะฒะธั‚ั€ะฐั‡ะฐั” ะฑั–ะปัŒัˆะต ะฟะฐะปะธะฒะฐ ั– ัˆะฒะธะดัˆะต ะปะฐะผะฐั” ะฒะฐัˆัƒ $(thing)ั„ัƒั€ะผัƒ$().$(br2)ะ’ะธ ะผะพะถะตั‚ะต ะพะฑั€ะพะฑะปัั‚ะธ ะพั‚ั€ะธะผะฐะฝะธะน $(item)ะงะฐะฒัƒะฝ$() ั‚ะฐ $(item)ะ’ะธัะพะบะพะฒัƒะณะปะตั†ะตะฒัƒ ัั‚ะฐะปัŒ$() ะทะฐ ะดะพะฟะพะผะพะณะพัŽ $(thing)ะšะพะฒะฐะปัŒััŒะบะพะณะพ ะผะพะปะพั‚ะฐ$()." + "text": "ะ’ะธ ะผะพะถะตั‚ะต ะฒั–ะดะบะฐั‡ัƒะฒะฐั‚ะธ ั€ั–ะดะธะฝัƒ ะฑะตะทะฟะพัะตั€ะตะดะฝัŒะพ ะท ะดะพะผะตะฝะฝะพั— ะฟะตั‡ั– ะทะฐ ะดะพะฟะพะผะพะณะพัŽ ั„ัƒะฝะบั†ั–ั— Create $(item)Mechanical Pump$(). ะŸะตั€ะตะบะฐั‡ัƒะนั‚ะต ั€ั–ะดะธะฝัƒ ะฝะฐ $(l:tfc:tfcchannelcasting/channel_casting)ะคะพั€ะผะฐ ะดะปั ะฒะธะปะธะฒะบัƒ$() ั– ะฒะธะนะผะฐะนั‚ะต ะทะปะธั‚ะบะธ ะทะฐ ะดะพะฟะพะผะพะณะพัŽ ะปั–ะนะบะธ ะฐะฑะพ ะถะพะปะพะฑะฐ: ะ›ะตะณะบะฐ ะฐะฒั‚ะพะผะฐั‚ะธะทะฐั†ั–ั!$(br2)ะ’ะธ ั‚ะฐะบะพะถ ะผะพะถะตั‚ะต ะฐะฒั‚ะพะผะฐั‚ะธะทัƒะฒะฐั‚ะธ ั€ะพะฑะพั‚ัƒ ะท ัะธะปัŒั„ะพะฝะพะผ ะทะฐ ะดะพะฟะพะผะพะณะพัŽ $(item)ะ ะพะทะณะพั€ั‚ะฐะปัŒะฝะธะบะฐ$()! ะขั–ะปัŒะบะธ ะฑัƒะดัŒั‚ะต ะพะฑะตั€ะตะถะฝั–, ะพัะบั–ะปัŒะบะธ ะฒะธะบะพั€ะธัั‚ะฐะฝะฝั ัะธะปัŒั„ะพะฝั–ะฒ ะฝะฐะดะผั–ั€ะฝะพ ัะฟะพะถะธะฒะฐั” ะฑั–ะปัŒัˆะต ะฟะฐะปะธะฒะฐ ั– ัˆะฒะธะดัˆะต ะปะฐะผะฐั” ะฒะฐัˆัƒ $(thing)ั„ัƒั€ะผัƒ$().$(br2)ะ’ะธ ะผะพะถะตั‚ะต ะพะฑั€ะพะฑะปัั‚ะธ ะพั‚ั€ะธะผะฐะฝะธะน $(item)ะงะฐะฒัƒะฝ$() ั– $(item)ะ’ะธัะพะบะพะฒัƒะณะปะตั†ะตะฒัƒ ะกั‚ะฐะปัŒ$() ะทะฐ ะดะพะฟะพะผะพะณะพัŽ $(thing)ะšะพะฒะฐะปัŒััŒะบะพะณะพ ะœะพะปะพั‚ะฐ$()." }, { "type": "patchouli:text", - "text": "ะ’ะธ ะผะพะถะตั‚ะต ะฐะฒั‚ะพะผะฐั‚ะธั‡ะฝะพ ะทะฐะผั–ะฝะธั‚ะธ ะทะปะฐะผะฐะฝั– ั„ัƒั€ะผะธ ะฝะฐ ะฑัƒะฝะบะตั€, ัะฟั€ัะผะพะฒะฐะฝะธะน ะฒ ะดะพะผะตะฝะฝัƒ ะฟั–ั‡." + "text": "ะ’ะธ ะผะพะถะตั‚ะต ะฐะฒั‚ะพะผะฐั‚ะธั‡ะฝะพ ะทะฐะผั–ะฝะธั‚ะธ ะทะปะฐะผะฐะฝั– ั„ัƒั€ะผะธ ะฝะฐ ะปั–ะนั†ั–, ัะฟั€ัะผะพะฒะฐะฝะธะน ะฒ ะดะพะผะตะฝะฝัƒ ะฟั–ั‡." } ] } \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_tips/faqs.json b/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_tips/faqs.json index 3524bdbe8..f28896941 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_tips/faqs.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_tips/faqs.json @@ -41,7 +41,7 @@ }, { "type": "patchouli:text", - "text": "ะะฐะนัˆะฒะธะดัˆะต ะฟั€ะธะณะพั‚ัƒะฒะฐั‚ะธ ะปะฐั‚ะตะบั ัƒ $(l:firmalife/oven_appliances#vat)Vat$().ะŸะพั”ะดะฝัƒะนั‚ะต ะปะฐั‚ะตะบั ะท $(item)ะกั–ั€ะบะพัŽ$() ะฟะธะป ัƒ ั‡ะฐะฝ (ะฟะพะบะปะฐะดั–ั‚ัŒ GregTech ัƒ ะ–ะพั€ะฝะพ, ั‰ะพะฑ ะพั‚ั€ะธะผะฐั‚ะธ TFC), ะดะพะดะฐะนั‚ะต ั‚ะตะฟะปะฐ ั– $(bold)ะทะฐะบั€ะธะนั‚ะต ะบั€ะธัˆะบัƒ$() ะฝะฐ ั‡ะฐะฝั– ะท $(item)$(k:sneak)$() + $(item)$(k:use)$().$(br2)ะ’ะธ ะผะพะถะตั‚ะต ะฐะฒั‚ะพะผะฐั‚ะธะทัƒะฒะฐั‚ะธ ั†ะต ะฟั–ะทะฝั–ัˆะต ะทะฐ ะดะพะฟะพะผะพะณะพัŽ $(thing)LV ะฆะตะฝั‚ั€ะธั„ัƒะณะธ$()." + "text": "ะะฐะนัˆะฒะธะดัˆะต ะฟั€ะธะณะพั‚ัƒะฒะฐั‚ะธ ะปะฐั‚ะตะบั ัƒ $(l:firmalife/oven_appliances#vat)ะงะฐะฝ$().ะŸะพั”ะดะฝัƒะนั‚ะต ะปะฐั‚ะตะบั ะท $(item)ะกั–ั€ะบะพัŽ$() ะฟะธะป ัƒ ั‡ะฐะฝ (ะฟะพะบะปะฐะดั–ั‚ัŒ GregTech ัƒ ะ–ะพั€ะฝะพ, ั‰ะพะฑ ะพั‚ั€ะธะผะฐั‚ะธ TFC), ะดะพะดะฐะนั‚ะต ั‚ะตะฟะปะฐ ั– $(bold)ะทะฐะบั€ะธะนั‚ะต ะบั€ะธัˆะบัƒ$() ะฝะฐ ั‡ะฐะฝั– ะท $(item)$(k:sneak)$() + $(item)$(k:use)$().$(br2)ะ’ะธ ะผะพะถะตั‚ะต ะฐะฒั‚ะพะผะฐั‚ะธะทัƒะฒะฐั‚ะธ ั†ะต ะฟั–ะทะฝั–ัˆะต ะทะฐ ะดะพะฟะพะผะพะณะพัŽ $(thing)LV ะฆะตะฝั‚ั€ะธั„ัƒะณะธ$()." } ] } \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_tips/lv_machines.json b/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_tips/lv_machines.json index 3964824c6..6846629f9 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_tips/lv_machines.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/uk_ua/entries/tfg_tips/lv_machines.json @@ -11,68 +11,68 @@ { "type": "patchouli:spotlight", "item": "gtceu:lv_mixer", - "title": "ะ—ะผั–ัˆัƒะฒะฐั‡", + "title": "ะ—ะผั–ัˆัƒะฒะฐั‡(Mixer)", "text": "$(item)ะ—ะผั–ัˆัƒะฒะฐั‡$() ั€ะพะฑะธั‚ัŒ ะบะพะปัŒะพั€ะพะฒัƒ ัั‚ะฐะปัŒ ะฝะฐะฑะฐะณะฐั‚ะพ ะดะตัˆะตะฒัˆะพัŽ.$(br2)ะšั–ะฝะตั‚ะธั‡ะฝะธะน ะทะผั–ัˆัƒะฒะฐั‡ ะฒะธะผะฐะณะฐั” ัะบ SU, ั‚ะฐะบ ั– EU (ะฐ ั‚ะฐะบะพะถ ะผะฐั” ะฒะธัะพะบะธะน ะฒะฟะปะธะฒ ะฝะฐะฟั€ัƒะณะธ ั– ะฟะพะฒะธะฝะตะฝ ะฟั€ะฐั†ัŽะฒะฐั‚ะธ ะฝะฐ 64 ะพะฑ/ั…ะฒ), ะฐะปะต ะฟั€ะฐั†ัŽั” ะฒะดะฒั–ั‡ั– ัˆะฒะธะดัˆะต, ะฝั–ะถ ั‡ะธัั‚ะพ ะตะปะตะบั‚ั€ะธั‡ะฝะธะน.$(br)ะงะธ ะฒะฐั€ั‚ะพ ั†ะต ั‚ะพะณะพ, ะฒะธั€ั–ัˆัƒะฒะฐั‚ะธ ะฒะฐะผ!$(br2)ะฃ ะฝัŒะพะผัƒ ั‚ะฐะบะพะถ ั” ั€ะตั†ะตะฟั‚ ะฟั€ะธะณะพั‚ัƒะฒะฐะฝะฝั $(thing)ะ“ะปะพัƒัั‚ะพัƒะฝ$().$(br)" }, + { + "type": "patchouli:spotlight", + "title": "ะ”ัƒะณะพะฒะฐ ะŸั–ั‡(Arc Furnace)", + "item": "gtceu:lv_arc_furnace", + "text": "$(item)ะ”ัƒะณะพะฒะฐ ะฟั–ั‡$() cะผะพะถะต ะฟะตั€ะตั‚ะฒะพั€ะธั‚ะธ ะฒะฐัˆ ะบะพะปัŒะพั€ะพะฒะธะน ัั‚ะฐะปะตะฒะธะน ะฟะธะป ะท ะผั–ะบัะตั€ะฐ ะฝะฐ ะทะปะธั‚ะบะธ, ั‡ะฐะฒัƒะฝ - ะฝะฐ $(thing)ะšะพะฒะบะต ะ—ะฐะปั–ะทะพ$(), ะฟั–ัะพะบ - ะฝะฐ $(thing)ะกะบะปะพ$(), ะฐ ะผั–ะดัŒ - ะฝะฐ $(thing)ะžะฑะฟะฐะปะตะฝะฐ ะผั–ะดัŒ$(). ะžะดะฝะฐะบ ะดะปั ะฒัั–ั… ั€ะตั†ะตะฟั‚ั–ะฒ ะฟะพั‚ั€ั–ะฑะตะฝ $(thing)ะšะธัะตะฝัŒ$(), ั‚ะพะผัƒ ะฒั–ะฝ ะผะฐั€ะฝะธะน ะฑะตะท $(item)ะ•ะปะตะบั‚ั€ะพะปั–ะทะตั€ะฐ$() ะฐะฑะพ $(item)ะฆะตะฝั‚ั€ะธั„ัƒะณะธ$()." + }, { "type": "patchouli:spotlight", "item": "gtceu:lv_assembler", - "title": "ะ—ะฑะธั€ะฐั‡", - "text": "$(item)ะ—ะฑะธั€ะฐั‡$() ั” ะดัƒะถะต ะดะพั€ะพะณะพัŽ ะผะฐัˆะธะฝะพัŽ, ะฐะปะต ะผะพะถะต ะฒะธะณะพั‚ะพะฒะปัั‚ะธ ะบะพั€ะฟัƒัะธ LV ะปะธัˆะต ะทั– \n 8 ัั‚ะฐะปั–(ั…ะพั‡ะฐ ั†ะต, ะนะผะพะฒั–ั€ะฝะพ, ะทะผั–ะฝะธั‚ัŒัั ะฒ ะผะฐะนะฑัƒั‚ะฝั–ั… ะฒะตั€ัั–ัั…) ั– ะดะตัˆะตะฒัˆั– ะตะปะตะบั‚ั€ะพะฝะฝั– ะบะพะผะฟะพะฝะตะฝั‚ะธ, ั‚ะฐะบั– ัะบ $(thing)ะ’ะฐะบัƒัƒะผะฝั– ะขั€ัƒะฑะบะธ$() ั‚ะฐ $(thing)ะ ะตะทะธัั‚ะพั€ะธ$()." + "title": "ะ—ะฑะธั€ะฐั‡(Assembler)", + "text": "$(item)ะ—ะฑะธั€ะฐั‡$() ั” ะดัƒะถะต ะดะพั€ะพะณะพัŽ ะผะฐัˆะธะฝะพัŽ, ะฐะปะต ะผะพะถะต ัั‚ะฒะพั€ัŽะฒะฐั‚ะธ ะดะตัˆะตะฒัˆั– ะตะปะตะบั‚ั€ะพะฝะฝั– ะบะพะผะฟะพะฝะตะฝั‚ะธ, ั‚ะฐะบั– ัะบ $(thing)ะ’ะฐะบัƒัƒะผะฝั– ะขั€ัƒะฑะบะธ$() ั‚ะฐ $(thing)ะ ะตะทะธัั‚ะพั€ะธ$()." }, { "type": "patchouli:spotlight", "item": "gtceu:lv_bender", - "title": "ะ‘ะตะฝะดะตั€", - "text": "$(item)ะ‘ะตะฝะดะตั€$() ะผะพะถะต ัะบะปะฐัั‚ะธ 1:1 $(thing)ะŸะปะฐัั‚ะธะฝะธ$() ะท ะพะดะฝะพะณะพ ะทะปะธั‚ะบะฐ. ะะฐั€ะตัˆั‚ั–, ะฑั–ะปัŒัˆะต ะฝั–ัะบะธั… ะฐะทะฐั€ั‚ะฝะธั… ั–ะณะพั€ ะท ะผะตั…ะฐะฝั–ั‡ะฝะธะผ ะฟั€ะตัะพะผ!$(br2)ะ’ั–ะฝ ั‚ะฐะบะพะถ ะผะพะถะต ะทั€ะพะฑะธั‚ะธ $(thing)ะขะพะฝะบั– ะปะธัั‚ะธ$() ะดะปั ั‚ะฐะบะธั… ั€ะตั‡ะตะน, ัะบ $(l:tfg_tips/infinite_resources)ะจะบั–ะฒ ะจะปะฐะฝะณะฐ$()." + "title": "ะ‘ะตะฝะดะตั€(Bender)", + "text": "$(item)ะ‘ะตะฝะดะตั€$() ะผะพะถะต ะทั€ะพะฑะธั‚ะธ ะท ะพะดะฝะพะณะพ ะทะปะธั‚ะบะฐ $(thing)ะŸะปะฐัั‚ะธะฝะธ$() ัƒ ะฟั€ะพะฟะพั€ั†ั–ั— 1:1. ะะฐั€ะตัˆั‚ั–, ะฑั–ะปัŒัˆะต ะฝั–ัะบะธั… ะฐะทะฐั€ั‚ะฝะธั… ั–ะณะพั€ ะท ะผะตั…ะฐะฝั–ั‡ะฝะธะผ ะฟั€ะตัะพะผ!$(br2)ะ’ั–ะฝ ั‚ะฐะบะพะถ ะผะพะถะต ั€ะพะฑะธั‚ะธ $(thing)ะขะพะฝะบั– ะ›ะธัั‚ะธ$() ะดะปั ั‚ะฐะบะธั… ั€ะตั‡ะตะน, ัะบ $(l:tfg_tips/infinite_resources)ะจะบั–ะฒ ะดะปั ัˆะปะฐะฝะณะฐ$()." }, { "type": "patchouli:spotlight", "item": "gtceu:lv_wiremill", - "title": "ะ”ั€ะพั‚ัะฝะธะน ะทะฐะฒะพะด", + "title": "ะ—ะฐะฒะพะด ะ”ั€ะพั‚ัƒ(Wiremill)", "text": "$(item)ะ”ั€ะพั‚ัะฝะธะน ะทะฐะฒะพะด$() ะฒะดะฒั–ั‡ั– ะทะผะตะฝัˆัƒั” ะฒะธั‚ั€ะฐั‚ะธ ะฝะฐ $(thing)ะ”ั€ะพั‚ะธ$(). ะขัƒั‚ ะผะฐะปะพ ั‰ะพ ั‰ะต ะผะพะถะฝะฐ ัะบะฐะทะฐั‚ะธ, ะพะบั€ั–ะผ ั‚ะพะณะพ, ั‰ะพ ะฝะต ะฑัƒะฒะฐั” ะทะฐะฑะฐะณะฐั‚ะพ ะผั–ะดะฝะธั… ะดั€ะพั‚ั–ะฒ ั‡ะธ ะพะปะพะฒ'ัะฝะธั… ะบะฐะฑะตะปั–ะฒ." }, { "type": "patchouli:spotlight", - "title": "ะฅั–ะผั–ั‡ะฝะธะน ะ ะตะฐะบั‚ะพั€/ะ—ะฐั‚ะฒะตั€ะดะถัƒะฒะฐั‡", + "title": "ะฅั–ะผ ะ ะตะฐะบั‚ะพั€/ะ—ะฐั‚ะฒะตั€ะดะถัƒะฒะฐั‡\n(Chem Reactor/Solidifer)", "item": "gtceu:lv_chemical_reactor,gtceu:lv_fluid_solidifier", "text": "$(item)ะฅั–ะผั–ั‡ะฝะธะน ั€ะตะฐะบั‚ะพั€$() ั€ะพะฑะธั‚ัŒ ะฝะฐะฑะฐะณะฐั‚ะพ ะดะตัˆะตะฒัˆะต $(thing)ะ“ัƒะผัƒ$() ัะบะธะน $(item)ะ—ะฐั‚ะฒะตั€ะดะถัƒะฒะฐั‡ ั€ั–ะดะธะฝะธ(Fluid Solidifier)$() ะผะพะถะต ะฟะตั€ะตั‚ะฒะพั€ะธั‚ะธัั ะฝะฐ ะดะตัˆะตะฒัˆั– $(thing)ะ“ัƒะผะพะฒั– ะปะธัั‚ะธ$(), ะฐ ั‚ะฐะบะพะถ ะผะพะถะต ะทั€ะพะฑะธั‚ะธ ะดะตัˆะตะฒัˆะต $(thing)ะ ะพั‚ะพั€ะธ$().$(br2)$(item)ะ•ะบัั‚ั€ะฐะบั‚ะพั€$() ั‚ะฐะบะพะถ ะบะพั€ะธัะฝะธะน ัƒ ะฟะพั”ะดะฝะฐะฝะฝั– ะท ั€ั–ะดะธะฝะฝะธะผ ะทะฐั‚ะฒะตั€ะดะถัƒะฒะฐั‡ะตะผ ั– ั” ะทะฝะฐั‡ะฝะธะผ ะฟะพะบั€ะฐั‰ะตะฝะฝัะผ ะฟะพั€ั–ะฒะฝัะฝะพ ะท ะฟะฐั€ะพะฒะธะผ, ะพัะบั–ะปัŒะบะธ ะฒั–ะฝ ะผะพะถะต ะฒะธะณะพั‚ะพะฒะปัั‚ะธ ะผะตั‚ะฐะปะตะฒั– ั€ั–ะดะธะฝะธ." }, { "type": "patchouli:spotlight", - "title": "ะฆะตะฝั‚ั€ะธั„ัƒะณะฐ", + "title": "ะฆะตะฝั‚ั€ะธั„ัƒะณะฐ(Centrifuge)", "item": "gtceu:lv_centrifuge", "text": "$(item)ะฆะตะฝั‚ั€ะธั„ัƒะณะฐ$() ั€ะพะฑะธั‚ัŒ $(thing)ะ›ะธะฟะบัƒ ัะผะพะปัƒ$() ะฑะตะทะฟะพัะตั€ะตะดะฝัŒะพ ะท ะบะพะปะพะด ะ‘ะฐะฒะพะฒะฝัะฝะต ะดะตั€ะตะฒะพ(Kapok), ะฐ ั‚ะฐะบะพะถ ะฝะฐะฑะฐะณะฐั‚ะพ ะดะตัˆะตะฒัˆัƒ $(thing)ะกะธั€ัƒ ะ“ัƒะผัƒ$(). ะ‘ั–ะปัŒัˆะต ะฝั–ัะบะพะณะพ ะปะฐั‚ะตะบััƒ!" }, { "type": "patchouli:spotlight", - "title": "ะะฐะผะฐะณะฝั–ั‡ัƒะฒะฐั‡", + "title": "ะะฐะผะฐะณะฝั–ั‡ัƒะฒะฐั‡(Polarizer)", "item": "gtceu:lv_polarizer", "text": "The $(item)ะะฐะผะฐะณะฝั–ั‡ัƒะฒะฐั‡$() ั€ะพะฑะธั‚ัŒ $(thing)ะœะฐะณะฝั–ั‚ะฝั– ะกั‚ั€ะธะถะฝั–$() ะฟั€ะฐะบั‚ะธั‡ะฝะพ ะฑะตะทะฟะปะฐั‚ะฝะพ. ะฏะบั‰ะพ ะฒะฐะผ ะฝะต ะฒะธัั‚ะฐั‡ะฐั” ั‡ะตั€ะฒะพะฝะพะณะพ ะบะฐะผะตะฝัŽ, ั†ะต ะณะฐั€ะฝะธะน ะฟะตั€ัˆะธะน ะฒะตั€ัั‚ะฐั‚, ะดะพ ั‚ะพะณะพ ะถ ะดัƒะถะต ะดะตัˆะตะฒะธะน." }, { "type": "patchouli:spotlight", - "title": "ะจะฐั…ั‚ะฐั€", + "title": "ะจะฐั…ั‚ะฐั€(Miner)", "item": "gtceu:lv_miner", "text": "ะŸะพัั‚ะฐะฒั‚ะต $(item)ะจะฐั…ั‚ะฐั€$() (ะฐะฑะพ ะบั–ะปัŒะบะฐ!) ะฝะฐะด ั€ัƒะดะฝะพัŽ ะถะธะปะพัŽ, ะฒะทัั‚ะธ ะท ัะพะฑะพัŽ ะบะพั‚ะตะป, ะฟะฐั€ะพะณะตะฝะตั€ะฐั‚ะพั€, ะฒะพะดัƒ ั– ะฟะฐะปะธะฒะพ, ะฐ ะฟะพั‚ั–ะผ ะฟั€ะพัั‚ะพ ะทะฐะฒะฐะฝั‚ะฐะถะธั‚ะธ ะนะพะณะพ ั– ะฟั–ั‚ะธ ะณะตั‚ัŒ. ะ‘ั–ะปัŒัˆะต ะฝั–ะบะพะปะธ ะฝะต ะฟะพั‚ั€ั–ะฑะฝะพ ะฑัƒะดะต ะฒะธะดะพะฑัƒะฒะฐั‚ะธ ั€ัƒะดัƒ!" }, { "type": "patchouli:spotlight", - "title": "ะฅั–ะผั–ั‡ะฝะฐ ะ’ะฐะฝะฝะฐ", + "title": "ะฅั–ะผั–ั‡ะฝะฐ ะ’ะฐะฝะฝะฐ\n(Chemical Bath)", "item": "gtceu:lv_chemical_bath", "text": "$(item)ะฅั–ะผั–ั‡ะฝะฐ ะ’ะฐะฝะฝะฐ$() ั€ะพะฑะธั‚ัŒ ะดะตัˆะตะฒัˆะธะน ะฟะฐะฟั–ั€. ะžััŒ ั– ะฒัะต. ะ† ัะบ ั‚ั–ะปัŒะบะธ ะฒะธ ะพั‚ั€ะธะผะฐั”ั‚ะต $(thing)ะ—ะฑะธั€ะฐั‡(Assembler)$() ะฟะฐะฟั–ั€ ะฒะฐะผ ะฒัะต ะพะดะฝะพ ะฑั–ะปัŒัˆะต ะฝะต ะทะฝะฐะดะพะฑะธั‚ัŒัั.$(br2)ะ’ั–ะฝ ั‚ะฐะบะพะถ ะผะพะถะต ะฐะฒั‚ะพะผะฐั‚ะธะทัƒะฒะฐั‚ะธ ะฑั–ะปัŒัˆั–ัั‚ัŒ ะบั€ะพะบั–ะฒ, ั‰ะพะฑ ะทั€ะพะฑะธั‚ะธ $(thing)ะจะบั–ั€ัƒ$() ัะบั‰ะพ ะฒะธ ะฒั‚ะพะผะธะปะธัั ะฒั–ะด ะดั–ะถะพะบ." }, { "type": "patchouli:spotlight", - "title": "ะ”ัƒะณะพะฒะฐ ะŸั–ั‡", - "item": "gtceu:lv_arc_furnace", - "text": "ะฆะต ะฝะต ะฝะฐะนะบั€ะฐั‰ะฐ ะฟะตั€ัˆะฐ ะผะฐัˆะธะฝะฐ, ะฐะปะต $(item)ะ”ัƒะณะพะฒะฐ ะŸั–ั‡$() ะผะพะถะต ะฟะตั€ะตั‚ะฒะพั€ะธั‚ะธ ั‡ะฐะฒัƒะฝ ะฑะตะทะฟะพัะตั€ะตะดะฝัŒะพ ะฒ $(thing)ะšะพะฒะฐะฝะต ะทะฐะปั–ะทะพ$(), ะŸั–ัะพะบ ะฒ $(thing)ะกะบะปะพ$(), ั‚ะฐ ะผั–ะดั– ะฒ $(thing)ะ’ั–ะดะฟะฐะปะตะฝัƒ ะผั–ะดัŒ$(). ะ’ัั– ะนะพะณะพ ั€ะตั†ะตะฟั‚ะธ ะฟะพั‚ั€ะตะฑัƒัŽั‚ัŒ $(thing)ะšะธัะตะฝัŒ$() ะฐะปะต ั†ะต ะผะฐั€ะฝะพ ะฑะตะท $(item)ะ•ะปะตะบั‚ั€ะพะปั–ะทะตั€ะฐ$() ะฐะฑะพ $(item)ะฆะตะฝั‚ั€ะตั„ัƒะณะธ$()." - }, - { - "type": "patchouli:spotlight", - "title": "ะ•ะบัั‚ั€ัƒะดะตั€", + "title": "ะ•ะบัั‚ั€ัƒะดะตั€(Extruder)", "item": "gtceu:lv_extruder", "text": "ะฆะต ะปะธัˆะต ะฟะพะฟะตั€ะตะดะถะตะฝะฝั: ะฝะต ั€ะพะฑั–ั‚ัŒ $(item)ะ•ะบัั‚ั€ัƒะดะตั€$(). ะ„ะดะธะฝะต, ั‰ะพ ะฒั–ะฝ ะผะพะถะต ั€ะพะฑะธั‚ะธ, - ั†ะต ะฒะธะณะพั‚ะพะฒะปัั‚ะธ ั–ะฝัั‚ั€ัƒะผะตะฝั‚ะธ ั‚ะฐ ั‚ะพะฝะบั– ะณัƒะผะพะฒั– ะปะธัั‚ะธ (ั‰ะพ ะผะพะถะต ั€ะพะฑะธั‚ะธ ั‚ะฐะบะพะถ ะฑะตะฝะดะตั€). ะ’ัั– ั…ะพั€ะพัˆั– ั€ะตั†ะตะฟั‚ะธ ะตะบัั‚ั€ัƒะดะตั€ั–ะฒ ะทะฐะบั€ะธั‚ั– ะดะปั $(thing)MV$() ั– ะดะฐะปั–." } ] -} \ No newline at end of file +} diff --git a/kubejs/assets/tfc/textures/gui/knapping/flint.png b/kubejs/assets/tfc/textures/gui/knapping/flint.png new file mode 100644 index 0000000000000000000000000000000000000000..937eb6abec568ecc12eae61607fb4d59875185de GIT binary patch literal 528 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_s7Mo-U3d7QL+#4+h;f5OM8y(YZPEhVbqd6JrNs$PL)Lp!&`R!C zK1`WAe}8_ryVzykb3^aoEth!e6x;&57EVoyo5rDdMzxJhHFJ<_0%plNf zqL0uW1BV_F*Ty|N5;jIWn3EiQ-Nw#Fp=CjCw9kF!ggL4ItIwy*O0{?$5M@03EQex2 zX=&@$Zw&p0wfsyyTX_yQc!^xv$+*@uO4EsBN@^uj{`P2wI$QhwvKz&o%Xn#SGI6ch zy|edbN!2Brw3g%Bx5sijOj1d)T58U=a;sX)fvl~+MEDdLCcG4RtmDLyvPh(I-sanH zZ(R9WpQx#NROk4P?Td~kHOA;oXAeC-`#)>{%2QneOq18WK6mI?hCkbx-6-r9*JZD^Xu0y{`vZTj&pYHhnhV*HMkgB1UM9Ly#HR3 z+g)<*;okou>)yZPldpRJ@|IXK&n4c&j#o|2ZaAmZa9V#lhvJO$&ujjFoP2zlV|MQp ip={l2QQKlq%inKsWDC4(*UZ4cz~JfX=d#Wzp$PzqZ|EWb literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index 2471c28ca..c118df0f4 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -60,13 +60,6 @@ "block.tfg.decorative_vase.generated.orange": "Orange Loot Vase", "block.tfg.decorative_vase.generated.red": "Red Loot Vase", "block.tfg.decorative_vase.generated.brown": "Brown Loot Vase", - "block.tfg.rock.hardened_deepslate": "Hardened Migmatite", - "block.tfg.rock.hardened_blackstone": "Hardened Pyroxenite", - "block.tfg.rock.hardened_dripstone": "Hardened Travertine", - "block.tfg.spike.deepslate_spike": "Migmatite Spike", - "block.tfg.spike.blackstone_spike": "Pyroxenite Spike", - "block.tfg.spike.dripstone_spike": "Travertine Spike", - "block.tfg.light_concrete_support": "Light Concrete Support", "block.tfg.light_concrete_support_horizontal": "Light Concrete Horizontal Support", "block.tfg.dark_concrete_support": "Dark Concrete Support", @@ -125,10 +118,14 @@ "block.tfg.migmatite_support": "Migmatite Support", "block.tfg.travertine_support_horizontal": "Travertine Horizontal Support", "block.tfg.travertine_support": "Travertine Support", - - "block.tfg.loose.deepslate": "Loose Migmatite", - "block.tfg.loose.dripstone": "Loose Travertine", - + "block.tfg.rock.hardened_deepslate": "Hardened Migmatite", + "block.tfg.rock.hardened_blackstone": "Hardened Pyroxenite", + "block.tfg.rock.hardened_dripstone": "Hardened Travertine", + "block.tfg.spike.deepslate_spike": "Migmatite Spike", + "block.tfg.spike.blackstone_spike": "Pyroxenite Spike", + "block.tfg.spike.dripstone_spike": "Travertine Spike", + "block.tfg.loose.deepslate": "Loose Migmatite Rock", + "block.tfg.loose.dripstone": "Loose Travertine Rock", "item.tfg.antipoison_pill": "Antipoison Pill", "item.tfg.haste_pill": "Haste Pill", "item.tfg.night_vision_pill": "Night Vision Pill", @@ -154,6 +151,8 @@ "item.tfg.luck_salvo": "Luck Salvo", "item.tfg.resistance_salvo": "Resistance Salvo", "item.tfg.paraffin_wax": "Paraffin Wax", + "item.tfg.flint_arrow_head": "Flint Arrow Head", + "item.tfg.fletching": "Fletching", "item.tfg.conifer_rosin": "Conifer Rosin", "item.tfg.hardwood_strip": "Hardwood Strip", "item.tfg.soaked_hardwood_strip": "Soaked Hardwood Strip", @@ -204,6 +203,7 @@ "material.gtceu.hardwood": "Hardwood", "tfg.disabled_portal": "Portal magic seems to be blocked by an unknown force, try reaching another dimension by going down or up", "item.treetap.tap": "Deprecated Item, Craft to Upgrade", + "tfc.jei.flint_knapping": "Flint Knapping", "item.gtceu.zinc_ingot": "Deprecated Item, Craft to Upgrade", "item.gtceu.brass_ingot": "Deprecated Item, Craft to Upgrade", "item.gtceu.vanadium_ingot": "Deprecated Item, Craft to Upgrade", @@ -484,6 +484,9 @@ "quests.low_voltage.lv_machine_hull.subtitle": "It's time to get into electricity", "quests.low_voltage.lv_machine_hull.desc.1": "That's it you are getting real close to your &6first LV Machine&r and the begining of the electric age. Crafting this hull will cost you quite a lot of &4Red Steel&r but you will get &6new ways&r to improve your production.\n\nThis is the Gregtech approach: &6the further you progress, the better the new recipes become&r.\n\nTry to make at least 3 or 4 casings to begin.", "quests.low_voltage.lv_machine_hull.desc.2": "For some players reaching a new tier is making the &6circuit&r, for others it's the &6machine hull&r and for me it's the &6energy hatch&r. At the end of the day you do you.", + "quests.low_voltage.lv_machine_casing.title": "LV Machine Casing for Create?", + "quests.low_voltage.lv_machine_casing.subtitle": "An infinite amount of possibilities", + "quests.low_voltage.lv_machine_casing.desc": "Usually now would be time to go full Gregtech but &5TFG&r offers you the possibility to use &6Create&r machines to basically do the job of some usual &6Gregtech&r machines.\n\nWe introduced them &6last chapter&r, just know that in this chapter if there is an alternative to a Gregtech machine, you will have the choice within the quest.", "quests.low_voltage.lv_motor.title": "The First of Many Motors", "quests.low_voltage.lv_motor.subtitle": "Low Voltage beckons...", "quests.low_voltage.lv_motor.desc": "Remember that &2JEI is your friend&r if recipes are getting overwhelming.\n\nGetting back on topic, set yourself up for &7LV&r by crafting six &aLV Electric Motors&r! This may seem like a lot, but that's the bare minimum required to get to the good stuff in &7LV&r.", @@ -497,7 +500,7 @@ "quests.low_voltage.lv_steam_turbine.desc.2": "If you're using a single &3Steam Turbine&r, you only need &a1x Tin Cables&r. On the other hand, if you upgrade to &32 Steam Turbines&r, you should use &a2x Tin Cables&r - else they may end up &cburning&r.\n\nThis is because of the &9Amperage&r mechanic... but that will be explained later so you can enjoy playing. Don't worry!", "quests.low_voltage.lbb.title": "Large Bronze Boiler", "quests.low_voltage.lbb.subtitle": "Boom, boom, boom, boom", - "quests.low_voltage.lbb.desc.1": "&oThe &3Large Boiler&r is an &6optional&r big-boy variant of the Small Boilers. It runs off solid or liquid fuel.\n\nIf you want Steam-based power production, this will be your first port-of-call. Other power options are listed in the &bMV&r chapter.\n\n&cImportant:&r This Boiler &lCAN&r also &cexplode&r similarly to the regular Boilers! Usually, the explosion can be rather devastating...", + "quests.low_voltage.lbb.desc.1": "Be wary this one explodes if running when you load your world, waiting for a fix from GTm devs/n&oThe &3Large Boiler&r is an &6optional&r big-boy variant of the Small Boilers. It runs off solid or liquid fuel.\n\nIf you want Steam-based power production, this will be your first port-of-call. Other power options are listed in the &bMV&r chapter.\n\n&cImportant:&r This Boiler &lCAN&r also &cexplode&r similarly to the regular Boilers! Usually, the explosion can be rather devastating...", "quests.low_voltage.lbb.desc.2": "&cWater supply is &lcrucial&r&r. Dedicate a system only for it.\n\nOnce fully heated up, the &3LBB&r produces 800 Steam per tick, which is &d400EU/t&r after conversion, or 12.5 Basic Steam Turbines. Such (relatively!) immense power comes at the cost of &la lot&r of burnable fuel. In TerraFirmaGreg we advise &8Creosote&r or &cLava&r. You can use Create to bring that if needed...", "quests.low_voltage.lbb.desc.3": "&5With this in consideration&r, the GUI lets you &9throttle&r the Boiler down to 25% power for 200 Steam per tick. That's &d100EU/t&r, or slightly above 3 Basic Steam Turbines.\n\n&9Note:&r An in-depth tutorial about Multiblocks is given after you get the &3Electric Blast Furnace&r. We recommend you aim for that first.", "quests.low_voltage.lv_polariser.title": "Basic Polariser", @@ -520,13 +523,16 @@ "quests.low_voltage.lv_wiremill.subtitle": "No more painful wires!", "quests.low_voltage.lv_wiremill.desc.1": "You could make any other &7LV&r Machine, but it would be easiest to start with the most useful one. We know, we know... you wanna make some of the crazier stuff first, but trust us, this is the best starting point.\n\nThe Wiremill lets you make &6two Wires from one Ingot&r. That should be three times cheaper than what you were doing up until now!\n\nTo the right of this Quest, you'll find some important machines which will grant you cheaper intermediates.", "quests.low_voltage.lv_wiremill.desc.2": "&9Note:&r Recipes inside &3LV Machines&r go up to a maximum usage of &a32 EU/t (LV)&r. Anything higher than that and you will need a &bMV&r (or better) Machine. Needless to say, we aren't quite there yet.\n\nYou will need a &dProgrammed Circuit&r for certain recipes. We're sure you don't want to spend a precious Circuit to craft one, so &6read the dedicated quest for important details&r.\n\nWith this machine safely crafted - welcome to the age of all things electric!", + "quests.low_voltage.lv_wiremill.task": "Any of these", "quests.low_voltage.lv_bender.title": "Basic Bender", "quests.low_voltage.lv_bender.subtitle": "The Bender bends!", "quests.low_voltage.lv_bender.desc": "Arguably the second best &7LV&r machine to craft, but we're down if you want to argue otherwise.\n\nThis unlocks the ability to convert one &6Ingot into one Plate&r, which is a better ratio than the Forge Hammer.", + "quests.low_voltage.lv_bender.task": "Any of these", "quests.low_voltage.lv_lathe.title": "Basic Lathe", "quests.low_voltage.lv_lathe.subtitle": "Get rid of your archaic tech", "quests.low_voltage.lv_lathe.desc.1": "The Lathe is an important machine to help shape metals. Thanks to it, you can turn &6one Ingot into two Rods&r, and &6one Bolt into one screw&r. That's twice the efficiency on those recipes as opposed to crafting by hand.", "quests.low_voltage.lv_lathe.desc.2": "&l&3Lore:&r&o The GregTech 5 Lathe produces one Rod and 2 small piles of Dust per Ingot. We also have a setting for this in GTCEu, but it's turned off by default.\n\n&oThe GT6 Lathe acts like GT5's, but Bolts lathe into one Screw and 1/72 of a pile of Dust. Disgusting!", + "quests.low_voltage.lv_lathe.task": "Any of these", "quests.low_voltage.universal_cell.title": "Better bucket", "quests.low_voltage.universal_cell.subtitle": "You can see inside not like these drums...", "quests.low_voltage.universal_cell.desc.1": "Cells are an alternative form of Fluid storage. All Cell types with the same type and amount of Fluid inside them &6stack&r. They can be automatically filled with a &3Canning Machine&r.\n\nCells hold &done bucket&r of Fluid.", @@ -603,6 +609,7 @@ "quests.low_voltage.lv_mixer.title": "Basic Mixer", "quests.low_voltage.lv_mixer.subtitle": "Mixer is for mixing", "quests.low_voltage.lv_mixer.desc": "Using the mixer will &6significantly speed up&r the process of making colored steel, especially for &4red steel&r. Even if you don't think you need it now, you'll find it &6essential&r later on.", + "quests.low_voltage.lv_mixer.task": "From Create or Gregtech", "quests.low_voltage.soldering_alloy.title": "Soldering Alloy", "quests.low_voltage.soldering_alloy.subtitle": "I got soul but I'm not a solder", "quests.low_voltage.soldering_alloy.desc": "&aSoldering Alloy&r is used solely as a &9Fluid&r, and in most cases is &dinterchangeable&r in circuit recipes as a cheaper alternative to Tin&r.\n\nThe choice is yours. Save more materials? Make Soldering Alloy. Spend less time crafting materials? Tin is the way to go.", @@ -639,6 +646,7 @@ "quests.low_voltage.lv_cutter.title": "Basic Cutter", "quests.low_voltage.lv_cutter.subtitle": "The Cutter... cuts...", "quests.low_voltage.lv_cutter.desc": "For now, you should use &9Water&r for its recipes instead of trying to acquire Lubricant.\n\nThe &3Cutting Machine&r additionally unlocks converting &6Rods into four Bolts&r.\n\nThis machine is the only way to obtain &dGem Plates&r, which are needed to craft Filters, and by extension, the &3Gas Collector&r.", + "quests.low_voltage.lv_cutter.task": "Any cutter", "quests.low_voltage.lv_gas_collector.title": "Basic Gas Collector", "quests.low_voltage.lv_gas_collector.subtitle": "Don't stand to close to it you could finish within the machine", "quests.low_voltage.lv_gas_collector.desc": "The Gas Collector collects Air that can then be centrifuged into &aOxygen&r and &aNitrogen&r.\n\n&l&3Lore:&r&o GregTech 5 players remember when they had to use a Compressor with IC2 cells to get Compressed Air... here, cell chemistry is no more.", @@ -694,6 +702,10 @@ "quests.low_voltage.aluminium_ingot.title": "Your first Aluminium Ingot", "quests.low_voltage.aluminium_ingot.subtitle": "We're basically in MV now, right?", "quests.low_voltage.aluminium_ingot.desc": "Well... can you show us an &bMV&r Circuit as well?\n\n&aAluminium&r is the main ingredient for &bMV&r machinery. Get ready to need a lot of it.\n\nThe process of smelting Aluminium can be cut down by about a third with &9Nitrogen&r, which is obtained by centrifuging &9Air&r from a &3Gas Collector&r.\n\n&6You will still need MV Circuits in order to make MV machines!&r", + "quests.low_voltage.mv_hull.title": "Your third machine hull", + "quests.low_voltage.mv_hull.subtitle": "This is going quite well, only 7 to go!", + "quests.low_voltage.mv_hull.desc1": "Good job, you now have your &bMV Machine Hull&r, your first &bMV Circuit&r and your first &6Circuit Assembler&r.\n\nThis is the gist of &6Gregtech&r, every tier you are going to need to do new &6machines&r using new &6materials&r and &6chemicals&r. You are going to have so &5much fun&r, we are kinda jealous.", + "quests.low_voltage.mv_hull.desc2": "Before going further into &bMV&r remember that in &6TFG&r you can use &6Create&r to reinforce your infrastruce if you don't want to use too much of Gregtech.", "quests.metal_age": "Metallurgy Age", "quests.metal_age.subtitle": "Your First Technological Advancements.", "quests.metal_age.weld_bronze_ingots.title": "Welding Bronze", @@ -759,73 +771,73 @@ "quests.metal_age.graphite.task": "Any form of Graphite", "quests.metal_age.fire_clay.title": "Fire Clay", "quests.metal_age.fire_clay.subtitle": "At last", - "quests.metal_age.fire_clay.desc": "Heat up Kaolin Clay to get Kaolinite Powder, you can use a Firepit or your Forge with vessels to mass-heat the Kaolin Clay.\n\nFor the Graphite, simply pass it thru a Quern or a Millstone to get Graphite Powder\n\nFinally, combine 4 Graphite Powder, 4 Kaolinite and a piece of Clay to create Fire Clay.", + "quests.metal_age.fire_clay.desc": "Heat up Kaolin Clay to get Kaolinite Powder. You can use a Forge to heat them individually, but cooking big batches inside small vessels in a Pit Kiln may be faster.\n\nFor the Graphite, process the ore as normal, then crush the Graphite Dust again to get Graphite Powder.\n\nFinally, combine 4 Graphite Powder, 4 Kaolinite Powder, and 1 Clay to create Fire Clay.", "quests.metal_age.fire_clay_products.title": "Fire Clay products", "quests.metal_age.fire_clay_products.subtitle": "Extremely Heat Resistant Clay", - "quests.metal_age.fire_clay_products.desc": "Just like regular Clay, Fire Clay can be Knapped to create unfired pieces of Clay, Notably Fire Clay can be used to create the Crucible and Fire Clay Bricks, which are required for the Blast Furnace.\n\nYou'll also unlock the Fire Ingot, which has a 90% chance to not be destroyed when you get the Ingot out of the Mold.\n\nYou'll also be able to create a Mold Table and Casting Channels, which lets you cast multiple molds at once.", + "quests.metal_age.fire_clay_products.desc": "Just like regular Clay, Fire Clay can be Knapped to create things that you'll then need to fire. Most importantly, Fire Clay is used to create the Crucible and Fire Clay Bricks, both of which are required for the Blast Furnace.\n\nYou'll also be able to create a Mold Table and Casting Channels, which lets you cast your metal from the crucible into multiple molds at once.\n\nLastly, there's Fire Ingot Molds, which only have a 1% chance of breaking instead of regular clay's 10%.", "quests.metal_age.crucible.title": "Crucible", - "quests.metal_age.crucible.subtitle": "Melt metals, like a pro.", - "quests.metal_age.crucible.desc": "The Crucible is an advanced block that can be placed on top of a Forge, Crucibles being heated by a Forge heat up considerably faster, they have 9 inventory slots and can hold up to 4 buckets of Molten Metal. Crucibles can also be emptied out utilizing Casting Channels, They are required for the Blast Furnace to work.", + "quests.metal_age.crucible.subtitle": "Melt metals like a pro", + "quests.metal_age.crucible.desc": "The Crucible is placed on top of a Forge. It comes with 9 inventory slots and has a capacity for 4000mB of fluid, including an interface to check your alloying ratios. They also retain their contents when broken. They can also collect Pig Iron when placed below a Blast Furnace.\n\nKeep in mind that the crucible WILL try to alloy everything inside it - it does not keep metals separate like a TC Smeltery - so it's a good idea to keep it clean when you aren't using it.", "quests.metal_age.fire_bricks.title": "Fire Bricks", "quests.metal_age.fire_bricks.subtitle": "For the Blast Furnace", "quests.metal_age.fire_bricks.desc": "Fire Bricks are used in the construction of the Blast Furnace, you need at the very least 4 Bricks to make the furnace.\n\nThe Bricks will require insulation to make sure the process of making steel is effective, you can either place 3 Wrought Iron Sheets around the Fire Bricks, or use Blast Furnace Insulation", "quests.metal_age.fully_stacked_blast_furnace.title": "Fully Stacked Blast Furnace", "quests.metal_age.fully_stacked_blast_furnace.subtitle": "The completed Blast Furnace", - "quests.metal_age.fully_stacked_blast_furnace.desc": "The completed Blast Furnace can melt and create a lot of Steel. You should seek to complete it as you'll need a lot of steel for the future.\n\nIt is worth mentioning that in the future, you'll be able to produce both Brick Dust and Clay Dust, mixing these dusts together can be used as a cheap method of creating more Fire Bricks.", + "quests.metal_age.fully_stacked_blast_furnace.desc": "A full size Blast Furnace is able to melt and process large amounts of iron at once. It's a good idea to make it bigger when you can, because you'll need a lot of steel for the future.\n\nAfter you've got your first Steel Millstone, you'll be able to create more Fire Bricks more cheaply.", "quests.metal_age.blast_furnace_fuel.title": "Fuel for the Blast Furnace", "quests.metal_age.blast_furnace_fuel.subtitle": "Hope you followed the tips in the previous quests...", - "quests.metal_age.blast_furance_fuel.desc": "Regular Charcoal is not hot enough to be able to create Steel, you will need either Coke or Anthracite.\n\nCoke can be created inside a Coke Oven by utilizing Coal instead of Logs, it produces considerably more Creosote as well.\n\nAnthracite is a type of fuel found in the Beneath.", + "quests.metal_age.blast_furance_fuel.desc": "Regular Charcoal is not hot enough to be able to create Steel. You will need either Coke or Anthracite.\n\nCoke can be created by putting Coal into a Coke Oven, while Anthracite can be used as-is after being dug up from the Beneath.", "quests.metal_age.blast_furnace.title": "Blast Furnace", - "quests.metal_age.blast_furnace.subtitle": "I'm Blastin", - "quests.metal_age.blast_furnace.desc": "The BlastFurnace is a Multiblock form TerraFirmaCraft that allows you to create Steel. Placing a combination of Iron, Flux and Charcoal inside the Blast Furnace produces Pig Iron, which can be worked into Steel.\n\nTo get the Blast Furnace to properly melt down the ingredients, you'll require a Bellows to feed the Blast Furnace with Air, for the Blast Furnace to even accept the Air you'll require a Tuyere.\n\nThe Field Guide contains an entry on how the Blast Furnace works.", + "quests.metal_age.blast_furnace.subtitle": "Then I started Blastin'", + "quests.metal_age.blast_furnace.desc": "The Blast Furnace is a multiblock structure that allows you to create Pig Iron. Placing a combination of Iron, Flux and fuel (see the adjacent quest) inside the Blast Furnace produces Pig Iron, which can be worked into Steel.\n\nIn order for the Blast Furnace to reach its required high temperatures, it will need its own Bellows, used to force air through a Tuyere which you place inside the blast furnace.\n\nThe Field Guide contains an entry on how the Blast Furnace works and how to build one.", "quests.metal_age.weld_steel_ingots.title": "Welding Steel", "quests.metal_age.weld_steel_ingots.subtitle": "Again?", - "quests.metal_age.weld_steel_ingots.desc": "You should know the drill by this point, Create 14 Steel Ingots, then Weld them to get 7 Double Steel Ingots.\n\nThis will be the last quest where we'll ask you to do this, since every single other Anvil requires the same setup.", + "quests.metal_age.weld_steel_ingots.desc": "You know the drill by this point. Create 14 Steel Ingots, then weld them to get 7 Double Steel Ingots. We'll stop reminding you about this now.\n\nDid you know that the Helve Hammer can also process your pig iron into steel?", "quests.metal_age.steel_anvil.title": "T4 Anvil: Steel", - "quests.metal_age.steel_anvil.subtitle": "Encased Fans, Crushing Wheels, Mechanical Pumps and More", - "quests.metal_age.steel_anvil.desc": "With the Steel Anvil you'll be able to work Steel Ingots into different items.\n\nUnlocking access to the Steel Anvil enables new quests in the Industrial Age, related to new processing machinery, and the Mechanical Pump.\n\nThe next anvil will unlock the very beginnings of GregTech's Steam Machinery.", + "quests.metal_age.steel_anvil.subtitle": "A huge leap from wrought iron", + "quests.metal_age.steel_anvil.desc": "With the Steel Anvil, you'll be able to work Steel Ingots into different forms.\n\nSteel tools and equipment have a significant boost over their bronze and wrought iron counterparts, so they're worth making if your existing ones are about to break. You'll be needing to create a lot of alloys soon, so some new mining equipment would be a wise investment.", "quests.metal_age.steel_goodies.title": "Steel level Mechanical Power", - "quests.metal_age.steel_goodies.subtitle": "Blow, Crush and Pipe", + "quests.metal_age.steel_goodies.subtitle": "Blow, Crush, and Pipe", "quests.metal_age.steel_goodies.desc": "Steel unlocks a new Greate tier, with increased maximum stress capacity! You can now also make things like the Encased Fan, which can automate ore washing, and the Mechanical Pump, which gives you much more access to fluid logistics.\n\nThe Mechanical Pump is especially useful, as with some smarts, you can easily automate the Blast Furnace.", "quests.metal_age.weak_steel.title": "Weak Steel Ingredients", - "quests.metal_age.weak_steel.subtitle": "Hope you like Alloying", - "quests.metal_age.weak_steel.desc": "Weak Steel is one part of the necesary metals to create Black Steel, it's made by utilizing 2 parts Steel, 1 part Nickel and 1 part Black Bronze.\n\nYou can check the liquid weak steel's recipe for more precise alloying percentage rates.", + "quests.metal_age.weak_steel.subtitle": "Hope you like math", + "quests.metal_age.weak_steel.desc": "Weak Steel is one part of the necessary metals to create Black Steel. You can alloy it with 2 parts Steel, 1 part Nickel and 1 part Black Bronze.\n\nYou can check the liquid weak steel's recipe for more precise alloying percentage rates.", "quests.metal_age.highcarb_black_steel.title": "Black Steel Ingredients", - "quests.metal_age.highcarb_black_steel.subtitle": "Conservation of Matter does not apply", - "quests.metal_age.highcarb_black_steel.desc": "The last two anvils are made out of complex Alloys that will require a lot of metal to be created. Black Steel first starts as High Carbon Black Steel, which is made by welding Weak Steel and Pig Iron. It the needs to be worked on the Anvil to turn it into Black Steel", + "quests.metal_age.highcarb_black_steel.subtitle": "Conservation of matter does not apply", + "quests.metal_age.highcarb_black_steel.desc": "The final two anvils are made out of complex alloys that will require a lot of metal to be created. Weak Steel and Pig Iron can be welded to create High Carbon Black Steel, which can then be worked on an anvil into Black Steel.", "quests.metal_age.black_steel_anvil.title": "T5 Anvil: Black Steel", - "quests.metal_age.black_steel_anvil.subtitle": "Steam is at your Grasp", - "quests.metal_age.black_steel_anvil.desc": "With the Black Steel Anvil you'll be able to work Black Steel Ingots into different items.\n\nUnlocking access to the Black Steel Anvil enables new quests in the Industrial Age, related to Steam Power. From both the Steam Engine and the High Pressure Steam Boilers.\n\nOnly one more tier to go.", + "quests.metal_age.black_steel_anvil.subtitle": "Steam power is within your grasp", + "quests.metal_age.black_steel_anvil.desc": "With the Black Steel Anvil you'll now be able to work Black Steel Ingots into different items.\n\nYou've also now opened up a massive new section in the Early Automation chapter related to Steam Power!\n\nFrom here, you can either dive straight into industrialization or finish up the last tier of anvils if you'd like. You can't avoid colored steel forever, though!", "quests.metal_age.black_steel_goodies.title": "Black Steel level Mechanical Power", "quests.metal_age.black_steel_goodies.subtitle": "The Industrial Revolution and its consequences", - "quests.metal_age.black_steel_goodies.desc": "With Black Steel comes Steam Power! With GregTech's Boilers, you'll be able to produce Steam, and with it, power Steam Machinery and work your way to proper machines and your first electronics.", + "quests.metal_age.black_steel_goodies.desc": "With Black Steel comes Steam Power! Start with small steam boilers and work your way up to a powerful steam engine, fuelling new machines to craft your first electronics.", "quests.metal_age.red_blu.title": "Red and Blue Steel", "quests.metal_age.red_blu.subtitle": "Some of the oldest modded Minecraft fantasy steels", - "quests.metal_age.red_blu.desc": "The final tier of Anvil, T6, is made by utilizing Red or Blue steel, both are complex alloys of Steel and multiple different metals.\n\nRed and Blue steel are known for their exceptional durability, heat resistance, and overall power. The following anvil creation can be made by either using Blue or Red Steel.", + "quests.metal_age.red_blu.desc": "The final tier of anvil can be made out of either Red or Blue Steel. Both are complex alloys of Steel and multiple different metals.\n\nBlue Steel is prized for its exceptional heat resistance and tool speed, while Red Steel boasts huge amounts of strength and durability.", "quests.metal_age.weak_red_steel.title": "Weak Red Steel Ingredients", "quests.metal_age.weak_red_steel.subtitle": "This is getting a little ridiculous", - "quests.metal_age.weak_red_steel.desc": "Weak Red Steel is one part of the necesary metals to create Red Steel, it's made by utilizing 4 parts Black Steel, 2 parts Steel, 1 part Brass and 1 part Rose Gold.\n\nYou can check the liquid weak red steel's recipe for more precise alloying percentage rates.", + "quests.metal_age.weak_red_steel.desc": "Like before, Weak Red Steel is the first step of Red Steel's creation. Its alloy is made from 4 parts Black Steel, 2 parts Steel, 1 part Brass, and 1 part Rose Gold.\n\nYou can check the liquid Weak Red Steel's recipe for more precise alloying percentage rates.", "quests.metal_age.weak_blu_steel.title": "Weak Blue Steel Ingredients", "quests.metal_age.weak_blu_steel.subtitle": "This is getting out of hand.", - "quests.metal_age.weak_blu_steel.desc": "Weak Blue Steel is one part of necesary metals to create Blue Steel, it's made by utilizing 4 parts Black Steel, 2 parts Steel, 1 part Bismuth Bronze and 1 part Sterling Silver.\n\bYou can check the liquid weak blue steel's recipe for more precise alloying percentage rates.", + "quests.metal_age.weak_blu_steel.desc": "Like before, Weak Blue Steel is the first step of Blue Steel's creation. Its alloy is made from 4 parts Black Steel, 2 parts Steel, 1 part Bismuth Bronze, and 1 part Sterling Silver.\n\bYou can check the liquid Weak Blue Steel's recipe for more precise alloying percentage rates.", "quests.metal_age.highcarb_red_steel.title": "Red Steel Ingredients", - "quests.metal_age.highcarb_red_steel.subtitle": "If you think about it the fact that one half of the ingot disappears would mean there's a lot of energy being released, probably higher than the Tsar Bomba... oh well it's just a modpack.", + "quests.metal_age.highcarb_red_steel.subtitle": "Could deleting matter like this power a nuclear bomb?", "quests.metal_age.highcarb_red_steel.desc": "Red Steel first starts as High Carbon Red Steel, which is made by welding Weak Red Steel and Black Steel. It needs to be worked on the Anvil to turn it into Red Steel", "quests.metal_age.highcarb_blu_steel.title": "Blue Steel Ingredients", "quests.metal_age.highcarb_blu_steel.subtitle": "Lavoisier is rolling in his grave", "quests.metal_age.highcarb_blu_steel.desc": "Blue Steel first starts as High Carbon Blue Steel, whcih is made by welding Weak Blue Steel and Black Steel. It needs to be worked on the Anvil to turn it into Blue Steel", "quests.metal_age.redblu_anvil.title": "T6 Anvil: Red or Blue Steel", "quests.metal_age.redblu_anvil.subtitle": "It's over", - "quests.metal_age.redblu_anvil.desc": "The final tier of Anvil, with the Tier 6 Anvil you'll be able to work both Red and Blue Steel Ingots into different items.\n\nThis marks the End of the regular TerraFirmaCraft progression, now it's time to finish the Industrial Age and create your very first Low Voltage circuitry.", + "quests.metal_age.redblu_anvil.desc": "The final tier of Anvil! With the Tier 6 Anvil you'll be able to work both Red and Blue Steel Ingots into different items.\n\nThis marks the end of TerraFirmaCraft's progression. Now it's time to finish the Industrial Age and create your very first Low Voltage circuitry.", "quests.metal_age.red_steel_flask.title": "Red Steel Flask", "quests.metal_age.red_steel_flask.subtitle": "This got nothing on the Iron Flask", - "quests.metal_age.red_steel_flask.desc": "The Red Steel Flask is the best Flask in the game, it may hold the same amount of liquid as an Iron Flask, but the Red Steel Flask never breaks.", + "quests.metal_age.red_steel_flask.desc": "The Red Steel Flask is the best Flask available. It may hold the same amount of liquid as an Iron Flask, but the Red Steel Flask never breaks.", "quests.metal_age.redblu_buckets.title": "Bucket Components", - "quests.metal_age.redblu_buckets.subtitle": "Not quite the bucket", - "quests.metal_age.redblu_buckets.desc": "The ending of the regular progression of the Metallurgy Age is creating a Bucket. The Bucket can be used to hold lava and other hot liquids without having it melt in your hands.", - "quests.metal_age.this_is_a_bucket.title": "This, is a Bucket.", + "quests.metal_age.redblu_buckets.subtitle": "Bucket Fusion Reactor", + "quests.metal_age.redblu_buckets.desc": "The final task in the Metallurgy Age is creating a Bucket. Unlike the wooden bucket and other fluid containers you've been using until now, the Bucket can be used to carry Lava and move around source blocks of other fluids.", + "quests.metal_age.this_is_a_bucket.title": "This... is a Bucket.", "quests.metal_age.this_is_a_bucket.subtitle": "Dear God...", - "quests.metal_age.this_is_a_bucket.desc": "Congratulations on crafting the Bucket. The Metallurgy Age is officially over.\n\nGo and start working on those Low Voltage components.", + "quests.metal_age.this_is_a_bucket.desc": "Congratulations on crafting the Bucket. The Metallurgy Age is officially over.\n\nGo and start working on those Low Voltage components!", "quests.steam_age": "Early Automation", "quests.steam_age.subtitle": "From Primitive Machines to Steam Power", "quests.steam_age.basic_greate.title": "Basics of Greate", @@ -833,7 +845,7 @@ "quests.steam_age.basic_greate.desc": "Greate is a fusion of &3Create&r and &3GregTech&r that has different tiered versions of Create's machines. It also introduces stress limits on Shafts and Cogwheels, so you'll have to plan more about how you power your machinery!\n\nGenerally speaking, you'll want smaller setups with their own individual power sources, instead of doing the usual Create thing of having a blob of water wheels connected into a single Shaft into your base.", "quests.steam_age.create_tools.title": "Tools of the Trade", "quests.steam_age.create_tools.subtitle": "These may be useful", - "quests.steam_age.create_tools.desc": "A wrench will let you quickly pick up Create blocks by Sneak + Right-Clicking on them, though an axe or pickaxe will still work too. The goggles will let you see much more detailed information about your machines, such as how much stress they're producing or consuming.\n\nBoth of these are optional for now, but will prove to be very useful, and you'll definitely want them later.", + "quests.steam_age.create_tools.desc": "A wrench will let you quickly pick up Create blocks by Sneak + Right-Clicking on them, though an axe or pickaxe will still work too. The goggles will let you see much more detailed information about your machines, such as how much stress they're producing or consuming.\n\nBoth of these are optional for now, but will prove to be very useful, and you'll definitely want them later.\n\nCheck the TFG Tips chapter for help on glassblowing. Did you know that breaking cobblestone with a hammer will turn it into gravel, and breaking that again will turn it into sand...?", "quests.steam_age.basic_millstone.title": "Automatic Ore Processing", "quests.steam_age.basic_millstone.subtitle": "No more querning", "quests.steam_age.basic_millstone.desc": "The &3Millstone&r is an automatic version of the Quern. You can throw whatever you'd like into the top, and then right-click to take your crushed items back out. It's pretty slow if you connect it directly to your Horse Crank, but you can use gear ratios to increase its speed.\n\nYou will only receive the output in the first slot. The other slots are part of a GregTech mechanic that won't be relevant until much later (&6HV&r).", @@ -997,27 +1009,27 @@ "quests.steam_age.resistors.subtitle": "The more... resistant... component for circuits", "quests.steam_age.resistors.desc": "Resistors are components that will be used to make your first Circuit.\n\nIt wouldn't be unwise to prioritise the recipes that use &aFine Wires&r, as they'll save you more materials in the long run.\n\nWires may be expensive right now, but they'll get a lot cheaper if you make the &3Coiling Machine&r down below or the &3Wiremill&r in &7LV&r.", "quests.steam_age.coiling_machine.title": "Coiling Machine", - "quests.steam_age.coiling_machine.subtitle": "ULV Wiremill", + "quests.steam_age.coiling_machine.subtitle": "An LV Wiremill strapped to half of the LV Bender!", "quests.steam_age.coiling_machine.desc": "The &3Coiling Machine&r is similar to a LV Wiremill, though it lacks the option to directly output different wire sizes. Still, this is a very worthwhile invesment to make your wires significantly cheaper.\n\nThis machine can also make cheaper springs, too!", "quests.steam_age.curving_press.title": "Curving Press", - "quests.steam_age.curving_press.subtitle": "ULV Extruder", + "quests.steam_age.curving_press.subtitle": "Just as niche as the LV Extruder", "quests.steam_age.curving_press.desc": "The &3Curving Press&r can do all the same recipes as an LV Extruder. Unfortunately, neither can do very much, as the extruder is only useful once you get to MV. Still, if you find yourself wanting to craft a lot of tool heads in bulk, this machine can do it for you.", "quests.steam_age.vibrating_table.title": "Vibrating Table", - "quests.steam_age.vibrating_table.subtitle": "ULV Sifter", + "quests.steam_age.vibrating_table.subtitle": "Identical to the LV Sifter", "quests.steam_age.vibrating_table.desc": "The &3Vibrating Table&r can process gem ores (including coal) in a different way, yielding much more output than anything else you have access to right now. As a bonus, it can also process any gravel ore deposits you may still have. No more sluicing!", "quests.steam_age.lathe.title": "Lathe", - "quests.steam_age.lathe.subtitle": "ULV... Lathe", + "quests.steam_age.lathe.subtitle": "You're not gonna believe which LV machine this is the same as", "quests.steam_age.lathe.desc": "The &3Lathe&r can automatically turn a single ingot into two rods, and single bolts into screws. If you're making a lot of those, and you will be, this machine will be a good investment.", "quests.steam_age.steel_saw.title": "Steel Mechanical Saw", - "quests.steam_age.steel_saw.subtitle": "ULV Cutter", - "quests.steam_age.steel_saw.desc": "It's an upgrade to your Basic Mechanical Saw that can also process some metal recipes, like turning rods into four bolts, and cutting blocks into plates. These recipes will all require a fluid to work, but you only have access to water at the moment.", + "quests.steam_age.steel_saw.subtitle": "A stonecutter and LV Cutter in one!", + "quests.steam_age.steel_saw.desc": "It's an upgrade to your Basic Mechanical Saw that can also process some metal recipes, like turning rods into four bolts, and cutting blocks into plates. These recipes will all require a fluid to work, but you can just use water for now.", "quests.steam_age.rolling_mill.title": "Rolling Mill", - "quests.steam_age.rolling_mill.subtitle": "ULV Bender", - "quests.steam_age.rolling_mill.desc.1": "Of all the ULV machines you could make, the &3Rolling Mill&r is one of the best, for the simple reason that it makes single plates out of single ingots. It can also make thin sheets cheaper than by hand, as a bonus!", + "quests.steam_age.rolling_mill.subtitle": "The other half of the LV Bender", + "quests.steam_age.rolling_mill.desc.1": "Of all the steam age machines you could make, the &3Rolling Mill&r is one of the best, for the simple reason that it makes single plates out of single ingots. It can also make thin sheets cheaper than by hand, as a bonus!", "quests.steam_age.rolling_mill.desc.2": "&l&3Lore:&r &oThis machine existed in older versions of TFG, but it made rods instead of plates, and your best plate-making option before the LV bender had a 20% chance of failure!&r", "quests.steam_age.steel_mixer.title": "Steel Mechanical Mixer", - "quests.steam_age.steel_mixer.subtitle": "ULV Mixer", - "quests.steam_age.steel_mixer.desc": "The &3Steel Mechanical Mixer&r is the other best ULV machine you can make -- it can mix together your colored steel dusts at a much more efficient rate than the Crucible! It can do a large number of other recipes too, including some that involve gases... don't think about it too much.\n\nYou can use either a Charcoal Forge or a Blaze Burner for the recipes that require heating, and a Mechanical Arm can automatically refuel either.", + "quests.steam_age.steel_mixer.subtitle": "An earlier LV Mixer", + "quests.steam_age.steel_mixer.desc": "The &3Steel Mechanical Mixer&r is the other best steam age machine you can make -- it can mix together your colored steel dusts at a much more efficient rate than the Crucible! It can do a large number of other recipes too, including some that involve gases... don't think about it too much.\n\nYou can use either a Charcoal Forge or a Blaze Burner for the recipes that require heating, and a Mechanical Arm can automatically refuel either.", "quests.steam_age.potin.title": "Potin Seller...", "quests.steam_age.potin.subtitle": "...I'm going into battle, and I need only your finest Potin.", "quests.steam_age.potin.desc.1": "&dPotin Fluid Pipes&r have a &avery high throughput&r for the material tier and cost. You may want to look into making some of these to aid with fluid logistics.\n\nTo get &dPotin&r, you should start by crafting its &eDust&r form.\n\nThis quest calls for either the small or normal pipe. Get either size to complete it.", @@ -1034,7 +1046,7 @@ "quests.steam_age.lv_circuit.desc": "The recipe for these may look intimidating at first, but if you've spent an appropriate amount of time in the Steam Age, everything should be easily automatable. You'll be making a lot of these for a while, but your next few electic machines will help make them even cheaper until you get your hands on a Circuit Assembler late into LV.", "quests.steam_age.what_next.title": "What Next?", "quests.steam_age.what_next.subtitle": "Y'know, besides \"more GregTech\"", - "quests.steam_age.what_next.desc": "If you rushed straight here, we suggest machines like the LV Bender, Wiremill, or Mixer first.\nOtherwise, if you made the ULV machines below, we suggest the Assembler, Arc Furnace, Chemical Reactor, or Polarizer.", + "quests.steam_age.what_next.desc": "If you rushed straight here, we suggest machines like the LV Bender, Wiremill, or Mixer first.\nOtherwise, if you made the kinetic machines below, we suggest the Assembler, Arc Furnace, Chemical Reactor, or Polarizer.", "quests.steam_age.alternator.title": "Alternators", "quests.steam_age.alternator.subtitle": "Turning stress into power", "quests.steam_age.alternator.desc.1": "If you've got a big steam age set up, you probably don't want to immediately scrap it all just to go back to some boilers and LV Steam Turbines. Instead, the &3Alternator&r will convert the SU from your steam engines into electricity. Each steam engine + alternator should give you 1A of LV! Unfortunately, alternators convert stress into a different electricity system than the one GregTech uses, so you'll need an Energy Converter to turn it into usable LV energy.", @@ -1064,8 +1076,8 @@ "quests.stone_age.garlic_bread.task": "1024 slices of Garlic Bread", "quests.stone_age.find_potable_water.title": "Thirsty?", "quests.stone_age.find_potable_water.subtitle": "Remember to drink water!", - "quests.stone_age.find_potable_water.desc": "Thirst is represented by the blue bar above your hunger. You can and will die of dehydration if you dont keep your thirst meter filled! The easiest way to have a drink is by drinking from natural ponds in the wild, by right-clicking on them with an empty hand.\n\nYou don't have to worry about purifying water here, though Salt Water will just make you more thirsty.", - "quests.stone_age.find_potable_water.task": "A source of fresh Water", + "quests.stone_age.find_potable_water.desc": "Thirst is represented by the blue bar above your hunger. You can and will die of dehydration if you dont keep your thirst meter filled! The easiest way to have a drink is by drinking from natural ponds in the wild, by right-clicking on them with an empty hand.\nTo complete this quest, you need to drink a Potable source of water, can be regular or river water. You may need to drink multiple times so the quest completes properly\n\nYou don't have to worry about purifying water here, though Salt Water will just make you more thirsty.", + "quests.stone_age.find_potable_water.task": "Drink from a Water Source with your Hand. (Not Salty or Hot)", "quests.stone_age.hydration.title": "Mechanic: Hydration", "quests.stone_age.hydration.subtitle": "Yet another bar to keep full...", "quests.stone_age.hydration.desc": "Water is an important resource, not just for staying hydrated! Setting up a base near a fresh lake or river is recommended, so you have easy access to the stuff. Other items can quench your thirst, such as certain types of food or drinks.\n\nWater won't always be available when you go exploring, however, so here are some ways to carry drinks around with you. Drinking consumes 100mB from the container.", @@ -1231,114 +1243,117 @@ "quests.metal_age.copper_anvil.subtitle": "It's all been building up to this!", "quests.metal_age.copper_anvil.desc": "Congratulations! You've officially finished the Stone Age and entered the Metallurgy Age! With your Copper Anvil, the next step is to climb up the Anvil Tiers, and each time you unlock a new Tier, new tools and possibilities will be available to make your life progressively easier. Now go and become a master smith!", "quests.tfg": "TerraFirmaGreg - Modern", - "quests.tfg.subtitle": "Welcome to TerraFirmaGreg - Modern!", - "quests.tfg.welcome.title": "Welcome to TerraFirmaGreg - Modern!", + "quests.tfg.subtitle": "Welcome to TerraFirmaGreg!", + "quests.tfg.welcome.title": "Welcome to TerraFirmaGreg!", "quests.tfg.welcome.subtitle": "Survival Modpack As It Should've Been", - "quests.tfg.welcome.desc": "Thank you for playing TerraFirmaGreg Modern!\n\nIn TerraFirmaGreg - Modern, you will be put to the test to take control of a world hostile to unprepared life, and bring it to an Industrial Wonderland. Start from humble beginning picking up rocks, and end traversing interstellar space!", + "quests.tfg.welcome.desc": "Thank you for starting TerraFirmaGreg Modern!\n\nIn this modpack, you will be put to the task of taking control of untouched wilderness and turning it to an industrial wonderland. Start from humble beginning picking up rocks, and end while traversing interstellar space!", "quests.tfg.create_team.title": "How to create a team?", - "quests.tfg.create_team.subtitle": "Do you play with friends? Surprising...", - "quests.tfg.create_team.desc": "You can create a team to complete quests together. To do this, open your inventory, then in the upper left corner select the button where 3 colorful people are drawn, then an interface will open in which you can create a team, use the ยงaCreate a teamยงr button, then give it a name and possibly some other parameters, after successful creating a team, you can invite other players to it using the plus button in the green circle in the upper right corner, in the future your quests will be synchronized and any team member will be able to complete them. Good luck!", + "quests.tfg.create_team.subtitle": "Do you play with friends?", + "quests.tfg.create_team.desc": "You can create a team to complete quests together. To do this, open your inventory, then in the upper left corner select the button where 3 colorful people are drawn, then an interface will open in which you can create a team. Click the ยงaCreate a teamยงr button, then give it a name and possibly some other parameters, and after successfully creating a team, you can invite other players to it using the plus button in the green circle in the upper right corner. From this point onwards, your quests will be synchronized and any team member will be able to complete them. Good luck!", "quests.tfg.capture_territory.title": "How to capture territory?", - "quests.tfg.capture_territory.subtitle": "Or how to load chunks in your territory", - "quests.tfg.capture_territory.desc": "You can private the chunks you want if you play on a server, for example. How to do it? Use the button to open the mini-map, then select the chunks that you want to capture, then by clicking on the right mouse button, select ยงaCapture territoryยงr from the list, it seems to be the third item from the bottom, voila, you have captured the territory. Attention: your teammates will be able to break blocks in your region, which is logical.", + "quests.tfg.capture_territory.subtitle": "And how to load chunks in your territory", + "quests.tfg.capture_territory.desc": "If you play on a server, you might want to claim your territory so other players can't interfere. Use the Open Map key (default \"M\") to open the map, then right-click the chunk you want to claim, and select Claim Chunk. There is a limit to this, so you can't claim everything. You can right-click on a chunk again to Forceload (aka \"chunk load\") it. Claiming chunks will include your whole team, if you're using one.", "quests.tfg.field_guide.title": "Important information about quests!", "quests.tfg.field_guide.subtitle": "I need to read more?", - "quests.tfg.field_guide.desc": "The quests are still in development, more descriptions and more will be added in the future. You can partially use the TFC book to find the information you need. &cFull quests in each branch with translation will appear in update 1.0.0, since now the developers have very little time.&r\n\nRemember that both JEI and the Field Guide are your friends, and you should verify the information in the field guide alongside the quests.\n\nIf you ever loose your Field Guide, you can always access it in your inventory.", + "quests.tfg.field_guide.desc": "The quests are still in development, and we're always working on improving them! A lot of information about specific mechanics are also in your Field Guide, accessible via the Book tab in your inventory.\n\nRemember that both JEI and the Field Guide are your friends, as not everything will be explained through quests.", "quests.tfg.quest_shapes.title": "Information about Quest Shapes.", "quests.tfg.quest_shapes.subtitle": "Turns out shapes help understand these quests.", - "quests.tfg.quest_shapes.desc": "In TerraFirmaGreg most of the custom quests follow a strict set of rules regarding how they look, predominantly their shapes and sizes.\n\n&lGears&r: Gear shaped quests are the biggest in each quest category, they represent the Start and End of questlines. You can consider these as major end goals.\n&lHearts&r: Heart shaped quests are &ooptional&r, they're not necesary for progression and mostly serve for completionist type players. Some optional quests may be a bit silly...\n&lOctagons:&r Octagons are important marks on certain quests, they represent milestones.\n&lSizes:&r The bigger the size of the icon, the more important it is in the overall progression.", + "quests.tfg.quest_shapes.desc": "&lGears&r: Gear shaped quests are the biggest in each quest category, they represent the Start and End of questlines. You can consider these as major end goals.\n\n&lHearts&r: Heart shaped quests are &ooptional&r, they're not necesary for progression and mostly serve for completionist type players. Some optional quests may be a bit silly...\n\n&lOctagons:&r Octagons are important marks on certain quests, they represent milestones.", "quests.tfg_tips": "TerraFirmaGreg Tips", "quests.tfg_tips.subtitle": "Tips and Tricks to make your life slightly easier.", "quests.tfg_tips.begining.title": "Tips and Tricks be here!", "quests.tfg_tips.begining.subtitle": "Dear god thats a lot of branches...", - "quests.tfg_tips.begining.desc": "This questline looks into giving you a lot, &o(and i do mean a lot)&r of tips to make your survival situation a bit easier.\n\nEach teeth of this Gear represents a major mod in TerraFirmaGreg, with tips on how to use the mod and get the most out of it. ALL the quests here are not necesary for progression, although some &omay&r be locked behind main questline tasks.", + "quests.tfg_tips.begining.desc": "This quest chapter gives you a lot, &o(and we do mean a lot)&r of tips on how to survive and thrive.\n\nEach branch of this quest tree represents a major mod in TerraFirmaGreg, with tips on how to use the mod and get the most out of it. None of the quests here are necesary for progression, although some &omay&r be locked behind main questline tasks.", "quests.tfg_tips.portable_storage.title": "Portable Storage Solutions", "quests.tfg_tips.portable_storage.subtitle": "Turns out your inventory is quite small.", - "quests.tfg_tips.portable_storage.desc": "In TerraFirmaGreg you may end up exploring a &olot&r of land. During your exploration you're bound to end up picking up a lot of junk. This quest branch looks into making inventory management on the go easier.", + "quests.tfg_tips.portable_storage.desc": "In your travels, you may end up exploring a &olot&r, and you're bound to end up picking up a lot of junk. This quest branch provides several options for expanding your on-the-go inventory.", "quests.tfg_tips.toolbelt.title": "Toolbelt and Pouches", - "quests.tfg_tips.toolbelt.subtitle": "Those tools sure take a lot of space, lets fix that.", - "quests.tfg_tips.toolbelt.desc": "With a Toolbelt, you'll be able to easily manage multiple tools in a single inventory slot, simply swap them around and store them in your toolbelt when necesary! By default it contains 2 slots, but more can be added by crafting &oBelt Pouches&r.\n\nYou're going to need to know how to work Leather and some intermediary metalworking knowledge to craft these items. Check the dependencies!", + "quests.tfg_tips.toolbelt.subtitle": "Those tools sure take up a lot of space, lets fix that!", + "quests.tfg_tips.toolbelt.desc": "With a Toolbelt, you'll be able to easily manage multiple tools without taking up an inventory slot! This handy item can go into a special toolbelt slot in your Curios menu, and you can insert and retrieve tools with a keybind. It starts with only two slots, but more can be added by crafting &oBelt Pouches&r.\n\nDue to a bug with this mod, it's not possible to upgrade your pouch if it's been dyed or has tools inside.", "quests.tfg_tips.maxed_out_toolbelt.title": "ALL THE TOOLS", "quests.tfg_tips.maxed_out_toolbelt.subtitle": "That belt must be very heavy at this point...", - "quests.tfg_tips.maxed_out_toolbelt.desc": "A toolbelt can hold 7 extra pouches, thats 7 extra tools in one belt!", + "quests.tfg_tips.maxed_out_toolbelt.desc": "A toolbelt can hold 7 extra pouches, thats 9 tools in one belt!", "quests.tfg_tips.maxed_out_toolbelt.task": "Obtain a maxed out toolbelt.", "quests.tfg_tips.vessels.title": "Large and Small Vessels", "quests.tfg_tips.vessels.subtitle": "Clay can be quite useful.", - "quests.tfg_tips.vessels.desc": "With some Clay, Wood and Time you can create Vessels, Small vessels have 4 inventory slots while Large Vessels have 9! The Vessel not only lets you store items, but its a great way to melt basic metals to create alloys.", + "quests.tfg_tips.vessels.desc": "With some Clay, Fire, and Time you can create Vessels. Small vessels have 4 inventory slots while Large Vessels have 9! The Small Vessel is not just for item storage, but is also necessary for melting basic metals. The Large Vessel is heavier to carry, but is great for preserving food.", "quests.tfg_tips.portable_cells.title": "Portable Item and Fluid Cells", - "quests.tfg_tips.portable_cells.subtitle": "Isn't this too advanced for this?", - "quests.tfg_tips.portable_cells.desc": "With Applied Energistics 2, you can create Portable Item and Fluid Cells, which allows you to store large amounts of items as pure raw data. Sadly, Applied Energistics 2 is locked behind High Voltage, so it might be a while until you can create these.", + "quests.tfg_tips.portable_cells.subtitle": "Isn't this too advanced?", + "quests.tfg_tips.portable_cells.desc": "With Applied Energistics 2, you can create Portable Item and Fluid Cells, which allow you to store large amounts of items and fluids as pure raw data. Sadly, Applied Energistics 2 is locked behind High Voltage, so it might be a while until you can create these.", "quests.tfg_tips.256m_portable_cells.title": "MEGA Portable Item and Fluid Cells", - "quests.tfg_tips.256m_portable_cells.subtitle": "When Kilobytes isnt enough.", - "quests.tfg_tips.256m_portable_cells.desc": "With MEGA Cells, you can create well, Mega Cells! These cells have LUDICROUS amounts of data storage and as such can be used to store INSANE amounts of items.\n\nFun Fact! A single 256M Portable Item Cell can store up to &lOne Billion&r of a single item type! That's enough to fill over 58 thousand chests!", + "quests.tfg_tips.256m_portable_cells.subtitle": "When Kilobytes aren't enough", + "quests.tfg_tips.256m_portable_cells.desc": "With MEGA Cells, you can create cells with LUDICROUS amounts of data storage!\n\nFun Fact! A single 256M Portable Item Cell can store up to &lOne Billion&r of a single item type! That's enough to fill over 58 thousand chests!", "quests.tfg_tips.backpack_materials.title": "Materials for a Backpack", - "quests.tfg_tips.backpack_materials.subtitle": "Maps not included", - "quests.tfg_tips.backpack_materials.desc": "A Sophisticated Backpack, as the name suggests, its a backpack that can be used to store items. Not only can it store items, but it can also store items that are <oo big&r for regular chests... Don't ask how that works.\n\nAlso, Sophisticated Backpacks can be upgraded to both increase their capacity and add extra functionalities to them!", + "quests.tfg_tips.backpack_materials.subtitle": "Sleeping bag not included", + "quests.tfg_tips.backpack_materials.desc": "A Sophisticated Backpack is the primary way to expand your portable inventory size. The first one will double your normal inventory, and further upgrades increase it even more! It also comes with a wide variety of upgrades to add even more functionality, and different parts of it can be dyed different colors!", "quests.tfg_tips.first_backpack.title": "Your First Backpack", "quests.tfg_tips.first_backpack.subtitle": "No, the map won't magically appear.", - "quests.tfg_tips.first_backpack.desc": "This is your First Sophisticated Backpack. It has a total of 27 inventory slots and 1 slot of a regular backpack upgrade. Check the two branches after this to learn about inventory upgrades and backpack upgrades.", + "quests.tfg_tips.first_backpack.desc": "This is your first Sophisticated Backpack. It has a total of 27 inventory slots and can hold one upgrade. Check the two branches after this to learn about inventory and backpack upgrades.", "quests.tfg_tips.red_steel_backpack.title": "Red Steel Backpack", - "quests.tfg_tips.red_steel_backpack.subtitle": "No, Blue Steel Backpacks don't exist, sorry!", - "quests.tfg_tips.red_steel_backpack.desc": "A Red Steel Backpack is your first proper backpack inventory upgrade, It has a total slot count of 54 and contains 2 slots for regular backpack upgrades such as Crafting or Void upgrades.", + "quests.tfg_tips.red_steel_backpack.subtitle": "Cooler than a Blue Steel Backpack", + "quests.tfg_tips.red_steel_backpack.desc": "A Red Steel Backpack is your first proper backpack inventory upgrade. It has a total slot count of 54 and can hold two upgrades.", "quests.tfg_tips.aluminium_backpack.title": "Aluminium Steel Backpack", "quests.tfg_tips.aluminium_backpack.subtitle": "Is it Aluminum or Aluminium?", - "quests.tfg_tips.aluminium_backpack.desc": "An Aluminium Backpack is your second proper backpack inventory upgrade, It has a total slot count of 81 and contains 3 slots for regular backpack upgrades such as Crafting or Void upgrades.", + "quests.tfg_tips.aluminium_backpack.desc": "An Aluminium Backpack is your second proper backpack inventory upgrade. It has a total slot count of 81 and can hold three upgrades.", "quests.tfg_tips.titanium_backpack.title": "Titanium Backpack", "quests.tfg_tips.titanium_backpack.subtitle": "Almost titanic.", - "quests.tfg_tips.titanium_backpack.desc": "A Titanium Backpack is your third proper backpack inventory upgrade, It has a total slot count of 108 and contains 5 slots for regular backpack upgrades such as Crafting or Void upgrades.", + "quests.tfg_tips.titanium_backpack.desc": "A Titanium Backpack is your third proper backpack inventory upgrade. It has a total slot count of 108 and can hold five upgrades.", "quests.tfg_tips.tungstensteel_backpack.title": "Tungstensteel Backpack", "quests.tfg_tips.tungstensteel_backpack.subtitle": "The ultimate backpack.", - "quests.tfg_tips.tungstensteel_backpack.desc": "The Tungstensteel Backpack is the final backpack inventory upgrade, It has a total slot count of 120 and contains 7 slots for regular backpack upgrades such as Crafting or Void upgrades.", + "quests.tfg_tips.tungstensteel_backpack.desc": "The Tungstensteel Backpack is the final backpack inventory upgrade. It has a whopping slot count of 120 and can hold seven upgrades!", "quests.tfg_tips.backpack_upgrades.title": "Backpack Upgrades", - "quests.tfg_tips.backpack_upgrades.subtitle": "When Inventory Slots just don't cut it.", - "quests.tfg_tips.backpack_upgrades.desc": "Backpack Upgrades can be installed in your Sophisticated Backpacks, giving your backpack new abilities and utilities.\n\nYou'll need a Blast Furnace to be able to craft these upgrade bases.", + "quests.tfg_tips.backpack_upgrades.subtitle": "More than just a backpack", + "quests.tfg_tips.backpack_upgrades.desc": "Backpack Upgrades can be installed in your Sophisticated Backpacks, giving your backpack new abilities and utilities.\n\nYou'll need access to Steel to be able to craft these upgrade bases.", "quests.tfg_tips.crafting_upgrade.title": "Crafting Upgrade", "quests.tfg_tips.crafting_upgrade.subtitle": "A Workbench on the go!", - "quests.tfg_tips.crafting_upgrade.desc": "The Crafting Upgrade lets you carry a WorkBench in your backpack wherever you go, its pretty much mandatory.", + "quests.tfg_tips.crafting_upgrade.desc": "The Crafting Upgrade lets you carry a Workbench in your backpack wherever you go. You'll wonder how you lived without it!", "quests.tfg_tips.advanced_upgrades.title": "Advanced Upgrades", - "quests.tfg_tips.advanced_upgrades.subtitle": "When the regular just doesn't cut it.", - "quests.tfg_tips.advanced_upgrades.desc": "Certain upgrades for your backpack can be upgraded to advanced upgrades. Advanced upgrades contain more utilities overall and improve the functionality of the original version. Try crafting a Filter and Advnaced Filter upgrade to complete this quest.", + "quests.tfg_tips.advanced_upgrades.subtitle": "Upgrades but yellow", + "quests.tfg_tips.advanced_upgrades.desc": "Certain upgrades for your backpack can be upgraded to advanced upgrades. Advanced upgrades have more functionality than their base versions, such as allowing extra filter types or being more configurable. Try crafting a Filter and Advanaced Filter upgrade to complete this quest.", "quests.tfg_tips.all_backpack_upgrades.title": "ALL THE UPGRADES", - "quests.tfg_tips.all_backpack_upgrades.subtitle": "You can't even fit all of these in a single backpack tho...", + "quests.tfg_tips.all_backpack_upgrades.subtitle": "You can't even fit all of these in a single backpack...", "quests.tfg_tips.all_backpack_upgrades.desc": "These are all the backpack upgrades Sophisticated Backpacks have to offer. Can you craft them all?", "quests.tfg_tips.gt.title": "GregTech", "quests.tfg_tips.gt.subtitle": "One third of the modpack's name, after all.", "quests.tfg_tips.gt.desc": "GregTech can be quite intimidating, this quest branch should help you out.", - "quests.tfg_tips.terrafirmacraft.title": "TerraFirmaCraft", - "quests.tfg_tips.terrafirmacraft.subtitle": "Its two thirds of the modpack's name after all.", - "quests.tfg_tips.terrafirmacraft.desc": "TerraFirmaCraft is one of the main mods for TerraFirmaGreg. This branch mostly helps out in letting you know about specific &lAdd-Ons&r the modpack has. Such as Aged Alcohol and Canes.", + "quests.tfg_tips.terrafirmacraft.title": "TerraFirmaCraft Addons", + "quests.tfg_tips.terrafirmacraft.subtitle": "The other two thirds of the modpack's name", + "quests.tfg_tips.terrafirmacraft.desc": "TerraFirmaCraft is one of the main mods for TerraFirmaGreg. This branch mostly focuses on some of its survival features and other &lAdd-Ons&r the modpack has, such as Aged Alcohol and Canes.", "quests.tfg_tips.cane.title": "Walking Canes", - "quests.tfg_tips.cane.subtitle": "You can even whack people with it!", - "quests.tfg_tips.cane.desc": "A Walking Cane allows you to completely overcome any walk-thru block's slow down effects, such as snow and leaf litters. As long as you're holding one in one of your hands that is.", + "quests.tfg_tips.cane.subtitle": "You can even whack people with them!", + "quests.tfg_tips.cane.desc": "A Walking Cane allows you to completely ignore any block that slows your movement, such as snow and leaf litter, as long as you're carrying it in your main or off-hand.", "quests.tfg_tips.cane.task": "Any Cane", "quests.tfg_tips.glassblowing.title": "Glassblowing", "quests.tfg_tips.glassblowing.subtitle": "Realistic Glaswsworking!", - "quests.tfg_tips.glassblowing.desc": "In TerraFirmaCraft, to work with Glass items you need to create a Glassblowing station.\n\nThe Glassblowing station will require some sort of Blowpipe, and a small platform made out of Kaolin Clay to pour the molten glass. You'll need this station to be able to achieve Low Voltage, So it's a good idea to start working on this as soon as possible.\n\nTip: A BlowPipe can be used as a Tong to avoid burning yourself when picking up hot items, handy!", - "quests.tfg_tips.glassblowing.task.1": "At least 9x Kaolin Clay Blocks.", + "quests.tfg_tips.glassblowing.desc": "In TerraFirmaCraft, to create any sort of glass pane or block, you'll need to create a Glassblowing station.\n\nGlassblowing will require some sort of Blowpipe, and a small platform made out of glassblowing blocks to pour the molten glass. Check out the field guide for more information on the shape of the platform and what blocks are valid to use. You'll have access to glassblowing as soon as you can shape Brass!", + "quests.tfg_tips.glassblowing.task.1": "Any glassblowing blocks.", "quests.tfg_tips.glassblowing_tools.title": "Glassblowing Tools", - "quests.tfg_tips.glassblowing_tools.subtitle": "Tools for the Trade.", - "quests.tfg_tips.glassblowing_tools.desc": "To work with glass you'll need different tools for each task.\n\n&lPaddle&r: Performs flatten, Mainly used for creating Glass Panes and Lamp Glasses.\n&lGem Saw&r: A saw utilizing precious gems which can cut thru the glass. Not only is this used in recipes, but you can use it to break glass blocks and you'll get the block back instead of shattering the block!\n&lJacks&r: Used to pinch glasses, mostly used for containers such as glass bottles.\n&lWool Cloth&r: Used for rolling glass, used for lenses and jars.", + "quests.tfg_tips.glassblowing_tools.subtitle": "Tools of the Trade", + "quests.tfg_tips.glassblowing_tools.desc": "To work with glass, you'll need different tools for each task.\n\n&lPaddle&r: Performs flatten, Mainly used for creating Glass Panes and Lamp Glasses.\n&lGem Saw&r: A saw that can safely cut glass without breaking it. This isn't just used in recipes, but can be used to pick up glass and gem buds in-world as well!\n&lJacks&r: Used to pinch glass, mostly used for containers such as glass bottles.\n&lWool Cloth&r: Used for rolling glass, used for lenses and jars.", "quests.tfg_tips.glass_blocks.title": "Glass Blocks", "quests.tfg_tips.glass_blocks.subtitle": "Get yourself some windows.", - "quests.tfg_tips.glass_blocks.desc": "You may have noticed that depending with what type of sand you use to create the glass batch, your glasses will have different colors. Check out the Field Guide's section on Glassblowing to learn different ways to make specific colors. In the future you'll be able to use liquids such as Chlorine to bleach any kind of glass into regular glass.\n\nTip: If you're looking to make a lot of glass dust, try using glass panes and then macerating them, with a big enough Kaolin Clay platform you'll end up getting far more glass dust than what you'd obtain via just macerating a single block.", + "quests.tfg_tips.glass_blocks.desc": "Depending on the type of sand you use to create the glass batch, your glass will have different colors. Check out the Field Guide's section on Glassblowing to learn different ways to make specific colors. Later on, you'll be able to use chemicals to dye glass more easily.\n\nTip: If you're looking to make a lot of Glass Blocks and have access to an Alloy Smelter, it's more efficient to make glass panes and then macerate them, since one batch can make up to 16 at a time!", "quests.tfg_tips.lamps.title": "Lamps", "quests.tfg_tips.lamps.subtitle": "These are pretty.", - "quests.tfg_tips.lamps.desc": "Just like in regular Minecraft, Lamps can be hung down from the ceiling or placed on top of a block and give out a moderate amount of light. Lamps consume different kinds of fluid to keep themselves lit, some fuels last indefinetly but require particularly sturdy lamps.", + "quests.tfg_tips.lamps.desc": "Just like in regular Minecraft, Lamps can be hung down from the ceiling or placed on top of a block and give out light. Lamps consume different kinds of fuels to keep themselves lit. Some fuels can last indefinitely, but require particularly sturdy lamps.", "quests.tfg_tips.creosote.title": "Lamp Fuel: Creosote", - "quests.tfg_tips.creosote.subtitle": "If you have a bunch of it laying around...", - "quests.tfg_tips.creosote.desc": "Creosote from GregTech can be utilized as a lamp fuel, a full lamp of the stuff lasts for 1 month and 2 days.", + "quests.tfg_tips.creosote.subtitle": "If you have a bunch of it lying around...", + "quests.tfg_tips.creosote.desc": "Creosote can be used as a lamp fuel, but a full lamp of the stuff only lasts for 10 days.", "quests.tfg_tips.creosote.task": "A Bucket of Creosote", "quests.tfg_tips.tallow.title": "Lamp Fuel: Tallow", "quests.tfg_tips.tallow.subtitle": "Animal Fat", - "quests.tfg_tips.tallow.desc": "Tallow can be utilized as lamp fuel, a full lamp of the stuff lasts for 2 months and 2 days.", + "quests.tfg_tips.tallow.desc": "Tallow can be used as lamp fuel. A full lamp of it will last 18 days.", "quests.tfg_tips.tallow.task": "A Bucket of Tallow", "quests.tfg_tips.olive_oil.title": "Lamp Fuel: Olive Oil", "quests.tfg_tips.olive_oil.subtitle": "Lilbito'liveoil", - "quests.tfg_tips.olive_oil.desc": "Olive Oil can be utilized as lamp fuel, while a bit expensive and tedious to craft, a full lamp of the stuff lasts for 10 months and 3 days.", + "quests.tfg_tips.olive_oil.desc": "Olive Oil can be used as lamp fuel, and while it's more difficult to craft than the others, a full lamp of it lasts for 83 days!", "quests.tfg_tips.olive_oil.task": "A Bucket of Olive Oil", "quests.tfg_tips.lava_lamp.title": "Lamp Fuel: Lava?", "quests.tfg_tips.lava_lamp.subtitle": "Not as mesmerizing as the real deal", - "quests.tfg_tips.lava_lamp.desc": "With a very heat resistant metal such as Blue Steel, you can create a Blue Steel Lamp. The Blue Steel Lamp can be filled with Lava, giving you an indefinite source of light.\n\nCareful handling a filled lava lamp, its very hot.", + "quests.tfg_tips.lava_lamp.desc": "With the very heat resistant metal known as Blue Steel, you can create a Blue Steel Lamp. The Blue Steel Lamp can be filled with Lava, giving you an indefinite source of light.\n\nCareful handling a filled lava lamp, it's very hot.", + "quests.tfg_tips.glowstone_lamp.title": "Lamp Fuel: Glowstone", + "quests.tfg_tips.glowstone_lamp.subtitle": "The best lamp fuel", + "quests.tfg_tips.glowstone_lamp.desc": "You'll need access to electricity in order to liquefy glowstone, but if you like the look of the lamps, you can use Liquid Glowstone to fuel them indefinitely. This can be used in any of the lamp types, and isn't hot either!", "quests.tfg_tips.charcoal_pile.title": "Charcoal Pile", "quests.tfg_tips.charcoal_pile.subtitle": "You're going to need this", "quests.tfg_tips.charcoal_pile.desc.1": "Charcoal Piles are a multiblock structure that can be built in the early game to generate large quantities of Charcoal. You're going to need &oa lot&r of Charcoal if you want to succeed in TerraFirmaGreg, as it's key for working with metals, creating Wrought Iron and creating Steel.\n\nBegin by digging down a pit.", diff --git a/kubejs/assets/tfg/textures/item/fletching.png b/kubejs/assets/tfg/textures/item/fletching.png new file mode 100644 index 0000000000000000000000000000000000000000..1d9422fdc30c1dcf288f27cd7d4268e2b6a8d91d GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_p+wo-U3d7QIV@5B9bg@W{;H#=5IP=tlrYYHPj2l*EfnMNtoqPXGTVy?KYqnk|PW zO?CNp=7yh=%Eu%BTNat%dYnt1nJKtq*Z<{*VLuqdF%#Xs0XBN&& zk1Jk3PtYaQc=61O)%9$9zlVgzac&ZOwaf1N>s^c9S9d;tY!MI|y0dkK$D~!i{3RLY z6sP~$#v1z6qHoT!mtub+iPZ!4!i{7P^ef@<4McU>Y&*f+-xzYLdRKm*ujv%hiU-lse|Kx>Z1)W_C6C34S z%4h7l*0Df3L?if;(;ucN7H8|+%!PB$l^)%qz{!2@=~>J7wfBnOi7pj+K9SGB)U-D3 z;pLN@Pc8U%ty?@rY4*tv*^jrsNH@Luy0pel-aNlosQ zRT|5-sJX@I?w&f+!?%CvJpEg1r+X%NZJ1?O-I)gm|5l$e;90a$V&c5GIGg!t+1Zo( z`uMz-3MnrxpIP~{hyVS3MJ0xevusL-4jyFmJF6&H@0?RHme%_JB~vy@UNrHQY-@bI zi-(U_@SRy?+`nT{R=vwIV=^)qhOMr&J+8#CV_o-6VMVF##5QG>$zm@r|DM@4anDXU`7m+IP>c z^zAQR7nW?*#`Dh?uiroa=T6H%b@tnGgI9;`ymR$vl-ARy`XXGsOo9)e_rLGpXmx5l z&&@rh%k`VL>Yuj8jt%qts?R1TKkns_o-G~p-(oq_L51Ah+#Tz@&1QcLh<&Q%xaY3< zY2_0s#zC6XuP$|HDB9Vh*89^eJ#XLL+lMYXo;!DX{@YxxZD-@`)YZHFC(rqA{h#@; XGmFrQq6l*a1_lOCS3j3^P6gdWD(TV9(jku7_$EAx2g<#khU@5pSCcHb7L z`TyX**Or;Vv-Vs+7NXgqs5s@>^ZUm)-}mnF_n2OxwJTXqQRVMfk6#mi-d0^}C*GX> zboOfP=_XT`&6@aT+iZ@h`X}n8QaCRkFg#~;OfyMJ;yhQ+X1CKD9~A2R*&$}Lj+KAr z?{%l*S_^dy)-9bDd`w^ks{u!U_Cv{pm=lj9-|S9b7<%+^f=$Q#w3+Fw%TD==_BVg5 z2w0uEFtpXP@|Ktl!{rv6xkk%aD;bvce&4ja=jDUir~@S*|7l&hdHnb4jc(e&G{db1EAg|1jtt;h&+~F@IUBe1l~}U4z&o_A?q!Y_{us+nc)a zeW(rJvF0aC^CsTBwC%$kz3iVCz^>iXSjx8fyTJU1tZS8Jf-h8cpa02p-mp*e!=C0+ zwt4;^Hha}PI#zpE;q7b{gA)h7cA76pzNk2Fo?6cvepT7c3Ew_d&HVfE`5LxQx9=z) zud>)N<=L^L9j6+O>g;$C?7H(?XT7THp(TAYj54aEH80Ib`&1{AE!7@4fAbfwO&W4s zmI;l8SN^J|oT$6tGE>G+WWwX7&YQ0O?sFvXD~eCn;M*M2z2*JKb-(>D&wG@B-rM*(sD`6%;rnW zJo#1rZ;HF8a=Y!-$wl{0GtF`fnyM1um+$iPL)>=LCCy(Fs(Q5U8ul74I(DsZhoN@0 z5tn<_?Nh#~N8Gqy_FbAJR(k%!y$YU}{;zMXYg^@iBk1bi$g7spd3#?Ree2eAUFmh! zM4KhIqEAI>7%4?N%b%YVX7cgvwsTjVU;hy){`}4J*|SNnwohGk!+6=gwRItPcmFCi zuW*T7bML{Y%lr22+1imO@NMJkJtbT0lJnD(=)xrT6pgI)~lqH zsGqsczAtgD^-G2`JBp4tFS42X`)Bu2V^e!;qw|+*jKwzf6<=1BH9olLO31hO0@L68 bSu*QiV$e)Q_Y?2pKk?7o*%I9>$G`vpoQx8j literal 1021 zcmb2|=3oGW|92yz{cjtHluiC3c1+JeBKd&Y+fwOEa^DWTUS{ieS?*iZ&feK>I|@^z zr+(u9w*L7N-^?OE>ENXb4o(_ppT949Q!MmK_>$_puDluE9G>;Ilj>6bm3gi{fAm4n z&u6dty=Qp^pYQ~R0P z@YMB(EW{+P2c6bT=D5Nn(QU)6Q2@sd*7^Gg!Qju@M*dB_SWyyZ}slq$qTP+XyV1JespTho0A$cFLSlcrwU5zF0uCVj=ExdwED5#68m-8yQNmyC3=T`PY->b zv*YU`@$J%_aouZHyB1B)%Gbf({>x2?j<*M4?BbM`g+%-P^N(Y>ARVA`}L(0H_ew|lbSVk)pEV%HqzSM-9Nqa{yFYy{@l&}!AAbKX@s4# zZn|EifKiG0--#10_8R=R`@oxh*ONWr*i_|rLQfaoIUlbhxAN!BiIsDn&E7bnbk1zO nmoqrUmM+`0-Z^H|=jN+t$WE6M*KT-euV0~J=0s{j8`#uBL diff --git a/kubejs/data/tfg/worldgen/configured_feature/nether/terrain/clay_patch.json b/kubejs/data/tfg/worldgen/configured_feature/nether/terrain/clay_patch.json index 7704f454c..2be36b86c 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/nether/terrain/clay_patch.json +++ b/kubejs/data/tfg/worldgen/configured_feature/nether/terrain/clay_patch.json @@ -21,8 +21,8 @@ "xz_radius": { "type": "minecraft:uniform", "value": { - "max_inclusive": 4, - "min_inclusive": 2 + "max_inclusive": 5, + "min_inclusive": 3 } } } diff --git a/kubejs/data/tfg/worldgen/configured_feature/nether/terrain/clay_patch_kaolin.json b/kubejs/data/tfg/worldgen/configured_feature/nether/terrain/clay_patch_kaolin.json index 66176b00b..1beeb8f75 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/nether/terrain/clay_patch_kaolin.json +++ b/kubejs/data/tfg/worldgen/configured_feature/nether/terrain/clay_patch_kaolin.json @@ -17,12 +17,12 @@ "feature": "tfg:nether/terrain/clay_patch_kaolin_vegetation", "placement": [] }, - "vertical_range": 2, + "vertical_range": 3, "xz_radius": { "type": "minecraft:uniform", "value": { - "max_inclusive": 5, - "min_inclusive": 3 + "max_inclusive": 6, + "min_inclusive": 4 } } } diff --git a/kubejs/server_scripts/advancedperipherals/recipes.js b/kubejs/server_scripts/advancedperipherals/recipes.js index b2f9be3f5..cb4249129 100644 --- a/kubejs/server_scripts/advancedperipherals/recipes.js +++ b/kubejs/server_scripts/advancedperipherals/recipes.js @@ -2,6 +2,8 @@ const registerAdvancedPeripheralsRecipes = (event) => { + registerAdvancedPeripheralsRecyclingRecipes(event); + event.remove({ mod: 'advancedperipherals' }); //Chat Box diff --git a/kubejs/server_scripts/ae2/recipes.js b/kubejs/server_scripts/ae2/recipes.js index 8b25b2eba..c120022b8 100644 --- a/kubejs/server_scripts/ae2/recipes.js +++ b/kubejs/server_scripts/ae2/recipes.js @@ -191,7 +191,7 @@ const registerAE2Recipes = (event) => { ]).id('tfg:crafting/light_detector') // Annihilation Core - event.shaped('ae2:annihilation_core', [ + event.shaped('2x ae2:annihilation_core', [ 'ABA', 'BDB', 'ABA' @@ -202,7 +202,7 @@ const registerAE2Recipes = (event) => { }).id('tfg:crafting/annihilation_core') // Formation Core - event.shaped('ae2:formation_core', [ + event.shaped('2x ae2:formation_core', [ 'ABA', 'BDB', 'ABA' diff --git a/kubejs/server_scripts/afc/recipes.js b/kubejs/server_scripts/afc/recipes.js index 18b5638c4..058a0b0f3 100644 --- a/kubejs/server_scripts/afc/recipes.js +++ b/kubejs/server_scripts/afc/recipes.js @@ -73,6 +73,13 @@ const registerAFCRecipes = (event) => { .bonus(false) .id('afc:anvil/tree_tap') + event.recipes.gtceu.assembler('afc:tree_tap') + .itemInputs('#forge:ingots/copper') + .circuit(3) + .itemOutputs('afc:tree_tap') + .duration(50) + .EUt(7) + // TreeTap Heating event.recipes.tfc.heating('afc:tree_tap', 1080) .resultFluid(Fluid.of('gtceu:copper', 144)) diff --git a/kubejs/server_scripts/cccbridge/recipes.js b/kubejs/server_scripts/cccbridge/recipes.js index d69d64b9d..8c377a7c0 100644 --- a/kubejs/server_scripts/cccbridge/recipes.js +++ b/kubejs/server_scripts/cccbridge/recipes.js @@ -1,6 +1,8 @@ // priority: 0 const registerCccBridgeRecipes = (event) => { + + registerCccBridgeRecyclingRecipes(event); event.remove({not: [ { id: 'cccbridge:to_target_block' }, diff --git a/kubejs/server_scripts/computer_craft/recipes.js b/kubejs/server_scripts/computer_craft/recipes.js index d9accd226..db1a6f95f 100644 --- a/kubejs/server_scripts/computer_craft/recipes.js +++ b/kubejs/server_scripts/computer_craft/recipes.js @@ -2,6 +2,8 @@ const registerComputerCraftRecipes = (event) => { + registerComputerCraftRecyclingRecipes(event); + // ะฃะดะฐะปะตะฝะธะต ั€ะตั†ะตะฟั‚ะพะฒ ะผะพะดะฐ event.remove({ not: [ { id: 'computercraft:printed_pages' }, diff --git a/kubejs/server_scripts/create/recipes.js b/kubejs/server_scripts/create/recipes.js index 747c5d718..bb4dc57e1 100644 --- a/kubejs/server_scripts/create/recipes.js +++ b/kubejs/server_scripts/create/recipes.js @@ -679,7 +679,7 @@ const registerCreateRecipes = (event) => { B: '#forge:foils/rubber', C: '#forge:tools/wrenches', D: '#forge:tools/knives', - E: 'create:electron_tubes' + E: 'create:electron_tube' }).id('tfg:create/shaped/brass_funnel') event.shaped('2x create:brass_funnel', [ @@ -691,7 +691,7 @@ const registerCreateRecipes = (event) => { B: '#forge:leather', C: '#forge:tools/wrenches', D: '#forge:tools/knives', - E: 'create:electron_tubes' + E: 'create:electron_tube' }).id('tfg:create/shaped/brass_funnel_leather') // ะขัƒะฝะตะปัŒ ะธะท ะถะตะปะตะทะฐ @@ -1517,16 +1517,14 @@ const registerCreateRecipes = (event) => { }).id('tfg:create/shaped/contraption_controls') event.shaped('create:wrench', [ - 'FBB', - 'CAD', - 'AE ' + ' BB', + ' C ', + 'AD ' ], { - A: '#forge:rods/treated_wood', + A: '#forge:rods/wooden', B: '#forge:plates/brass', - C: '#forge:small_gears/wood', - D: '#forge:screws', - E: '#forge:tools/screwdrivers', - F: '#forge:tools/hammers' + C: '#tfg:small_cogwheels', + D: '#forge:tools/hammers' }).id('tfg:create/shaped/wrench') event.shaped('create:goggles', [ @@ -1534,11 +1532,11 @@ const registerCreateRecipes = (event) => { 'AEA', 'C C' ], { - A: '#forge:rings/gold', + A: '#forge:rings/brass', B: '#forge:leather', C: 'tfc:lens', - D: '#forge:screws', - E: '#forge:tools/screwdrivers' + D: 'tfc:glue', + E: '#forge:tools/hammers' }).id('tfg:create/shaped/goggles') event.shaped('create:analog_lever', [ @@ -1611,7 +1609,7 @@ const registerCreateRecipes = (event) => { A: 'create:andesite_casing', B: '#minecraft:plates/wrought_iron', C: 'tfc:glue', - D: '#tfg:cogwheels', + D: '#tfg:small_cogwheels', E: '#forge:tools/wrenches' }).id('tfg:create/shaped/mechanical_bearing') diff --git a/kubejs/server_scripts/endermanoverhaul/recipes.js b/kubejs/server_scripts/endermanoverhaul/recipes.js new file mode 100644 index 000000000..5701fa39f --- /dev/null +++ b/kubejs/server_scripts/endermanoverhaul/recipes.js @@ -0,0 +1,7 @@ +// priority: 0 + +function registerEndermanOverhaulRecipes(event) { + + event.remove({ id: 'endermanoverhaul:corrupted_shield' }) + +} \ No newline at end of file diff --git a/kubejs/server_scripts/firmalife/recipes.js b/kubejs/server_scripts/firmalife/recipes.js index 24ad4009e..e5f80d51b 100644 --- a/kubejs/server_scripts/firmalife/recipes.js +++ b/kubejs/server_scripts/firmalife/recipes.js @@ -47,6 +47,7 @@ const registerFirmaLifeRecipes = (event) => { event.remove({ id: 'firmalife:heating/metal/chromium_block_stairs' }) // - Stainless Steel + event.remove({ id: 'firmalife:alloy/stainless_steel' }) // Ingot event.remove({ id: 'firmalife:casting/stainless_steel_ingot' }) @@ -67,10 +68,10 @@ const registerFirmaLifeRecipes = (event) => { // Rod event.remove({ id: 'firmalife:anvil/stainless_steel_rod' }) - event.remove({ id: 'firmalife:heating/metal/stainless_steel_rod' }) + event.remove({ id: 'firmalife:heating/stainless_steel_rod' }) // Jar lid - event.remove({ id: 'firmalife:heating/metal/stainless_steel_jar_lid' }) + event.remove({ id: 'firmalife:heating/stainless_steel_jar_lid' }) // Plated Blocks event.remove({ id: 'firmalife:crafting/crafting/metal/block/stainless_steel' }) @@ -111,13 +112,32 @@ const registerFirmaLifeRecipes = (event) => { }).id('firmalife:crafting/vat') // Jar Lid - event.recipes.gtceu.assembler(`tfg:firmalife/jar_lid`) - .itemInputs('#forge:ingots/tin') - .circuit(7) - .itemOutputs('16x tfc:jar_lid') + event.recipes.gtceu.fluid_solidifier(`tfg:firmalife/jar_lid`) + .inputFluids(Fluid.of('gtceu:tin', 9)) + .notConsumable('gtceu:cylinder_casting_mold') + .itemOutputs('tfc:jar_lid') .duration(50) .EUt(7) + event.recipes.gtceu.extractor('tfc:jar_lid_extraction') + .itemInputs('tfc:jar_lid') + .outputFluids(Fluid.of('gtceu:tin', 9)) + .duration(50) + .EUt(2) + + event.recipes.gtceu.fluid_solidifier(`firmalife:firmalife/stainless_steel_jar_lid`) + .inputFluids(Fluid.of('gtceu:stainless_steel', 9)) + .notConsumable('gtceu:cylinder_casting_mold') + .itemOutputs('firmalife:stainless_steel_jar_lid') + .duration(50) + .EUt(7) + + event.recipes.gtceu.extractor('firmalife:stainless_steel_jar_extraction') + .itemInputs('firmalife:stainless_steel_jar_lid') + .outputFluids(Fluid.of('gtceu:stainless_steel', 9)) + .duration(50) + .EUt(2) + // Pineapple Fiber event.recipes.gtceu.assembler(`tfg:firmalife/pineapple_fiber`) .itemInputs('firmalife:food/pineapple') @@ -552,6 +572,9 @@ const registerFirmaLifeRecipes = (event) => { event.recipes.tfc.quern('4x firmalife:food/cocoa_powder', 'gtceu:cocoa_dust') .id(`tfg:quern/cocoa_powder`) + event.recipes.tfc.quern('gtceu:cocoa_dust', 'firmalife:food/roasted_cocoa_beans') + .id('tfg:quern/cocoa_dust'); + // Chocolate Ice Cream event.recipes.gtceu.mixer('firmalife:food/chocolate_ice_cream') .itemInputs('firmalife:food/vanilla_ice_cream') @@ -771,6 +794,8 @@ const registerFirmaLifeRecipes = (event) => { // #endregion + // #region Smashed food + event.recipes.gtceu.forge_hammer('firmalife:soybean_paste') .itemInputs('firmalife:food/dehydrated_soybeans') .itemOutputs('firmalife:food/soybean_paste') @@ -788,4 +813,13 @@ const registerFirmaLifeRecipes = (event) => { .itemOutputs('firmalife:food/smashed_white_grapes') .duration(20) .EUt(7) + + // #endregion + + // #region Drying mat alternatives + + event.shaped('firmalife:drying_mat', ['AAA'], { A: 'tfc:plant/leafy_kelp' }).id('tfg:shaped/drying_mat_leafy_kelp') + event.shaped('firmalife:drying_mat', ['AAA'], { A: 'tfc:plant/winged_kelp' }).id('tfg:shaped/drying_mat_winged_kelp') + + // #endregion } diff --git a/kubejs/server_scripts/framed_blocks/recipes.js b/kubejs/server_scripts/framed_blocks/recipes.js index c67e6c838..237152eee 100644 --- a/kubejs/server_scripts/framed_blocks/recipes.js +++ b/kubejs/server_scripts/framed_blocks/recipes.js @@ -510,4 +510,33 @@ const registerFramedBlocksRecipes = (event) => { } }).id('framedblocks:framing_saw/framed_stone_button') + // Lever + + event.shapeless( + Item.of('framedblocks:framed_lever', 1), + [ + 'framedblocks:framed_cube', + 'minecraft:redstone', + '#forge:rods/wooden', + ] + ).id('framedblocks:framed_lever') + + event.custom({ + type: "framedblocks:frame", + additives: [ + { + "count": 1, + "ingredient": { tag: "forge:rods/wooden" } + }, + { + "count": 1, + "ingredient": { item: "minecraft:redstone" } + } + ], + material: 6144, + result: { + item: "framedblocks:framed_lever", + count: 4 + } + }).id('framedblocks:framing_saw/framed_lever') } diff --git a/kubejs/server_scripts/ftb_quests/CustomQuests.js b/kubejs/server_scripts/ftb_quests/CustomQuests.js new file mode 100644 index 000000000..df613051f --- /dev/null +++ b/kubejs/server_scripts/ftb_quests/CustomQuests.js @@ -0,0 +1,41 @@ +// Handles the quest for drinking water. The drinking water quest checks if the player has this stage. +ItemEvents.firstRightClicked(evt => +{ + const FORGE_CAPS = "ForgeCaps"; + const TFC_PLAYERDATA = "tfc:player_data"; + const FOOD = "food"; + const THIRST = "thirst"; + const PREVIOUS_THIRST = "previous_thirst"; + const STAGE = "tfg.stages.quests.drank_fresh_water_with_hand"; + const {player, level} = evt; + + if(evt.target.block == null) + return; + + //We reach for the "food" compound tag, that contains the tfc thirst. + let forgecaps = player.nbt.getCompound(FORGE_CAPS); + let tfc_playerdata = forgecaps.getCompound(TFC_PLAYERDATA); + let food = tfc_playerdata.getCompound(FOOD); + let thirstValue = food.getFloat(THIRST); + + //Do we already keep track of the previous thirst value? if not, put it and then return. + let customData = getTFGPersistentDataRoot(player); + let containsPreviousThirst = customData.contains(PREVIOUS_THIRST); + if(!containsPreviousThirst) + { + customData.putFloat(PREVIOUS_THIRST, thirstValue); + return; + } + + let previousThirstValue = customData.getFloat(PREVIOUS_THIRST); + + //As long as our new thirst is greater than our previous, it means we hydrated ourselves. OFC we need to make sure the block clicked was potable. + let blockID = evt.target.block.id; + let isFreshWater = blockID == "minecraft:water" || blockID == "tfc:fluid/river_water"; + if(isFreshWater && thirstValue > previousThirstValue && !player.stages.has(STAGE)) + { + player.stages.add(STAGE); + } + //Put it back in. + customData.putFloat(PREVIOUS_THIRST, thirstValue); +}) \ No newline at end of file diff --git a/kubejs/server_scripts/greate/recipes.js b/kubejs/server_scripts/greate/recipes.js index dd8769393..dab57c9cb 100644 --- a/kubejs/server_scripts/greate/recipes.js +++ b/kubejs/server_scripts/greate/recipes.js @@ -252,31 +252,33 @@ function registerGreateRecipes(event) { F: '#forge:tools/wrenches' }).id('greate:shaped/aluminium_mechanical_saw') - event.shaped('greate:stainless_steel_mechanical_saw', [ - 'ABA', - 'CDC', - 'FE ' - ], { - A: '#gtceu:circuits/hv', - B: 'gtceu:red_steel_buzz_saw_blade', - C: 'gtceu:hv_electric_motor', - D: 'gtceu:hv_machine_casing', - E: 'greate:stainless_steel_shaft', - F: '#forge:tools/wrenches' - }).id('greate:shaped/stainless_steel_mechanical_saw') + // Removed while we wait for a fix so recipes don't work without being in a Cleanroom - Important for Wafer + + // event.shaped('greate:stainless_steel_mechanical_saw', [ + // 'ABA', + // 'CDC', + // 'FE ' + // ], { + // A: '#gtceu:circuits/hv', + // B: 'gtceu:red_steel_buzz_saw_blade', + // C: 'gtceu:hv_electric_motor', + // D: 'gtceu:hv_machine_casing', + // E: 'greate:stainless_steel_shaft', + // F: '#forge:tools/wrenches' + // }).id('greate:shaped/stainless_steel_mechanical_saw') - event.shaped('greate:titanium_mechanical_saw', [ - 'ABA', - 'CDC', - 'FE ' - ], { - A: '#gtceu:circuits/ev', - B: 'gtceu:ultimet_buzz_saw_blade', - C: 'gtceu:ev_electric_motor', - D: 'gtceu:ev_machine_casing', - E: 'greate:titanium_shaft', - F: '#forge:tools/wrenches' - }).id('greate:shaped/titanium_mechanical_saw') + // event.shaped('greate:titanium_mechanical_saw', [ + // 'ABA', + // 'CDC', + // 'FE ' + //], { + // A: '#gtceu:circuits/ev', + // B: 'gtceu:ultimet_buzz_saw_blade', + // C: 'gtceu:ev_electric_motor', + // D: 'gtceu:ev_machine_casing', + // E: 'greate:titanium_shaft', + // F: '#forge:tools/wrenches' + //}).id('greate:shaped/titanium_mechanical_saw') // #endregion @@ -408,4 +410,4 @@ function registerGreateRecipes(event) { }) // #endregion -} \ No newline at end of file +} diff --git a/kubejs/server_scripts/greate/recipes.removes.js b/kubejs/server_scripts/greate/recipes.removes.js index bd60e3c7b..06c457246 100644 --- a/kubejs/server_scripts/greate/recipes.removes.js +++ b/kubejs/server_scripts/greate/recipes.removes.js @@ -15,9 +15,13 @@ function removeGreateRecipes(event) { event.remove({ id: 'greate:shapeless/large_stainless_steel_cogwheel_from_little' }) event.remove({ id: 'greate:shapeless/large_titanium_cogwheel_from_little' }) + // Until we got a fix from Greate for recipes in a cleanroom + event.remove({ id: 'greate:shaped/stainless_steel_mechanical_saw' }) + event.remove({ id: 'greate:shaped/titanium_mechanical_saw' }) + event.remove({ id: 'greate:splashing/dough' }) event.remove({ mod: 'greate', type: 'create:deploying' }); event.remove({ mod: 'greate', type: 'create:sequenced_assembly' }); event.remove({ mod: 'greate', type: 'gtceu:assembler' }); -} \ No newline at end of file +} diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index 024b8dba2..e03eebeef 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -7,6 +7,9 @@ const registerGTCEURecipes = (event) => { registerGTCEUMetalRecipes(event) + registerGTCEURecyclingRecipes(event) + registerGTCEuTFCMetalsRecipes(event) + registerGTCEuMachineRecipes(event) removeGTCEURecipes(event) @@ -66,6 +69,17 @@ const registerGTCEURecipes = (event) => { //#endregion + event.recipes.gtceu.centrifuge('tfg:beets_to_sugar') + .itemInputs('5x tfc:food/beet') + .inputFluids(Fluid.of('tfc:salt_water', 1000)) + .itemOutputs('3x minecraft:sugar', '3x gtceu:plant_ball', '1x #forge:dusts/salt') + .outputFluids(Fluid.of('minecraft:water', 1000)) + .duration(800) + .EUt(7) + .circuit(3) + + event.smelting('4x tfc:powder/wood_ash', '1x #minecraft:logs_that_burn').id('tfg:wood_ash') + //#region ะ’ั‹ั…ะพะด: ะกะพะปะตะฝะฐั ะฟั‹ะปัŒ + ะ’ะพะดะฐ // ะ”ะตะบั€ะฐั„ั‚ ะฒ ั†ะตะฝั‚ั€ะธั„ัƒะณะต @@ -75,6 +89,7 @@ const registerGTCEURecipes = (event) => { .outputFluids(Fluid.of('minecraft:water', 1000)) .duration(51) .EUt(30) + .circuit(1) // ะ”ะตะบั€ะฐั„ั‚ ะฒ ัะปะตะบั‚ั€ะพะปะฐะนะทะตั€ะต event.recipes.gtceu.electrolyzer('electrolyze_tfc_salt_water') @@ -83,6 +98,7 @@ const registerGTCEURecipes = (event) => { .outputFluids(Fluid.of('gtceu:chlorine', 500), Fluid.of('gtceu:hydrogen', 500)) .duration(720) .EUt(30) + .circuit(2) //#endregion @@ -126,6 +142,13 @@ const registerGTCEURecipes = (event) => { .itemOutput('gtceu:sticky_resin') .id('tfg:pot/sticky_resin_from_conifer_pitch') + event.recipes.gtceu.fluid_solidifier('tfg:fluid_solidifier/latex_heating') + .duration(24*20) + .EUt(30) + .itemInputs('tfc:powder/sulfur') + .itemOutputs('gtceu:sticky_resin') + .inputFluids(Fluid.of('tfg:latex', 1000)) + //#region ะ’ั‹ั…ะพะด: ะ ะฐัั‚ะธั‚ะตะปัŒะฝั‹ะน ัˆะฐั€ะธะบ // 8x ะ’ะฐะฝะธะปัŒะฝะฐั ั€ะฐัั‚ะธั‚ะตะปัŒะฝะพัั‚ัŒ -> Plant Ball (Compressor) @@ -258,6 +281,49 @@ const registerGTCEURecipes = (event) => { 'concrete_from_calcite' ) + //GT light/dark concrete recipe fix + + event.remove({ id: 'gtceu:fluid_solidifier/solidify_concrete_block' }) + event.remove({ id: 'gtceu:chemical_bath/light_to_dark_concrete' }) + + event.recipes.gtceu.fluid_solidifier('gtceu:fluid_solidifier/solidify_light_concrete') + .inputFluids(Fluid.of('gtceu:concrete', 144)) + .notConsumable('1x gtceu:block_casting_mold') + .itemOutputs('1x gtceu:light_concrete') + .duration(98) + .EUt(7) + + event.recipes.gtceu.chemical_bath('gtceu:chemical_bath/dark_concrete') + .inputFluids(Fluid.of('tfc:black_dye', 18)) + .itemInputs('1x gtceu:light_concrete') + .itemOutputs('1x gtceu:dark_concrete') + .duration(20) + .EUt(7) + + event.recipes.gtceu.extractor('gtceu:extractor/extract_light_concrete') + .itemInputs('1x gtceu:light_concrete') + .outputFluids(Fluid.of('gtceu:concrete', 144)) + .duration(98) + .EUt(30) + + event.stonecutting('gtceu:light_concrete_bricks', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_bricks') + event.stonecutting('gtceu:chiseled_light_concrete', 'gtceu:light_concrete').id('tfg:stonecutting/chiseled_light_concrete') + event.stonecutting('gtceu:light_concrete_tile', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_tile') + event.stonecutting('gtceu:light_concrete_small_tile', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_small_tile') + event.stonecutting('gtceu:light_concrete_windmill_a', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_windmill_a') + event.stonecutting('gtceu:light_concrete_windmill_b', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_windmill_b') + event.stonecutting('gtceu:small_light_concrete_bricks', 'gtceu:light_concrete').id('tfg:stonecutting/small_light_concrete_bricks') + event.stonecutting('gtceu:square_light_concrete_bricks', 'gtceu:light_concrete').id('tfg:stonecutting/square_light_concrete_bricks') + + event.stonecutting('gtceu:dark_concrete_bricks', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_bricks') + event.stonecutting('gtceu:chiseled_dark_concrete', 'gtceu:dark_concrete').id('tfg:stonecutting/chiseled_dark_concrete') + event.stonecutting('gtceu:dark_concrete_tile', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_tile') + event.stonecutting('gtceu:dark_concrete_small_tile', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_small_tile') + event.stonecutting('gtceu:dark_concrete_windmill_a', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_windmill_a') + event.stonecutting('gtceu:dark_concrete_windmill_b', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_windmill_b') + event.stonecutting('gtceu:small_dark_concrete_bricks', 'gtceu:dark_concrete').id('tfg:stonecutting/small_dark_concrete_bricks') + event.stonecutting('gtceu:square_dark_concrete_bricks', 'gtceu:dark_concrete').id('tfg:stonecutting/square_dark_concrete_bricks') + //#endregion //#region ะ’ั‹ั…ะพะด: ะ‘ัƒั€ะธะปัŒะฝะฐั ะถะธะดะบะพัั‚ัŒ @@ -289,424 +355,14 @@ const registerGTCEURecipes = (event) => { //#region ะ’ั‹ั…ะพะด: ะŸั‹ะปัŒ ะบะฐะบะฐะพ-ะฑะพะฑะพะฒ - event.recipes.gtceu.assembler('macerate_cocoa') - .itemInputs('firmalife:food/cocoa_beans') + event.recipes.gtceu.macerator('macerate_cocoa') + .itemInputs('firmalife:food/roasted_cocoa_beans') .itemOutputs('gtceu:cocoa_dust') - .duration(400) + .duration(100) .EUt(2) //#endregion - //#region ะ’ั‹ั…ะพะด: Filter Casing - - event.shaped('gtceu:filter_casing', [ - 'AAA', - 'BBB', - 'CDE' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:item_filter', - C: 'gtceu:mv_electric_motor', - D: 'gtceu:steel_frame', - E: '#forge:rotors/steel' - }).id('gtceu:shaped/filter_casing') - - //#endregion - - //#region ะ’ั‹ั…ะพะด: Assembly Line Grating - - event.shaped('2x gtceu:assembly_line_grating', [ - 'ABA', - 'ACA', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: '#forge:rotors/steel', - C: 'gtceu:steel_frame', - D: 'gtceu:mv_electric_motor' - }).id('gtceu:shaped/casing_grate_casing') - - //#endregion - - //#region Gas Collectors - - event.shaped('gtceu:lv_gas_collector', [ - 'ABA', - 'CEC', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:fluid_filter', - C: 'gtceu:lv_electric_pump', - D: '#gtceu:circuits/lv', - E: 'gtceu:lv_machine_hull' - }).id('gtceu:shaped/lv_gas_collector') - - event.shaped('gtceu:mv_gas_collector', [ - 'ABA', - 'CEC', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:fluid_filter', - C: 'gtceu:mv_electric_pump', - D: '#gtceu:circuits/mv', - E: 'gtceu:mv_machine_hull' - }).id('gtceu:shaped/mv_gas_collector') - - event.shaped('gtceu:hv_gas_collector', [ - 'ABA', - 'CEC', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:fluid_filter', - C: 'gtceu:hv_electric_pump', - D: '#gtceu:circuits/hv', - E: 'gtceu:hv_machine_hull' - }).id('gtceu:shaped/hv_gas_collector') - - event.shaped('gtceu:ev_gas_collector', [ - 'ABA', - 'CEC', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:fluid_filter', - C: 'gtceu:ev_electric_pump', - D: '#gtceu:circuits/ev', - E: 'gtceu:ev_machine_hull' - }).id('gtceu:shaped/ev_gas_collector') - - event.shaped('gtceu:iv_gas_collector', [ - 'ABA', - 'CEC', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:fluid_filter', - C: 'gtceu:iv_electric_pump', - D: '#gtceu:circuits/iv', - E: 'gtceu:iv_machine_hull' - }).id('gtceu:shaped/iv_gas_collector') - - event.shaped('gtceu:luv_gas_collector', [ - 'ABA', - 'CEC', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:fluid_filter', - C: 'gtceu:luv_electric_pump', - D: '#gtceu:circuits/luv', - E: 'gtceu:luv_machine_hull' - }).id('gtceu:shaped/luv_gas_collector') - - event.shaped('gtceu:zpm_gas_collector', [ - 'ABA', - 'CEC', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:fluid_filter', - C: 'gtceu:zpm_electric_pump', - D: '#gtceu:circuits/zpm', - E: 'gtceu:zpm_machine_hull' - }).id('gtceu:shaped/zpm_gas_collector') - - event.shaped('gtceu:uv_gas_collector', [ - 'ABA', - 'CEC', - 'ADA' - ], { - A: '#tfg:metal_bars', - B: 'gtceu:fluid_filter', - C: 'gtceu:uv_electric_pump', - D: '#gtceu:circuits/uv', - E: 'gtceu:uv_machine_hull' - }).id('gtceu:shaped/uv_gas_collector') - - //#endregion - - //#region Forge Hammers - - event.shaped('gtceu:lv_forge_hammer', [ - 'ABA', - 'CDC', - 'AEA' - ], { - A: 'gtceu:tin_single_cable', - B: 'gtceu:lv_electric_piston', - C: '#gtceu:circuits/lv', - D: 'gtceu:lv_machine_hull', - E: 'tfc:metal/anvil/steel', - }).id('gtceu:shaped/lv_forge_hammer') - - event.shaped('gtceu:mv_forge_hammer', [ - 'ABA', - 'CDC', - 'AEA' - ], { - A: 'gtceu:copper_single_cable', - B: 'gtceu:mv_electric_piston', - C: '#gtceu:circuits/mv', - D: 'gtceu:mv_machine_hull', - E: 'tfc:metal/anvil/steel', - }).id('gtceu:shaped/mv_forge_hammer') - - event.shaped('gtceu:hv_forge_hammer', [ - 'ABA', - 'CDC', - 'AEA' - ], { - A: 'gtceu:gold_single_cable', - B: 'gtceu:hv_electric_piston', - C: '#gtceu:circuits/hv', - D: 'gtceu:hv_machine_hull', - E: 'tfc:metal/anvil/steel', - }).id('gtceu:shaped/hv_forge_hammer') - - event.shaped('gtceu:ev_forge_hammer', [ - 'ABA', - 'CDC', - 'AEA' - ], { - A: 'gtceu:aluminium_single_cable', - B: 'gtceu:ev_electric_piston', - C: '#gtceu:circuits/ev', - D: 'gtceu:ev_machine_hull', - E: 'tfc:metal/anvil/black_steel', - }).id('gtceu:shaped/ev_forge_hammer') - - event.shaped('gtceu:iv_forge_hammer', [ - 'ABA', - 'CDC', - 'AEA' - ], { - A: 'gtceu:platinum_single_cable', - B: 'gtceu:iv_electric_piston', - C: '#gtceu:circuits/iv', - D: 'gtceu:iv_machine_hull', - E: 'tfc:metal/anvil/black_steel', - }).id('gtceu:shaped/iv_forge_hammer') - - event.shaped('gtceu:luv_forge_hammer', [ - 'ABA', - 'CDC', - 'AEA' - ], { - A: 'gtceu:niobium_titanium_single_cable', - B: 'gtceu:luv_electric_piston', - C: '#gtceu:circuits/luv', - D: 'gtceu:luv_machine_hull', - E: 'tfc:metal/anvil/black_steel', - }).id('gtceu:shaped/luv_forge_hammer') - - event.shaped('gtceu:zpm_forge_hammer', [ - 'ABA', - 'CDC', - 'AEA' - ], { - A: 'gtceu:vanadium_gallium_single_cable', - B: 'gtceu:zpm_electric_piston', - C: '#gtceu:circuits/zpm', - D: 'gtceu:zpm_machine_hull', - E: '#tfc:red_or_blue_anvil', - }).id('gtceu:shaped/zpm_forge_hammer') - - event.shaped('gtceu:uv_forge_hammer', [ - 'ABA', - 'CDC', - 'AEA' - ], { - A: 'gtceu:yttrium_barium_cuprate_single_cable', - B: 'gtceu:uv_electric_piston', - C: '#gtceu:circuits/uv', - D: 'gtceu:uv_machine_hull', - E: '#tfc:red_or_blue_anvil', - }).id('gtceu:shaped/uv_forge_hammer') - - //#endregion - - //#region CokeOven - - // Coke Oven - event.shaped('gtceu:coke_oven', [ - 'ABA', - 'BCB', - 'ABA' - ], { - A: 'gtceu:coke_oven_bricks', - B: '#forge:plates/wrought_iron', - C: '#forge:tools/wrenches' - }).id('gtceu:shaped/coke_oven') - - // Coke Oven Hatch - event.recipes.tfc.no_remainder_shaped_crafting( - event.shaped('gtceu:coke_oven_hatch', [ - 'AB' - ], { - A: 'gtceu:coke_oven_bricks', - B: '#tfc:barrels' - }) - ).id('gtceu:shaped/coke_oven_hatch') - - //#endregion - - // High Pressure Steam Miner - event.replaceInput({ id: 'gtceu:shaped/steam_miner_steel' }, - 'gtceu:lp_steam_miner', 'gtceu:steel_brick_casing') - - //#region ะ’ั‹ั…ะพะด: ะกั‚ะฐะปัŒะฝั‹ะต ะผะฐัˆะธะฝั‹ - - // HP Steam Boilers - event.shaped('gtceu:hp_steam_solid_boiler', [ - 'AEA', - 'ADA', - 'BCB' - ], { - A: '#forge:plates/steel', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: 'gtceu:steel_brick_casing', - D: 'tfc:crucible', - E: '#forge:rods/black_steel' - }).id('gtceu:shaped/steam_boiler_coal_steel') - - event.shaped('gtceu:hp_steam_liquid_boiler', [ - 'AEA', - 'ADA', - 'BCB' - ], { - A: '#forge:plates/steel', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: 'gtceu:steel_brick_casing', - D: '#forge:glass', - E: '#forge:rods/black_steel' - }).id('gtceu:shaped/steam_boiler_lava_steel') - - event.shaped('gtceu:hp_steam_solar_boiler', [ - 'AAA', - 'BCB', - 'EDE' - ], { - A: '#forge:glass_panes', - B: '#forge:double_plates/silver', - C: '#forge:rods/black_steel', - D: 'gtceu:steel_brick_casing', - E: 'gtceu:tin_alloy_small_fluid_pipe', - }).id('gtceu:shaped/steam_boiler_solar_steel') - - // ะญะบัั‚ั€ะฐะบั‚ะพั€ - event.shaped('gtceu:hp_steam_extractor', [ - 'BEB', - 'CAC', - 'DFD' - ], { - A: 'gtceu:steel_brick_casing', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: '#forge:plates/steel', - D: '#forge:plates/wrought_iron', - E: '#forge:glass_panes', - F: '#forge:rings/black_steel' - }).id('gtceu:shaped/steam_extractor_steel') - - // ะ”ั€ะพะฑะธั‚ะตะปัŒ - event.shaped('gtceu:hp_steam_macerator', [ - 'BFB', - 'CAC', - 'DED' - ], { - A: 'gtceu:steel_brick_casing', - B: '#forge:small_gears/wrought_iron', - C: '#forge:plates/steel', - D: '#forge:rods/black_steel', - E: 'gtceu:tin_alloy_small_fluid_pipe', - F: '#forge:raw_materials/diamond' - }).id('gtceu:shaped/steam_macerator_steel') - - // ะšะพะผะฟั€ะตััะพั€ - event.shaped('gtceu:hp_steam_compressor', [ - 'BCB', - 'EAE', - 'DFD' - ], { - A: 'gtceu:steel_brick_casing', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: '#forge:plates/steel', - D: '#forge:plates/wrought_iron', - E: 'minecraft:piston', - F: '#forge:rods/black_steel' - }).id('gtceu:shaped/steam_compressor_steel') - - // ะœะพะปะพั‚ - event.shaped('gtceu:hp_steam_forge_hammer', [ - 'DFD', - 'BEB', - 'CAC' - ], { - A: 'gtceu:steel_brick_casing', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: '#forge:plates/steel', - D: '#forge:plates/wrought_iron', - E: '#forge:ingots/black_steel', - F: 'minecraft:piston' - }).id('gtceu:shaped/steam_hammer_steel') - - // ะŸะตั‡ัŒ - event.shaped('gtceu:hp_steam_furnace', [ - 'BCB', - 'DAD', - 'FFF' - ], { - A: 'gtceu:steel_brick_casing', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: '#forge:plates/steel', - D: '#forge:plates/wrought_iron', - F: '#forge:rods/black_steel' - }).id('gtceu:shaped/steam_furnace_steel') - - // ะกะฟะปะฐะฒั‰ะธะบ - event.shaped('gtceu:hp_steam_alloy_smelter', [ - 'FCF', - 'DAD', - 'CBC' - ], { - A: 'gtceu:steel_brick_casing', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: '#forge:plates/steel', - D: '#forge:plates/wrought_iron', - F: '#forge:rods/black_steel' - }).id('gtceu:shaped/steam_alloy_smelter_steel') - - // ะ‘ะปะพะบะพ-ะปะพะผะฐั‚ะตะปัŒ - event.shaped('gtceu:hp_steam_rock_crusher', [ - 'ECE', - 'BAB', - 'DDD' - ], { - A: 'gtceu:steel_brick_casing', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: '#forge:drill_heads', - D: '#forge:rods/wrought_iron', - E: '#forge:screws/wrought_iron' - }).id('gtceu:shaped/steam_rock_breaker_steel') - - // Miner - event.shaped('gtceu:hp_steam_miner', [ - 'EFE', - 'BAB', - 'DCD' - ], { - A: 'gtceu:steel_brick_casing', - B: 'gtceu:tin_alloy_small_fluid_pipe', - C: '#forge:drill_heads', - D: '#forge:rods/steel', - E: '#forge:plates/wrought_iron', - F: '#gtceu:circuits/ulv' - }).id('gtceu:shaped/steam_miner_steel') - - //#endregion - //#region ะกั‚ะตะบะปะพะดัƒะฒะบะฐ // Glass Tube @@ -761,18 +417,6 @@ const registerGTCEURecipes = (event) => { C: 'tfc:glue' }).id('gtceu:shaped/gear_wood') - // ะšะพะฝั‚ั€ะพะปะปะตั€ ั‚ะตะฟะปะธั†ั‹ - event.shaped('gtceu:greenhouse', [ - 'ABA', - 'CDC', - 'BCB' - ], { - A: '#gtceu:circuits/mv', - B: 'gtceu:copper_single_cable', - C: '#gtceu:circuits/mv', - D: 'gtceu:solid_machine_casing' - }).id('tfg:shaped/greenhouse') - // Compressed Coke Clay event.shaped('gtceu:compressed_coke_clay', [ 'AAA', @@ -870,274 +514,6 @@ const registerGTCEURecipes = (event) => { //#endregion - //#region Long Distance Pipelines - - event.remove({ id: 'gtceu:assembler/long_distance_item_pipe' }) - event.recipes.gtceu.assembler('long_distance_item_pipe') - .itemInputs( - '1x gtceu:tin_large_item_pipe', - '4x #forge:plates/steel') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 144 / 4)) - .itemOutputs('32x gtceu:long_distance_item_pipeline') - .circuit(2) - .duration(300) - .EUt(24) - - event.remove({ id: 'gtceu:assembler/long_distance_fluid_pipe' }) - event.recipes.gtceu.assembler('long_distance_fluid_pipe') - .itemInputs( - '1x gtceu:bronze_large_fluid_pipe', - '4x #forge:plates/steel') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 144 / 4)) - .itemOutputs('32x gtceu:long_distance_fluid_pipeline') - .circuit(2) - .duration(300) - .EUt(24) - - //#endregion - - //#region LV hull - - event.replaceInput('gtceu:shaped/lv_machine_hull', '#forge:plates/wrought_iron', '#forge:plates/red_steel') - - //#endregion - - //#region make colored steel a bit easier to compensate - - event.recipes.gtceu.arc_furnace('tfg:black_steel_dust_to_ingot') - .itemInputs('gtceu:black_steel_dust') - .itemOutputs('tfc:metal/ingot/black_steel') - .inputFluids(Fluid.of('gtceu:oxygen', 72)) - .duration(500) - .EUt(24) - - event.recipes.gtceu.arc_furnace('tfg:red_steel_dust_to_ingot') - .itemInputs('gtceu:red_steel_dust') - .itemOutputs('tfc:metal/ingot/red_steel') - .inputFluids(Fluid.of('gtceu:oxygen', 72)) - .duration(700) - .EUt(32) - - event.recipes.gtceu.arc_furnace('tfg:blue_steel_dust_to_ingot') - .itemInputs('gtceu:blue_steel_dust') - .itemOutputs('tfc:metal/ingot/blue_steel') - .inputFluids(Fluid.of('gtceu:oxygen', 72)) - .duration(700) - .EUt(32) - - //#endregion - - //#region add regular furnace recipes for other tfc alloys - - event.remove({ id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze_gas' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_black_bronze' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_black_bronze_gas' }) - event.remove({ id: 'gtceu:vacuum_freezer/cool_hot_black_bronze_ingot' }) - event.remove({ id: 'gtceu:vacuum_freezer/black_bronze' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_sterling_silver' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_sterling_silver_gas' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_rose_gold' }) - event.remove({ id: 'gtceu:electric_blast_furnace/blast_rose_gold_gas' }) - - event.smelting('gtceu:bismuth_bronze_ingot', 'gtceu:bismuth_bronze_dust') - event.smelting('gtceu:black_bronze_ingot', 'gtceu:black_bronze_dust') - event.smelting('gtceu:sterling_silver_ingot', 'gtceu:sterling_silver_dust') - event.smelting('gtceu:rose_gold_ingot', 'gtceu:rose_gold_dust') - - //#endregion - - // Add circuit to assembler recipe for redstone lamp. - // Avoids conflict with AE2 smart cables. - event.remove({ id: 'gtceu:assembler/redstone_lamp' }) - event.recipes.gtceu.assembler('redstone_lamp') - .itemInputs('4x #forge:dusts/redstone', '4x #forge:dusts/glowstone') - .itemOutputs('1x minecraft:redstone_lamp') - .circuit(1) - .duration(100) - .EUt(1) - - // Clear NBT on tanks with shapeless crafts. - const TANK_NAMES = [ - "lv_super", - "mv_super", - "hv_super", - "ev_super", - "iv_quantum", - "luv_quantum", - "zpm_quantum", - "uv_quantum", - "uhv_quantum", - ] - - TANK_NAMES.forEach(prefix => { - // Craft super tanks to remove their NBT data. - event.shapeless(`gtceu:${prefix}_tank`, [`gtceu:${prefix}_tank`]) - // Craft super chests to remove their NBT data. - event.shapeless(`gtceu:${prefix}_chest`, [`gtceu:${prefix}_chest`]) - }) - - // red alloy, because crucible always makes 4+1=5 - - event.remove({ id: 'gtceu:mixer/red_alloy' }) - event.recipes.gtceu.mixer('tfg:red_alloy_mixer') - .itemInputs('1x gtceu:copper_dust', '4x minecraft:redstone') - .itemOutputs('5x gtceu:red_alloy_dust') - .circuit(2) - .duration(100) - .EUt(7) - - event.remove({ id: 'gtceu:centrifuge/red_alloy_separation' }) - event.recipes.gtceu.centrifuge('tfg:red_alloy_separation') - .itemInputs('5x gtceu:red_alloy_dust') - .itemOutputs('1x gtceu:copper_dust', '4x minecraft:redstone') - .duration(900) - .EUt(30) - - event.remove({ id: 'gtceu:alloy_smelter/copper_dust_and_redstone_dust_into_red_alloy' }) - event.recipes.gtceu.alloy_smelter('tfg:copper_dust_and_redstone_dust_into_red_alloy') - .itemInputs('1x gtceu:copper_dust', '4x minecraft:redstone') - .itemOutputs('5x gtceu:red_alloy_ingot') - .duration(50) - .EUt(16) - - event.remove({ id: 'gtceu:alloy_smelter/annealed_copper_dust_and_redstone_dust_into_red_alloy' }) - event.recipes.gtceu.alloy_smelter('tfg:annealed_copper_dust_and_redstone_dust_into_red_alloy') - .itemInputs('1x gtceu:annealed_copper_dust', '4x minecraft:redstone') - .itemOutputs('5x gtceu:red_alloy_ingot') - .duration(50) - .EUt(16) - - event.remove({ id: 'gtceu:alloy_smelter/copper_ingot_and_redstone_dust_into_red_alloy' }) - event.recipes.gtceu.alloy_smelter('tfg:copper_ingot_and_redstone_dust_into_red_alloy') - .itemInputs('1x minecraft:copper_ingot', '4x minecraft:redstone') - .itemOutputs('5x gtceu:red_alloy_ingot') - .duration(50) - .EUt(16) - - event.remove({ id: 'gtceu:alloy_smelter/annealed_copper_ingot_and_redstone_dust_into_red_alloy' }) - event.recipes.gtceu.alloy_smelter('tfg:annealed_copper_ingot_and_redstone_dust_into_red_alloy') - .itemInputs('1x gtceu:annealed_copper_ingot', '4x minecraft:redstone') - .itemOutputs('5x gtceu:red_alloy_ingot') - .duration(50) - .EUt(16) - - // steam machines - - event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_forge_hammer' }) - event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_forge_hammer') - .itemInputs('1x gtceu:hp_steam_forge_hammer') - .itemOutputs('8x gtceu:wrought_iron_ingot', '3x gtceu:steel_ingot', '2x gtceu:tin_alloy_ingot') - .duration(3310) - .EUt(30) - .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) - - event.remove({ id: 'gtceu:macerator/macerate_hp_steam_forge_hammer' }) - event.recipes.gtceu.macerator('tfg:macerate_hp_steam_forge_hammer') - .itemInputs('1x gtceu:hp_steam_forge_hammer') - .itemOutputs('8x gtceu:iron_dust', '3x gtceu:steel_dust', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') - .duration(3254) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - - event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_extractor' }) - event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_extractor') - .itemInputs('1x gtceu:hp_steam_extractor') - .itemOutputs('7x gtceu:wrought_iron_ingot', '2x gtceu:steel_ingot', '3x gtceu:tin_alloy_ingot') - .duration(3310) - .EUt(30) - .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) - - event.remove({ id: 'gtceu:macerator/macerate_hp_steam_extractor' }) - event.recipes.gtceu.macerator('tfg:macerate_hp_steam_extractor') - .itemInputs('1x gtceu:hp_steam_extractor') - .itemOutputs('7x gtceu:iron_dust', '2x gtceu:steel_dust', '3x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') - .duration(3254) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - - event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_macerator' }) - event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_macerator') - .itemInputs('1x gtceu:hp_steam_macerator') - .itemOutputs('8x gtceu:wrought_iron_ingot', '3x gtceu:steel_ingot', '2x gtceu:tin_alloy_ingot') - .duration(3310) - .EUt(30) - .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) - - event.remove({ id: 'gtceu:macerator/macerate_hp_steam_macerator' }) - event.recipes.gtceu.macerator('tfg:macerate_hp_steam_macerator') - .itemInputs('1x gtceu:hp_steam_macerator') - .itemOutputs('8x gtceu:iron_dust', '3x gtceu:steel_dust', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') - .duration(3254) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - - event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_compressor' }) - event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_compressor') - .itemInputs('1x gtceu:hp_steam_compressor') - .itemOutputs('7x gtceu:wrought_iron_ingot', '1x gtceu:steel_ingot', '5x gtceu:tin_alloy_ingot') - .duration(3310) - .EUt(30) - .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) - - event.remove({ id: 'gtceu:macerator/macerate_hp_steam_compressor' }) - event.recipes.gtceu.macerator('tfg:macerate_hp_steam_compressor') - .itemInputs('1x gtceu:hp_steam_compressor') - .itemOutputs('7x gtceu:iron_dust', '1x gtceu:steel_dust', '5x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') - .duration(3254) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - - event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_furnace' }) - event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_furnace') - .itemInputs('1x gtceu:hp_steam_furnace') - .itemOutputs('7x gtceu:wrought_iron_ingot', '2x gtceu:steel_ingot', '4x gtceu:tin_alloy_ingot') - .duration(3310) - .EUt(30) - .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) - - event.remove({ id: 'gtceu:macerator/macerate_hp_steam_furnace' }) - event.recipes.gtceu.macerator('tfg:macerate_hp_steam_furnace') - .itemInputs('1x gtceu:hp_steam_furnace') - .itemOutputs('7x gtceu:iron_dust', '2x gtceu:steel_dust', '4x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') - .duration(3254) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - - event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_alloy_smelter' }) - event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_alloy_smelter') - .itemInputs('1x gtceu:hp_steam_alloy_smelter') - .itemOutputs('11x gtceu:wrought_iron_ingot', '1x gtceu:steel_ingot', '1x gtceu:tin_alloy_ingot') - .duration(3310) - .EUt(30) - .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) - - event.remove({ id: 'gtceu:macerator/macerate_hp_steam_alloy_smelter' }) - event.recipes.gtceu.macerator('tfg:macerate_hp_steam_alloy_smelter') - .itemInputs('1x gtceu:hp_steam_alloy_smelter') - .itemOutputs('11x gtceu:iron_dust', '1x gtceu:steel_dust', '1x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') - .duration(3254) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - - event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_rock_crusher' }) - event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_rock_crusher') - .itemInputs('1x gtceu:hp_steam_rock_crusher') - .itemOutputs('10x gtceu:wrought_iron_ingot', '1x gtceu:steel_ingot', '2x gtceu:tin_alloy_ingot') - .duration(3310) - .EUt(30) - .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) - - event.remove({ id: 'gtceu:macerator/macerate_hp_steam_rock_crusher' }) - event.recipes.gtceu.macerator('tfg:macerate_hp_steam_rock_crusher') - .itemInputs('1x gtceu:hp_steam_rock_crusher') - .itemOutputs('10x gtceu:iron_dust', '1x gtceu:steel_dust', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') - .duration(3254) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - - //#endregion - //#region Quantum mainframe stack fix. // // Quantum Mainframes need 48x annealed copper wire but @@ -1312,43 +688,130 @@ const registerGTCEURecipes = (event) => { .duration(288) .EUt(96) .circuit(2) + + event.recipes.gtceu.coke_oven("tfg:raw_coal_to_coke") + .itemInputs('gtceu:raw_coal') + .itemOutputs('2x gtceu:coke_gem') + .outputFluids(Fluid.of('gtceu:creosote', 2000)) + .duration(1710) + + event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_tar") + .itemInputs('6x gtceu:raw_coal') + .chancedOutput('gtceu:dark_ash_dust', 5000, 0) + .outputFluids(Fluid.of('gtceu:coal_tar', 3000)) + .duration(288) + .EUt(96) + .circuit(8) + + event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coke_creosote") + .itemInputs('8x gtceu:raw_coal') + .itemOutputs('16x gtceu:coke_gem') + .outputFluids(Fluid.of('gtceu:creosote', 8000)) + .duration(576) + .EUt(64) + .circuit(1) + + event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coal_gas") + .itemInputs('8x gtceu:raw_coal') + .itemOutputs('16x gtceu:coke_gem') + .inputFluids(Fluid.of('gtceu:steam')) + .outputFluids(Fluid.of('gtceu:coal_gas', 4000)) + .duration(288) + .EUt(96) + .circuit(22) + + event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coke_creosote_nitrogen") + .itemInputs('8x gtceu:raw_coal') + .itemOutputs('16x gtceu:coke_gem') + .inputFluids(Fluid.of('gtceu:nitrogen')) + .outputFluids(Fluid.of('gtceu:creosote', 8000)) + .duration(288) + .EUt(96) + .circuit(2) + // #endregion // #region Fix TFC hanging sign metal dupe for Macerator and Arc Furnace const SIGN_METALS = [ - "copper", - "bronze", - "black_bronze", - "bismuth_bronze", - "wrought_iron", - "steel", - "black_steel", - "red_steel", - "blue_steel" + GTMaterials.Copper, + GTMaterials.Bronze, + GTMaterials.BlackBronze, + GTMaterials.BismuthBronze, + GTMaterials.WroughtIron, + GTMaterials.Steel, + GTMaterials.BlackSteel, + GTMaterials.RedSteel, + GTMaterials.BlueSteel ]; SIGN_METALS.forEach(metal => { + // Arc furnace global.TFC_WOOD_TYPES.forEach(wood => { - event.remove(`gtceu:macerator/macerate_wood/hanging_sign/${metal}/${wood}`) - event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal}/${wood}`) - .itemInputs(`tfc:wood/hanging_sign/${metal}/${wood}`) - .itemOutputs('gtceu:wood_dust') - .chancedOutput(`gtceu:tiny_${metal}_dust`, 3750, 0) - .duration(108) - .EUt(8) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - - event.remove(`gtceu:arc_furnace/arc_wood/hanging_sign/${metal}/${wood}`) - event.recipes.gtceu.arc_furnace(`gtceu:arc_furnace/macerate_wood/hanging_sign/${metal}/${wood}`) - .itemInputs(`tfc:wood/hanging_sign/${metal}/${wood}`) + event.remove(`gtceu:arc_furnace/arc_wood/hanging_sign/${metal.getName()}/${wood}`) + event.recipes.gtceu.arc_furnace(`gtceu:arc_furnace/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) + .itemInputs(`tfc:wood/hanging_sign/${metal.getName()}/${wood}`) .itemOutputs('gtceu:tiny_ash_dust') - .chancedOutput(`gtceu:${metal}_nugget`, 3750, 0) + .chancedOutput(ChemicalHelper.get(TagPrefix.nugget, metal, 1), 3750, 0) .inputFluids(Fluid.of('gtceu:oxygen', 12)) .duration(12) .EUt(30) .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) }) + + global.AFC_WOOD_TYPES.forEach(wood => { + event.recipes.gtceu.arc_furnace(`gtceu:arc_furnace/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) + .itemInputs(`afc:wood/hanging_sign/${metal.getName()}/${wood}`) + .itemOutputs('gtceu:tiny_ash_dust') + .chancedOutput(ChemicalHelper.get(TagPrefix.nugget, metal, 1), 3750, 0) + .inputFluids(Fluid.of('gtceu:oxygen', 12)) + .duration(12) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + }) + + // Macerator + global.TFC_HARDWOOD_TYPES.forEach(wood => { + event.remove(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) + event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) + .itemInputs(`tfc:wood/hanging_sign/${metal.getName()}/${wood}`) + .itemOutputs('gtceu:hardwood_dust') + .chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0) + .duration(108) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + }) + + global.TFC_SOFTWOOD_TYPES.forEach(wood => { + event.remove(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) + event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) + .itemInputs(`tfc:wood/hanging_sign/${metal.getName()}/${wood}`) + .itemOutputs('gtceu:wood_dust') + .chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0) + .duration(108) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + }) + + global.AFC_HARDWOOD_TYPES.forEach(wood => { + event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) + .itemInputs(`afc:wood/hanging_sign/${metal.getName()}/${wood}`) + .itemOutputs('gtceu:hardwood_dust') + .chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0) + .duration(108) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + }) + + global.AFC_SOFTWOOD_TYPES.forEach(wood => { + event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`) + .itemInputs(`afc:wood/hanging_sign/${metal.getName()}/${wood}`) + .itemOutputs('gtceu:wood_dust') + .chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0) + .duration(108) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + }) }) // #endregion @@ -1476,30 +939,30 @@ const registerGTCEURecipes = (event) => { //#region Steam Bloomery event.recipes.gtceu.steam_bloomery('steam_raw_iron_bloom_coal') - .itemInputs('#forge:ingots/iron', '#tfc:steam_bloomery_basic_fuels') - .itemOutputs('tfc:raw_iron_bloom') - .duration(2400) - .EUt(GTValues.VEX[GTValues.ULV]) + .itemInputs('#forge:ingots/iron', '#tfc:steam_bloomery_basic_fuels') + .itemOutputs('tfc:raw_iron_bloom') + .duration(2400) + .EUt(GTValues.VEX[GTValues.ULV]) event.recipes.gtceu.steam_bloomery('steam_raw_iron_bloom_coalcoke') - .itemInputs('2x #forge:ingots/iron', '#tfc:blast_furnace_fuel') - .itemOutputs('2x tfc:raw_iron_bloom') - .duration(2400) - .EUt(GTValues.VEX[GTValues.ULV]) + .itemInputs('2x #forge:ingots/iron', '#tfc:blast_furnace_fuel') + .itemOutputs('2x tfc:raw_iron_bloom') + .duration(2400) + .EUt(GTValues.VEX[GTValues.ULV]) GTMaterialRegistry.getRegisteredMaterials().forEach(material => { const tfcProperty = material.getProperty(TFGPropertyKey.TFC_PROPERTY) if (tfcProperty == null) return; - + if (tfcProperty.getOutputMaterial() == GTMaterials.Iron) { event.recipes.gtceu.steam_bloomery(`steam_raw_iron_bloom_coal_${material.getName()}`) .itemInputs(ChemicalHelper.get(TagPrefix.dust, material, 1), '#tfc:steam_bloomery_basic_fuels') .itemOutputs('tfc:raw_iron_bloom') .duration(2400) .EUt(GTValues.VEX[GTValues.ULV]) - + event.recipes.gtceu.steam_bloomery(`steam_raw_iron_bloom_coalcoke_${material.getName()}`) .itemInputs(ChemicalHelper.get(TagPrefix.dust, material, 2), '#tfc:blast_furnace_fuel') .itemOutputs('2x tfc:raw_iron_bloom') @@ -1507,18 +970,9 @@ const registerGTCEURecipes = (event) => { .EUt(GTValues.VEX[GTValues.ULV]) } }) - + //#endregion - - event.shaped('4x minecraft:ladder', [ - 'A A', - 'AAA', - 'A A' - ], { - A: '#forge:rods/wooden' - }).id('gtceu:shaped/ladder') - - + // TODO: Greate again... event.shapeless('gtceu:red_alloy_single_cable', ['gtceu:red_alloy_single_wire', '#forge:plates/rubber']) .id('tfg:shapeless/red_alloy_single_cable') diff --git a/kubejs/server_scripts/gregtech/recipes.machines.js b/kubejs/server_scripts/gregtech/recipes.machines.js new file mode 100644 index 000000000..1b655e940 --- /dev/null +++ b/kubejs/server_scripts/gregtech/recipes.machines.js @@ -0,0 +1,694 @@ +๏ปฟ// priority: 0 + +function registerGTCEuMachineRecipes(event) { + //#region ะ’ั‹ั…ะพะด: Filter Casing + + event.shaped('gtceu:filter_casing', [ + 'AAA', + 'BBB', + 'CDE' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:item_filter', + C: 'gtceu:mv_electric_motor', + D: 'gtceu:steel_frame', + E: '#forge:rotors/steel' + }).id('gtceu:shaped/filter_casing') + + //#endregion + + //#region ะ’ั‹ั…ะพะด: Assembly Line Grating + + event.shaped('2x gtceu:assembly_line_grating', [ + 'ABA', + 'ACA', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: '#forge:rotors/steel', + C: 'gtceu:steel_frame', + D: 'gtceu:mv_electric_motor' + }).id('gtceu:shaped/casing_grate_casing') + + //#endregion + + //#region Gas Collectors + + event.shaped('gtceu:lv_gas_collector', [ + 'ABA', + 'CEC', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:fluid_filter', + C: 'gtceu:lv_electric_pump', + D: '#gtceu:circuits/lv', + E: 'gtceu:lv_machine_hull' + }).id('gtceu:shaped/lv_gas_collector') + + event.shaped('gtceu:mv_gas_collector', [ + 'ABA', + 'CEC', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:fluid_filter', + C: 'gtceu:mv_electric_pump', + D: '#gtceu:circuits/mv', + E: 'gtceu:mv_machine_hull' + }).id('gtceu:shaped/mv_gas_collector') + + event.shaped('gtceu:hv_gas_collector', [ + 'ABA', + 'CEC', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:fluid_filter', + C: 'gtceu:hv_electric_pump', + D: '#gtceu:circuits/hv', + E: 'gtceu:hv_machine_hull' + }).id('gtceu:shaped/hv_gas_collector') + + event.shaped('gtceu:ev_gas_collector', [ + 'ABA', + 'CEC', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:fluid_filter', + C: 'gtceu:ev_electric_pump', + D: '#gtceu:circuits/ev', + E: 'gtceu:ev_machine_hull' + }).id('gtceu:shaped/ev_gas_collector') + + event.shaped('gtceu:iv_gas_collector', [ + 'ABA', + 'CEC', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:fluid_filter', + C: 'gtceu:iv_electric_pump', + D: '#gtceu:circuits/iv', + E: 'gtceu:iv_machine_hull' + }).id('gtceu:shaped/iv_gas_collector') + + event.shaped('gtceu:luv_gas_collector', [ + 'ABA', + 'CEC', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:fluid_filter', + C: 'gtceu:luv_electric_pump', + D: '#gtceu:circuits/luv', + E: 'gtceu:luv_machine_hull' + }).id('gtceu:shaped/luv_gas_collector') + + event.shaped('gtceu:zpm_gas_collector', [ + 'ABA', + 'CEC', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:fluid_filter', + C: 'gtceu:zpm_electric_pump', + D: '#gtceu:circuits/zpm', + E: 'gtceu:zpm_machine_hull' + }).id('gtceu:shaped/zpm_gas_collector') + + event.shaped('gtceu:uv_gas_collector', [ + 'ABA', + 'CEC', + 'ADA' + ], { + A: '#tfg:metal_bars', + B: 'gtceu:fluid_filter', + C: 'gtceu:uv_electric_pump', + D: '#gtceu:circuits/uv', + E: 'gtceu:uv_machine_hull' + }).id('gtceu:shaped/uv_gas_collector') + + //#endregion + + //#region Forge Hammers + + event.shaped('gtceu:lv_forge_hammer', [ + 'ABA', + 'CDC', + 'AEA' + ], { + A: 'gtceu:tin_single_cable', + B: 'gtceu:lv_electric_piston', + C: '#gtceu:circuits/lv', + D: 'gtceu:lv_machine_hull', + E: 'tfc:metal/anvil/steel', + }).id('gtceu:shaped/lv_forge_hammer') + + event.shaped('gtceu:mv_forge_hammer', [ + 'ABA', + 'CDC', + 'AEA' + ], { + A: 'gtceu:copper_single_cable', + B: 'gtceu:mv_electric_piston', + C: '#gtceu:circuits/mv', + D: 'gtceu:mv_machine_hull', + E: 'tfc:metal/anvil/steel', + }).id('gtceu:shaped/mv_forge_hammer') + + event.shaped('gtceu:hv_forge_hammer', [ + 'ABA', + 'CDC', + 'AEA' + ], { + A: 'gtceu:gold_single_cable', + B: 'gtceu:hv_electric_piston', + C: '#gtceu:circuits/hv', + D: 'gtceu:hv_machine_hull', + E: 'tfc:metal/anvil/steel', + }).id('gtceu:shaped/hv_forge_hammer') + + event.shaped('gtceu:ev_forge_hammer', [ + 'ABA', + 'CDC', + 'AEA' + ], { + A: 'gtceu:aluminium_single_cable', + B: 'gtceu:ev_electric_piston', + C: '#gtceu:circuits/ev', + D: 'gtceu:ev_machine_hull', + E: 'tfc:metal/anvil/black_steel', + }).id('gtceu:shaped/ev_forge_hammer') + + event.shaped('gtceu:iv_forge_hammer', [ + 'ABA', + 'CDC', + 'AEA' + ], { + A: 'gtceu:platinum_single_cable', + B: 'gtceu:iv_electric_piston', + C: '#gtceu:circuits/iv', + D: 'gtceu:iv_machine_hull', + E: 'tfc:metal/anvil/black_steel', + }).id('gtceu:shaped/iv_forge_hammer') + + event.shaped('gtceu:luv_forge_hammer', [ + 'ABA', + 'CDC', + 'AEA' + ], { + A: 'gtceu:niobium_titanium_single_cable', + B: 'gtceu:luv_electric_piston', + C: '#gtceu:circuits/luv', + D: 'gtceu:luv_machine_hull', + E: 'tfc:metal/anvil/black_steel', + }).id('gtceu:shaped/luv_forge_hammer') + + event.shaped('gtceu:zpm_forge_hammer', [ + 'ABA', + 'CDC', + 'AEA' + ], { + A: 'gtceu:vanadium_gallium_single_cable', + B: 'gtceu:zpm_electric_piston', + C: '#gtceu:circuits/zpm', + D: 'gtceu:zpm_machine_hull', + E: '#tfc:red_or_blue_anvil', + }).id('gtceu:shaped/zpm_forge_hammer') + + event.shaped('gtceu:uv_forge_hammer', [ + 'ABA', + 'CDC', + 'AEA' + ], { + A: 'gtceu:yttrium_barium_cuprate_single_cable', + B: 'gtceu:uv_electric_piston', + C: '#gtceu:circuits/uv', + D: 'gtceu:uv_machine_hull', + E: '#tfc:red_or_blue_anvil', + }).id('gtceu:shaped/uv_forge_hammer') + + //#endregion + + //#region CokeOven + + // Coke Oven + event.shaped('gtceu:coke_oven', [ + 'ABA', + 'BCB', + 'ABA' + ], { + A: 'gtceu:coke_oven_bricks', + B: '#forge:plates/wrought_iron', + C: '#forge:tools/wrenches' + }).id('gtceu:shaped/coke_oven') + + // Coke Oven Hatch + event.recipes.tfc.no_remainder_shaped_crafting( + event.shaped('gtceu:coke_oven_hatch', [ + 'AB' + ], { + A: 'gtceu:coke_oven_bricks', + B: '#tfc:barrels' + }) + ).id('gtceu:shaped/coke_oven_hatch') + + //#endregion + + // High Pressure Steam Miner + event.replaceInput({ id: 'gtceu:shaped/steam_miner_steel' }, + 'gtceu:lp_steam_miner', 'gtceu:steel_brick_casing') + + //#region ะ’ั‹ั…ะพะด: ะกั‚ะฐะปัŒะฝั‹ะต ะผะฐัˆะธะฝั‹ + + // HP Steam Boilers + event.shaped('gtceu:hp_steam_solid_boiler', [ + 'AEA', + 'ADA', + 'BCB' + ], { + A: '#forge:plates/steel', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: 'gtceu:steel_brick_casing', + D: 'tfc:crucible', + E: '#forge:rods/black_steel' + }).id('gtceu:shaped/steam_boiler_coal_steel') + + event.shaped('gtceu:hp_steam_liquid_boiler', [ + 'AEA', + 'ADA', + 'BCB' + ], { + A: '#forge:plates/steel', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: 'gtceu:steel_brick_casing', + D: '#forge:glass', + E: '#forge:rods/black_steel' + }).id('gtceu:shaped/steam_boiler_lava_steel') + + event.shaped('gtceu:hp_steam_solar_boiler', [ + 'AAA', + 'BCB', + 'EDE' + ], { + A: '#forge:glass_panes', + B: '#forge:double_plates/silver', + C: '#forge:rods/black_steel', + D: 'gtceu:steel_brick_casing', + E: 'gtceu:tin_alloy_small_fluid_pipe', + }).id('gtceu:shaped/steam_boiler_solar_steel') + + // ะญะบัั‚ั€ะฐะบั‚ะพั€ + event.shaped('gtceu:hp_steam_extractor', [ + 'BEB', + 'CAC', + 'DFD' + ], { + A: 'gtceu:steel_brick_casing', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: '#forge:plates/steel', + D: '#forge:plates/wrought_iron', + E: '#forge:glass_panes', + F: '#forge:rings/black_steel' + }).id('gtceu:shaped/steam_extractor_steel') + + // ะ”ั€ะพะฑะธั‚ะตะปัŒ + event.shaped('gtceu:hp_steam_macerator', [ + 'BFB', + 'CAC', + 'DED' + ], { + A: 'gtceu:steel_brick_casing', + B: '#forge:small_gears/wrought_iron', + C: '#forge:plates/steel', + D: '#forge:rods/black_steel', + E: 'gtceu:tin_alloy_small_fluid_pipe', + F: '#forge:raw_materials/diamond' + }).id('gtceu:shaped/steam_macerator_steel') + + // ะšะพะผะฟั€ะตััะพั€ + event.shaped('gtceu:hp_steam_compressor', [ + 'BCB', + 'EAE', + 'DFD' + ], { + A: 'gtceu:steel_brick_casing', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: '#forge:plates/steel', + D: '#forge:plates/wrought_iron', + E: 'minecraft:piston', + F: '#forge:rods/black_steel' + }).id('gtceu:shaped/steam_compressor_steel') + + // ะœะพะปะพั‚ + event.shaped('gtceu:hp_steam_forge_hammer', [ + 'DFD', + 'BEB', + 'CAC' + ], { + A: 'gtceu:steel_brick_casing', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: '#forge:plates/steel', + D: '#forge:plates/wrought_iron', + E: '#forge:ingots/black_steel', + F: 'minecraft:piston' + }).id('gtceu:shaped/steam_hammer_steel') + + // ะŸะตั‡ัŒ + event.shaped('gtceu:hp_steam_furnace', [ + 'BCB', + 'DAD', + 'FFF' + ], { + A: 'gtceu:steel_brick_casing', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: '#forge:plates/steel', + D: '#forge:plates/wrought_iron', + F: '#forge:rods/black_steel' + }).id('gtceu:shaped/steam_furnace_steel') + + // ะกะฟะปะฐะฒั‰ะธะบ + event.shaped('gtceu:hp_steam_alloy_smelter', [ + 'FCF', + 'DAD', + 'CBC' + ], { + A: 'gtceu:steel_brick_casing', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: '#forge:plates/steel', + D: '#forge:plates/wrought_iron', + F: '#forge:rods/black_steel' + }).id('gtceu:shaped/steam_alloy_smelter_steel') + + // ะ‘ะปะพะบะพ-ะปะพะผะฐั‚ะตะปัŒ + event.shaped('gtceu:hp_steam_rock_crusher', [ + 'ECE', + 'BAB', + 'DDD' + ], { + A: 'gtceu:steel_brick_casing', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: '#forge:drill_heads', + D: '#forge:rods/wrought_iron', + E: '#forge:screws/wrought_iron' + }).id('gtceu:shaped/steam_rock_breaker_steel') + + // Miner + event.shaped('gtceu:hp_steam_miner', [ + 'EFE', + 'BAB', + 'DCD' + ], { + A: 'gtceu:steel_brick_casing', + B: 'gtceu:tin_alloy_small_fluid_pipe', + C: '#forge:drill_heads', + D: '#forge:rods/steel', + E: '#forge:plates/wrought_iron', + F: '#gtceu:circuits/ulv' + }).id('gtceu:shaped/steam_miner_steel') + + //#endregion + + //#region passthrough hatches + event.recipes.shaped('gtceu:lv_item_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:lv_conveyor_module', + B: 'gtceu:small_wrought_iron_gear', + C: 'gtceu:lv_machine_hull', + D: '#tfg:default_chests' + }).id('gtceu:shaped/passthrough_hatch_item_lv') + + event.recipes.shaped('gtceu:mv_item_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:mv_conveyor_module', + B: 'gtceu:small_bronze_gear', + C: 'gtceu:mv_machine_hull', + D: '#tfg:default_chests' + }).id('gtceu:shaped/passthrough_hatch_item_mv') + + event.recipes.shaped('gtceu:ev_item_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:ev_conveyor_module', + B: 'gtceu:small_titanium_gear', + C: 'gtceu:ev_machine_hull', + D: '#tfg:default_chests' + }).id('gtceu:shaped/passthrough_hatch_item_ev') + + event.recipes.shaped('gtceu:iv_item_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:iv_conveyor_module', + B: 'gtceu:small_tungsten_steel_gear', + C: 'gtceu:iv_machine_hull', + D: '#tfg:default_chests' + }).id('gtceu:shaped/passthrough_hatch_item_iv') + + event.recipes.shaped('gtceu:luv_item_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:luv_conveyor_module', + B: 'gtceu:small_hsss_gear', + C: 'gtceu:luv_machine_hull', + D: '#tfg:default_chests' + }).id('gtceu:shaped/passthrough_hatch_item_luv') + + event.recipes.shaped('gtceu:zpm_item_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:zpm_conveyor_module', + B: 'gtceu:small_osmiridium_gear', + C: 'gtceu:zpm_machine_hull', + D: '#tfg:default_chests' + }).id('gtceu:shaped/passthrough_hatch_item_zpm') + + event.recipes.shaped('gtceu:uv_item_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:uv_conveyor_module', + B: 'gtceu:small_naquadah_alloy_gear', + C: 'gtceu:uv_machine_hull', + D: '#tfg:default_chests' + }).id('gtceu:shaped/passthrough_hatch_item_uv') + + event.recipes.shaped('gtceu:lv_fluid_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:lv_electric_pump', + B: 'gtceu:bronze_small_fluid_pipe', + C: 'gtceu:lv_machine_hull', + D: '#forge:glass' + }).id('gtceu:shaped/passthrough_hatch_fluid_lv') + + event.recipes.shaped('gtceu:mv_fluid_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:mv_electric_pump', + B: 'gtceu:steel_small_fluid_pipe', + C: 'gtceu:mv_machine_hull', + D: '#forge:glass' + }).id('gtceu:shaped/passthrough_hatch_fluid_mv') + + event.remove('gtceu:shaped/passthrough_hatch_fluid') + + event.recipes.shaped('gtceu:hv_fluid_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:hv_electric_pump', + B: 'gtceu:stainless_steel_small_fluid_pipe', + C: 'gtceu:hv_machine_hull', + D: 'gtceu:tempered_glass' + }).id('gtceu:shaped/passthrough_hatch_fluid_hv') + + event.recipes.shaped('gtceu:ev_fluid_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:ev_electric_pump', + B: 'gtceu:titanium_small_fluid_pipe', + C: 'gtceu:ev_machine_hull', + D: 'gtceu:tempered_glass' + }).id('gtceu:shaped/passthrough_hatch_fluid_ev') + + event.recipes.shaped('gtceu:iv_fluid_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:iv_electric_pump', + B: 'gtceu:tungsten_steel_small_fluid_pipe', + C: 'gtceu:iv_machine_hull', + D: 'gtceu:laminated_glass' + }).id('gtceu:shaped/passthrough_hatch_fluid_iv') + + event.recipes.shaped('gtceu:luv_fluid_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:luv_electric_pump', + B: 'gtceu:niobium_titanium_small_fluid_pipe', + C: 'gtceu:luv_machine_hull', + D: 'gtceu:laminated_glass' + }).id('gtceu:shaped/passthrough_hatch_fluid_luv') + + event.recipes.shaped('gtceu:zpm_fluid_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:zpm_electric_pump', + B: 'gtceu:polybenzimidazole_small_fluid_pipe', + C: 'gtceu:zpm_machine_hull', + D: 'gtceu:fusion_glass' + }).id('gtceu:shaped/passthrough_hatch_fluid_zpm') + + event.recipes.shaped('gtceu:uv_fluid_passthrough_hatch', [ + ' A ', + 'BCB', + ' D ' + ], { + A: 'gtceu:uv_electric_pump', + B: 'gtceu:naquadah_small_fluid_pipe', + C: 'gtceu:uv_machine_hull', + D: 'gtceu:fusion_glass' + }).id('gtceu:shaped/passthrough_hatch_fluid_uv') + + //#endregion + + //#region Long Distance Pipelines + + event.remove({ id: 'gtceu:assembler/long_distance_item_pipe' }) + event.recipes.gtceu.assembler('long_distance_item_pipe') + .itemInputs( + '1x gtceu:tin_large_item_pipe', + '4x #forge:plates/steel') + .inputFluids(Fluid.of('gtceu:soldering_alloy', 144 / 4)) + .itemOutputs('32x gtceu:long_distance_item_pipeline') + .circuit(2) + .duration(300) + .EUt(24) + + event.remove({ id: 'gtceu:assembler/long_distance_fluid_pipe' }) + event.recipes.gtceu.assembler('long_distance_fluid_pipe') + .itemInputs( + '1x gtceu:bronze_large_fluid_pipe', + '4x #forge:plates/steel') + .inputFluids(Fluid.of('gtceu:soldering_alloy', 144 / 4)) + .itemOutputs('32x gtceu:long_distance_fluid_pipeline') + .circuit(2) + .duration(300) + .EUt(24) + + //#endregion + + // ะšะพะฝั‚ั€ะพะปะปะตั€ ั‚ะตะฟะปะธั†ั‹ + event.shaped('gtceu:greenhouse', [ + 'ABA', + 'CDC', + 'BCB' + ], { + A: '#gtceu:circuits/mv', + B: 'gtceu:copper_single_cable', + C: '#gtceu:circuits/mv', + D: 'gtceu:solid_machine_casing' + }).id('tfg:shaped/greenhouse') + + // Drums + const DRUMS_AND_CRATES = [ + 'bismuth_bronze', + 'black_bronze' + ] + + DRUMS_AND_CRATES.forEach(material => { + event.shapeless(`gtceu:${material}_drum`, [`gtceu:${material}_drum`]).id(`tfg:shapeless/drum_nbt_${material}`) + + event.shaped(`gtceu:${material}_drum`, [ + ' A ', + 'BCB', + 'BCB' + ], { + A: '#forge:tools/hammers', + B: `#forge:plates/${material}`, + C: `#forge:rods/long/${material}` + }).id(`tfg:shaped/${material}_drum`) + + event.shaped(`gtceu:${material}_crate`, [ + 'CBC', + 'BAB', + 'CBC' + ], { + A: '#forge:tools/hammers', + B: `#forge:plates/${material}`, + C: `#forge:rods/long/${material}` + }).id(`tfg:shaped/${material}_crate`) + + event.recipes.gtceu.assembler(`gtceu:${material}_drum`) + .itemInputs(`4x #forge:plates/${material}`, `2x #forge:rods/long/${material}`) + .itemOutputs(`gtceu:${material}_drum`) + .duration(200) + .EUt(16) + .circuit(2) + + event.recipes.gtceu.assembler(`gtceu:${material}_crate`) + .itemInputs(`4x #forge:plates/${material}`, `4x #forge:rods/long/${material}`) + .itemOutputs(`gtceu:${material}_crate`) + .duration(200) + .EUt(16) + .circuit(1) + + event.recipes.gtceu.macerator(`gtceu:${material}_drum`) + .itemInputs(`gtceu:${material}_drum`) + .itemOutputs(`6x #forge:dusts/${material}`) + .duration(456) + .EUt(2) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.recipes.gtceu.macerator(`gtceu:${material}_crate`) + .itemInputs(`gtceu:${material}_crate`) + .itemOutputs(`8x #forge:dusts/${material}`) + .duration(608) + .EUt(2) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.recipes.gtceu.arc_furnace(`gtceu:${material}_drum`) + .itemInputs(`gtceu:${material}_drum`) + .itemOutputs(`6x #forge:ingots/${material}`) + .duration(456) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.recipes.gtceu.arc_furnace(`gtceu:${material}_crate`) + .itemInputs(`gtceu:${material}_crate`) + .itemOutputs(`8x #forge:ingots/${material}`) + .duration(608) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + }) + +} \ No newline at end of file diff --git a/kubejs/server_scripts/gregtech/recipes.materials.js b/kubejs/server_scripts/gregtech/recipes.materials.js index 1b06f8800..7f72b3cc4 100644 --- a/kubejs/server_scripts/gregtech/recipes.materials.js +++ b/kubejs/server_scripts/gregtech/recipes.materials.js @@ -9,16 +9,10 @@ function registerGTCEUMetalRecipes(event) { const toolHeadItem = ChemicalHelper.get(headTagPrefix, material, 1) if (toolHeadItem.isEmpty()) return - if (material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) { - event.shapeless(toolItem, [ - '#forge:rods/wooden', - toolHeadItem - ]).id(`gtceu:shaped/${toolType.name}_${material.getName()}`) - } - else { - event.recipes.tfc.advanced_shapeless_crafting(TFC.itemStackProvider.of(toolItem).copyForgingBonus(), ['#forge:rods/wooden', toolHeadItem]) - .id(`gtceu:shaped/${toolType.name}_${material.getName()}`) - } + event.recipes.tfc.advanced_shapeless_crafting( + TFC.itemStackProvider.of(toolItem).copyForgingBonus().copyHeat(), + [toolHeadItem, '#forge:rods/wooden'], toolHeadItem) + .id(`gtceu:shaped/${toolType.name}_${material.getName()}`) processToolHead(headTagPrefix, extruderMold, cirucitMeta, material) } @@ -281,11 +275,17 @@ function registerGTCEUMetalRecipes(event) { const processPoorRawOre = (tagPrefix, material) => { const poorOreItem = ChemicalHelper.get(tagPrefix, material, 2) - const crushedOreItem = ChemicalHelper.get(TagPrefix.crushed, material, 1) + const crushedOreItem = ChemicalHelper.get(TagPrefix.crushed, material, Math.max(material.getProperty(PropertyKey.ORE).getOreMultiplier() / 2.0, 1)) if (poorOreItem != null && crushedOreItem != null) { + event.recipes.tfc.quern(crushedOreItem, poorOreItem) .id(`tfg:quern/${material.getName()}_crushed_ore_from_poor_raw_ore`) + + // TODO: Remove when Greate fixes its chanced output bug + + event.shapeless(crushedOreItem, [poorOreItem, '#forge:tools/hammers']) + .id(`tfg:greate_workaround_crushed_${material.getName()}`) } } diff --git a/kubejs/server_scripts/gregtech/recipes.recycling.js b/kubejs/server_scripts/gregtech/recipes.recycling.js new file mode 100644 index 000000000..bb34d453d --- /dev/null +++ b/kubejs/server_scripts/gregtech/recipes.recycling.js @@ -0,0 +1,122 @@ +// priority: 0 + +function registerGTCEURecyclingRecipes(event) { + + // Tantalum Capacitor + event.recipes.gtceu.macerator('gtceu:macerator/recycling/tantulum_capacitor') + .itemInputs('gtceu:tantalum_capacitor') + .itemOutputs( + ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Tantalum, 1), + ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Polyethylene, 1) + ) + .duration(GTMaterials.Tantalum.getMass() * 1) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/tantulum_capacitor') + .itemInputs('gtceu:tantalum_capacitor') + .itemOutputs( + ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Tantalum, 1), + ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Ash, 1) + ) + .duration(GTMaterials.Tantalum.getMass() * 1) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + + // Capacitor + event.recipes.gtceu.macerator('gtceu:macerator/recycling/capacitor') + .itemInputs('gtceu:capacitor') + .itemOutputs( + ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Polyethylene, 1) + ) + .duration(GTMaterials.Polyethylene.getMass() * 1) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/capacitor') + .itemInputs('gtceu:capacitor') + .itemOutputs( + ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Ash, 1) + ) + .duration(GTMaterials.Ash.getMass() * 1) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + + // Empty Tier I Capacitor + event.recipes.gtceu.macerator('gtceu:macerator/recycling/empty_tier_i_battery') + .itemInputs('gtceu:empty_tier_i_battery') + .itemOutputs( + ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ultimet, 6) + ) + .duration(GTMaterials.Ultimet.getMass() * 6) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/empty_tier_i_battery') + .itemInputs('gtceu:empty_tier_i_battery') + .itemOutputs( + ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Ultimet, 6) + ) + .duration(GTMaterials.Ultimet.getMass() * 6) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.extractor('gtceu:extractor/recycling/empty_tier_i_battery') + .itemInputs('gtceu:empty_tier_i_battery') + .outputFluids(Fluid.of('gtceu:ultimet', 864)) + .duration(GTMaterials.Ultimet.getMass() * 6) + .category(GTRecipeCategories.EXTRACTOR_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + + // Empty Tier II Capacitor + event.recipes.gtceu.macerator('gtceu:macerator/recycling/empty_tier_ii_battery') + .itemInputs('gtceu:empty_tier_ii_battery') + .itemOutputs( + ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ruridit, 6) + ) + .duration(GTMaterials.Ruridit.getMass() * 6) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/empty_tier_ii_battery') + .itemInputs('gtceu:empty_tier_ii_battery') + .itemOutputs( + ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Ruridit, 6) + ) + .duration(GTMaterials.Ruridit.getMass() * 6) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.extractor('gtceu:extractor/recycling/empty_tier_ii_battery') + .itemInputs('gtceu:empty_tier_ii_battery') + .outputFluids(Fluid.of('gtceu:ruridit', 864)) + .duration(GTMaterials.Ruridit.getMass() * 6) + .category(GTRecipeCategories.EXTRACTOR_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + + // Empty Tier III Capacitor + event.recipes.gtceu.macerator('gtceu:macerator/recycling/empty_tier_iii_battery') + .itemInputs('gtceu:empty_tier_iii_battery') + .itemOutputs( + ChemicalHelper.get(TagPrefix.dust, GTMaterials.Neutronium, 6) + ) + .duration(GTMaterials.Neutronium.getMass() * 6) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/empty_tier_iii_battery') + .itemInputs('gtceu:empty_tier_iii_battery') + .itemOutputs( + ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Neutronium, 6) + ) + .duration(GTMaterials.Neutronium.getMass() * 6) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.extractor('gtceu:extractor/recycling/empty_tier_iii_battery') + .itemInputs('gtceu:empty_tier_iii_battery') + .outputFluids(Fluid.of('gtceu:neutronium', 864)) + .duration(GTMaterials.Neutronium.getMass() * 6) + .category(GTRecipeCategories.EXTRACTOR_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) +} \ No newline at end of file diff --git a/kubejs/server_scripts/gregtech/recipes.removes.js b/kubejs/server_scripts/gregtech/recipes.removes.js index da3844ec4..efeca1f05 100644 --- a/kubejs/server_scripts/gregtech/recipes.removes.js +++ b/kubejs/server_scripts/gregtech/recipes.removes.js @@ -583,5 +583,8 @@ function removeGTCEURecipes(event) { event.remove({ id: 'gtceu:assembler/treated_trapdoor_steel' }) event.remove({ id: 'gtceu:assembler/treated_door' }) event.remove({ id: 'gtceu:assembler/barrel' }) + event.remove({ id: 'gtceu:assembler/book_from_leather' }) + event.remove({ id: 'gtceu:assembler/name_tag' }) + event.remove({ id: 'gtceu:chemical_reactor/ghast_tear_separation' }) } diff --git a/kubejs/server_scripts/gregtech/recipes.tfcmetals.js b/kubejs/server_scripts/gregtech/recipes.tfcmetals.js new file mode 100644 index 000000000..84388d6bb --- /dev/null +++ b/kubejs/server_scripts/gregtech/recipes.tfcmetals.js @@ -0,0 +1,310 @@ +// priority: 0 + +function registerGTCEuTFCMetalsRecipes(event) +{ + //#region LV hull + + event.replaceInput('gtceu:shaped/lv_machine_hull', '#forge:plates/wrought_iron', '#forge:plates/red_steel') + + //#endregion + + //#region make colored steel a bit easier to compensate + + event.recipes.gtceu.arc_furnace('tfg:black_steel_dust_to_ingot') + .itemInputs('gtceu:black_steel_dust') + .itemOutputs('tfc:metal/ingot/black_steel') + .inputFluids(Fluid.of('gtceu:oxygen', 72)) + .duration(500) + .EUt(24) + + event.recipes.gtceu.arc_furnace('tfg:red_steel_dust_to_ingot') + .itemInputs('gtceu:red_steel_dust') + .itemOutputs('tfc:metal/ingot/red_steel') + .inputFluids(Fluid.of('gtceu:oxygen', 72)) + .duration(700) + .EUt(32) + + event.recipes.gtceu.arc_furnace('tfg:blue_steel_dust_to_ingot') + .itemInputs('gtceu:blue_steel_dust') + .itemOutputs('tfc:metal/ingot/blue_steel') + .inputFluids(Fluid.of('gtceu:oxygen', 72)) + .duration(700) + .EUt(32) + + //#endregion + + //#region add regular furnace recipes for other tfc alloys + + event.remove({ id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze_gas' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_black_bronze' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_black_bronze_gas' }) + event.remove({ id: 'gtceu:vacuum_freezer/cool_hot_black_bronze_ingot' }) + event.remove({ id: 'gtceu:vacuum_freezer/black_bronze' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_sterling_silver' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_sterling_silver_gas' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_rose_gold' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_rose_gold_gas' }) + + event.smelting('gtceu:bismuth_bronze_ingot', 'gtceu:bismuth_bronze_dust') + event.smelting('gtceu:black_bronze_ingot', 'gtceu:black_bronze_dust') + event.smelting('gtceu:sterling_silver_ingot', 'gtceu:sterling_silver_dust') + event.smelting('gtceu:rose_gold_ingot', 'gtceu:rose_gold_dust') + + //#endregion + + // Add circuit to assembler recipe for redstone lamp. + // Avoids conflict with AE2 smart cables. + event.remove({ id: 'gtceu:assembler/redstone_lamp' }) + event.recipes.gtceu.assembler('redstone_lamp') + .itemInputs('4x #forge:dusts/redstone', '4x #forge:dusts/glowstone') + .itemOutputs('1x minecraft:redstone_lamp') + .circuit(1) + .duration(100) + .EUt(1) + + // Clear NBT on tanks with shapeless crafts. + const TANK_NAMES = [ + "lv_super", + "mv_super", + "hv_super", + "ev_super", + "iv_quantum", + "luv_quantum", + "zpm_quantum", + "uv_quantum", + "uhv_quantum", + ] + + TANK_NAMES.forEach(prefix => { + // Craft super tanks to remove their NBT data. + event.shapeless(`gtceu:${prefix}_tank`, [`gtceu:${prefix}_tank`]) + // Craft super chests to remove their NBT data. + event.shapeless(`gtceu:${prefix}_chest`, [`gtceu:${prefix}_chest`]) + }) + + // red alloy, because crucible always makes 4+1=5 + + event.remove({ id: 'gtceu:mixer/red_alloy' }) + event.recipes.gtceu.mixer('tfg:red_alloy_mixer') + .itemInputs('1x gtceu:copper_dust', '4x minecraft:redstone') + .itemOutputs('5x gtceu:red_alloy_dust') + .circuit(2) + .duration(100) + .EUt(7) + + event.remove({ id: 'gtceu:centrifuge/red_alloy_separation' }) + event.recipes.gtceu.centrifuge('tfg:red_alloy_separation') + .itemInputs('5x gtceu:red_alloy_dust') + .itemOutputs('1x gtceu:copper_dust', '4x minecraft:redstone') + .duration(900) + .EUt(30) + + event.remove({ id: 'gtceu:alloy_smelter/copper_dust_and_redstone_dust_into_red_alloy' }) + event.recipes.gtceu.alloy_smelter('tfg:copper_dust_and_redstone_dust_into_red_alloy') + .itemInputs('1x gtceu:copper_dust', '4x minecraft:redstone') + .itemOutputs('5x gtceu:red_alloy_ingot') + .duration(50) + .EUt(16) + + event.remove({ id: 'gtceu:alloy_smelter/annealed_copper_dust_and_redstone_dust_into_red_alloy' }) + event.recipes.gtceu.alloy_smelter('tfg:annealed_copper_dust_and_redstone_dust_into_red_alloy') + .itemInputs('1x gtceu:annealed_copper_dust', '4x minecraft:redstone') + .itemOutputs('5x gtceu:red_alloy_ingot') + .duration(50) + .EUt(16) + + event.remove({ id: 'gtceu:alloy_smelter/copper_ingot_and_redstone_dust_into_red_alloy' }) + event.recipes.gtceu.alloy_smelter('tfg:copper_ingot_and_redstone_dust_into_red_alloy') + .itemInputs('1x minecraft:copper_ingot', '4x minecraft:redstone') + .itemOutputs('5x gtceu:red_alloy_ingot') + .duration(50) + .EUt(16) + + event.remove({ id: 'gtceu:alloy_smelter/annealed_copper_ingot_and_redstone_dust_into_red_alloy' }) + event.recipes.gtceu.alloy_smelter('tfg:annealed_copper_ingot_and_redstone_dust_into_red_alloy') + .itemInputs('1x gtceu:annealed_copper_ingot', '4x minecraft:redstone') + .itemOutputs('5x gtceu:red_alloy_ingot') + .duration(50) + .EUt(16) + + // steam machines + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_forge_hammer' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_forge_hammer') + .itemInputs('1x gtceu:hp_steam_forge_hammer') + .itemOutputs('7x gtceu:wrought_iron_ingot', '2x gtceu:steel_ingot', '2x gtceu:tin_alloy_ingot', '1x #forge:ingots/black_steel') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/macerate_hp_steam_forge_hammer' }) + event.recipes.gtceu.macerator('tfg:macerate_hp_steam_forge_hammer') + .itemInputs('1x gtceu:hp_steam_forge_hammer') + .itemOutputs('7x gtceu:wrought_iron_dust', '2x gtceu:steel_dust', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust', '1x #forge:dusts/black_steel') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_extractor' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_extractor') + .itemInputs('1x gtceu:hp_steam_extractor') + .itemOutputs('7x gtceu:wrought_iron_ingot', '2x gtceu:steel_ingot', '2x gtceu:tin_alloy_ingot') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/macerate_hp_steam_extractor' }) + event.recipes.gtceu.macerator('tfg:macerate_hp_steam_extractor') + .itemInputs('1x gtceu:hp_steam_extractor') + .itemOutputs('7x gtceu:wrought_iron_dust', '2x gtceu:steel_dust', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_macerator' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_macerator') + .itemInputs('1x gtceu:hp_steam_macerator') + .itemOutputs('7x gtceu:wrought_iron_ingot', '2x gtceu:steel_ingot', '1x #forge:ingots/black_steel', '1x gtceu:tin_alloy_ingot') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/macerate_hp_steam_macerator' }) + event.recipes.gtceu.macerator('tfg:macerate_hp_steam_macerator') + .itemInputs('1x gtceu:hp_steam_macerator') + .itemOutputs('7x gtceu:wrought_iron_dust', '2x gtceu:steel_dust', '1x #forge:dusts/black_steel', '1x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_compressor' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_compressor') + .itemInputs('1x gtceu:hp_steam_compressor') + .itemOutputs('8x gtceu:wrought_iron_ingot', '1x gtceu:steel_ingot', '2x gtceu:tin_alloy_ingot') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/macerate_hp_steam_compressor' }) + event.recipes.gtceu.macerator('tfg:macerate_hp_steam_compressor') + .itemInputs('1x gtceu:hp_steam_compressor') + .itemOutputs('8x gtceu:wrought_iron_dust', '1x gtceu:steel_dust', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_furnace' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_furnace') + .itemInputs('1x gtceu:hp_steam_furnace') + .itemOutputs('7x gtceu:wrought_iron_ingot', '2x gtceu:tin_alloy_ingot', '1x gtceu:steel_ingot', '1x #forge:ingots/black_steel') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/macerate_hp_steam_furnace' }) + event.recipes.gtceu.macerator('tfg:macerate_hp_steam_furnace') + .itemInputs('1x gtceu:hp_steam_furnace') + .itemOutputs('7x gtceu:wrought_iron_dust', '2x gtceu:tin_alloy_dust', '1x gtceu:steel_dust', '1x #forge:dusts/black_steel', '12x gtceu:brick_dust') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_alloy_smelter' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_alloy_smelter') + .itemInputs('1x gtceu:hp_steam_alloy_smelter') + .itemOutputs('7x gtceu:wrought_iron_ingot', '3x gtceu:steel_ingot', '1x gtceu:tin_alloy_ingot', '1x #forge:ingots/black_steel') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/macerate_hp_steam_alloy_smelter' }) + event.recipes.gtceu.macerator('tfg:macerate_hp_steam_alloy_smelter') + .itemInputs('1x gtceu:hp_steam_alloy_smelter') + .itemOutputs('7x gtceu:wrought_iron_dust', '3x gtceu:steel_dust', '1x gtceu:tin_alloy_dust', '1x #forge:dusts/black_steel', '12x gtceu:brick_dust') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_rock_crusher' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_rock_crusher') + .itemInputs('1x gtceu:hp_steam_rock_crusher') + .itemOutputs('6x gtceu:wrought_iron_ingot', '2x gtceu:tin_alloy_ingot') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/macerate_hp_steam_rock_crusher' }) + event.recipes.gtceu.macerator('tfg:macerate_hp_steam_rock_crusher') + .itemInputs('1x gtceu:hp_steam_rock_crusher') + .itemOutputs('6x gtceu:wrought_iron_dust', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_miner' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_miner') + .itemInputs('1x gtceu:hp_steam_miner') + .itemOutputs('7x gtceu:wrought_iron_ingot', '2x gtceu:tin_alloy_ingot', '1x #forge:ingots/steel') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/macerate_hp_steam_miner' }) + event.recipes.gtceu.macerator('tfg:macerate_hp_steam_miner') + .itemInputs('1x gtceu:hp_steam_miner') + .itemOutputs('7x gtceu:wrought_iron_dust', '2x gtceu:tin_alloy_dust', '1x #forge:dusts/steel', '12x gtceu:brick_dust') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_solid_boiler' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_solid_boiler') + .itemInputs('1x gtceu:hp_steam_solid_boiler') + .itemOutputs('5x gtceu:wrought_iron_ingot', '4x #forge:ingots/steel', '2x gtceu:tin_alloy_ingot') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/macerate_hp_steam_solid_boiler' }) + event.recipes.gtceu.macerator('tfg:macerate_hp_steam_solid_boiler') + .itemInputs('1x gtceu:hp_steam_solid_boiler') + .itemOutputs('5x gtceu:wrought_iron_dust', '4x #forge:dusts/steel', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_liquid_boiler' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_liquid_boiler') + .itemInputs('1x gtceu:hp_steam_liquid_boiler') + .itemOutputs('5x gtceu:wrought_iron_ingot', '4x #forge:ingots/steel', '2x gtceu:tin_alloy_ingot') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/macerate_hp_steam_liquid_boiler' }) + event.recipes.gtceu.macerator('tfg:macerate_hp_steam_liquid_boiler') + .itemInputs('1x gtceu:hp_steam_liquid_boiler') + .itemOutputs('5x gtceu:wrought_iron_dust', '4x #forge:dusts/steel', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + event.remove({ id: 'gtceu:arc_furnace/arc_hp_steam_solar_boiler' }) + event.recipes.gtceu.arc_furnace('tfg:arc_hp_steam_solar_boiler') + .itemInputs('1x gtceu:hp_steam_solar_boiler') + .itemOutputs('5x gtceu:wrought_iron_ingot', '4x #forge:ingots/silver', '2x gtceu:tin_alloy_ingot') + .duration(3310) + .EUt(30) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + + event.remove({ id: 'gtceu:macerator/macerate_hp_steam_solar_boiler' }) + event.recipes.gtceu.macerator('tfg:macerate_hp_steam_solar_boiler') + .itemInputs('1x gtceu:hp_steam_solar_boiler') + .itemOutputs('5x gtceu:wrought_iron_dust', '4x #forge:dusts/silver', '2x gtceu:tin_alloy_dust', '12x gtceu:brick_dust') + .duration(3254) + .EUt(8) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + + //#endregion +} \ No newline at end of file diff --git a/kubejs/server_scripts/gregtech/tags.js b/kubejs/server_scripts/gregtech/tags.js index f15a867fa..09d0b8039 100644 --- a/kubejs/server_scripts/gregtech/tags.js +++ b/kubejs/server_scripts/gregtech/tags.js @@ -57,6 +57,12 @@ const registerGTCEUItemTags = (event) => { { event.remove('ae2:p2p_attunements/fluid_p2p_tunnel', `gtceu:${dyeName}_dye_bucket`) }) + + // Piglin loved + event.add('minecraft:piglin_loved', 'gtceu:tiny_pyrite_dust') + event.add('minecraft:piglin_loved', 'gtceu:poor_raw_pyrite') + event.add('minecraft:piglin_loved', 'gtceu:raw_pyrite') + event.add('minecraft:piglin_loved', 'gtceu:rich_raw_pyrite') } const registerGTCEUBlockTags = (event) => { diff --git a/kubejs/server_scripts/gregtech/utility.js b/kubejs/server_scripts/gregtech/utility.js index 8e3c2da48..6962606ec 100644 --- a/kubejs/server_scripts/gregtech/utility.js +++ b/kubejs/server_scripts/gregtech/utility.js @@ -59,42 +59,106 @@ const getFillingNBT = (material, amount) => { } function generatePlatedBlockRecipe(event, material) { + // firmaciv plated blocks don't have this property + let tfcProperty = material.getProperty(TFGPropertyKey.TFC_PROPERTY) + let outputMaterial = (tfcProperty == null || tfcProperty.getOutputMaterial() == null) ? material : tfcProperty.getOutputMaterial() + let plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1); let platedBlock = ChemicalHelper.get(TFGTagPrefix.blockPlated, material, 1); let platedSlab = ChemicalHelper.get(TFGTagPrefix.slabPlated, material, 1); let platedStair = ChemicalHelper.get(TFGTagPrefix.stairPlated, material, 1); + let tfcMetalName = material.getName(); + if (tfcMetalName == "iron") + tfcMetalName = "cast_iron"; + event.recipes.create.item_application(platedBlock, ['#forge:stone_bricks', plateItem]) .id(`tfg:item_application/${material.getName()}_plated_block`) event.recipes.createDeploying(platedBlock, ['#forge:stone_bricks', plateItem]) .id(`tfg:deploying/${material.getName()}_plated_block`) - event.recipes.gtceu.assembler(`tfg:assembler/${material.getName()}_plated_block`) + event.recipes.gtceu.assembler(`tfg:${material.getName()}_plated_block`) .itemInputs('#forge:stone_bricks', plateItem) .itemOutputs(platedBlock) .circuit(10) .duration(50) - .EUt(4) + .EUt(GTValues.VA[GTValues.ULV]) + + if (tfcProperty != null) { + event.recipes.tfc.heating(platedBlock, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${tfcMetalName}_block`) + } + event.recipes.gtceu.macerator(`tfg:${material.getName()}_plated_block`) + .itemInputs(platedBlock) + .itemOutputs(ChemicalHelper.get(TagPrefix.dust, material, 1), 'gtceu:stone_dust') + .duration(material.getMass()) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + event.recipes.gtceu.arc_furnace(`tfg:${material.getName()}_plated_block`) + .itemInputs(platedBlock) + .itemOutputs(ChemicalHelper.get(TagPrefix.ingot, material, 1), 'gtceu:ash_dust') + .duration(material.getMass()) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + event.recipes.create.item_application(platedSlab, ['#tfg:brick_slabs', plateItem]) .id(`tfg:item_application/${material.getName()}_plated_slab`) event.recipes.createDeploying(platedSlab, ['#tfg:brick_slabs', plateItem]) .id(`tfg:deploying/${material.getName()}_plated_slab`) - event.recipes.gtceu.assembler(`tfg:assembler/${material.getName()}_plated_slab`) + event.recipes.gtceu.assembler(`tfg:${material.getName()}_plated_slab`) .itemInputs('#tfg:brick_slabs', plateItem) .itemOutputs(platedSlab) .circuit(10) .duration(50) - .EUt(4) + .EUt(GTValues.VA[GTValues.ULV]) + + if (tfcProperty != null) { + event.recipes.tfc.heating(platedSlab, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${tfcMetalName}_block_slab`) + } + event.recipes.gtceu.macerator(`tfg:${material.getName()}_plated_slab`) + .itemInputs(platedSlab) + .itemOutputs(ChemicalHelper.get(TagPrefix.dust, material, 1), 'gtceu:small_stone_dust') + .duration(material.getMass()) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + event.recipes.gtceu.arc_furnace(`tfg:${material.getName()}_plated_slab`) + .itemInputs(platedSlab) + .itemOutputs(ChemicalHelper.get(TagPrefix.ingot, material, 1), 'gtceu:small_ash_dust') + .duration(material.getMass()) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) + event.recipes.create.item_application(platedStair, ['#tfg:brick_stairs', plateItem]) .id(`tfg:item_application/${material.getName()}_plated_stair`) event.recipes.createDeploying(platedStair, ['#tfg:brick_stairs', plateItem]) .id(`tfg:deploying/${material.getName()}_plated_stair`) - event.recipes.gtceu.assembler(`tfg:assembler/${material.getName()}_plated_stair`) + event.recipes.gtceu.assembler(`tfg:${material.getName()}_plated_stair`) .itemInputs('#tfg:brick_stairs', plateItem) .itemOutputs(platedStair) .circuit(10) .duration(50) - .EUt(4) + .EUt(GTValues.VA[GTValues.ULV]) + + if (tfcProperty != null) { + event.recipes.tfc.heating(platedStair, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${tfcMetalName}_block_stairs`) + } + event.recipes.gtceu.macerator(`tfg:${material.getName()}_plated_stair`) + .itemInputs(platedStair) + .itemOutputs(ChemicalHelper.get(TagPrefix.dust, material, 1), 'gtceu:stone_dust') + .duration(material.getMass()) + .category(GTRecipeCategories.MACERATOR_RECYCLING) + .EUt(GTValues.VA[GTValues.ULV]) + event.recipes.gtceu.arc_furnace(`tfg:${material.getName()}_plated_stair`) + .itemInputs(platedStair) + .itemOutputs(ChemicalHelper.get(TagPrefix.ingot, material, 1), 'gtceu:ash_dust') + .duration(material.getMass()) + .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) + .EUt(GTValues.VA[GTValues.LV]) } \ No newline at end of file diff --git a/kubejs/server_scripts/handglider/recipes.js b/kubejs/server_scripts/handglider/recipes.js index f8713697e..fd10175b8 100644 --- a/kubejs/server_scripts/handglider/recipes.js +++ b/kubejs/server_scripts/handglider/recipes.js @@ -1,16 +1,28 @@ // priority: 0 - + const registerHandGliderRecipes = (event) => { - + + event.remove({id: 'hangglider:glider_framework'}) + // Glider Framework event.shaped('hangglider:glider_framework', [ 'AAA', 'BCB', 'DCD' ], { - A: '#forge:rods/wrought_iron', - B: '#forge:rods/long/wrought_iron', + A: ChemicalHelper.get(TagPrefix.rod, GTMaterials.WroughtIron, 1), + B: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.WroughtIron, 1), C: '#forge:screws', D: '#forge:rings' - }).id('hangglider:glider_framework') + }).id('hangglider:shaped/glider_framework') + + event.shaped('hangglider:glider_wing', [ + ' C', + ' BA', + 'BAA' + ], { + A: '#forge:cloth', + B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.WroughtIron, 1), + C: '#forge:rings' + }).id('hangglider:shaped/glider_wing') } \ No newline at end of file diff --git a/kubejs/server_scripts/main_server_script.js b/kubejs/server_scripts/main_server_script.js index 0229542f2..5ea97b213 100644 --- a/kubejs/server_scripts/main_server_script.js +++ b/kubejs/server_scripts/main_server_script.js @@ -132,6 +132,8 @@ TFCEvents.data(event => { LootJS.modifiers((event) => { registerGTCEULoots(event) registerLootrLoots(event) + registerPrimitiveCreatesLoots(event) + registerTFCLoots(event) }); /** @@ -148,7 +150,6 @@ GTCEuServerEvents.oreVeins(event => { */ ServerEvents.recipes(event => { registerAdvancedPeripheralsRecipes(event) - registerAdvancedPeripheralsRecyclingRecipes(event) registerAlekishipsRecipes(event) registerAE2Recipes(event) registerAFCRecipes(event) @@ -162,9 +163,7 @@ ServerEvents.recipes(event => { registerChiselAndBitsRecipes(event) registerComfortsRecipes(event); registerComputerCraftRecipes(event) - registerComputerCraftRecyclingRecipes(event) registerCccBridgeRecipes(event) - registerCccBridgeRecyclingRecipes(event) registerConstructionwandRecipes(event) registerCreateRecipes(event) registerCreateAdditionsRecipes(event) @@ -173,6 +172,7 @@ ServerEvents.recipes(event => { registerCreateHorsePowerBlockRecipes(event) registerDiggerHelmetRecipes(event) registerDomumOrnamentumRecipes(event) + registerEndermanOverhaulRecipes(event) registerEveryCompatRecipes(event) registerExtendedAE2Recipes(event) registerExposureRecipes(event) @@ -183,7 +183,7 @@ ServerEvents.recipes(event => { registerFTBQuestsRecipes(event) registerGrapplingHookRecipes(event); registerGreateRecipes(event) - registerGTCEURecipes(event) + registerGTCEURecipes(event); registerHandGliderRecipes(event) registerHotOrNotRecipes(event) registerImmersiveAircraftRecipes(event) diff --git a/kubejs/server_scripts/minecraft/recipes.js b/kubejs/server_scripts/minecraft/recipes.js index 3f5a24b2e..063b83570 100644 --- a/kubejs/server_scripts/minecraft/recipes.js +++ b/kubejs/server_scripts/minecraft/recipes.js @@ -164,7 +164,7 @@ const registerMinecraftRecipes = (event) => { event.recipes.gtceu.centrifuge('sugar_from_sugarcane') .itemInputs('tfc:food/sugarcane') .inputFluids(Fluid.of('minecraft:water', 600)) - .itemOutputs('minecraft:sugar') + .itemOutputs('minecraft:sugar', 'gtceu:plant_ball') .duration(800) .EUt(6) @@ -227,6 +227,15 @@ const registerMinecraftRecipes = (event) => { .resultItem('minecraft:sponge') .id('tfg:minecraft/heating/sponge') + event.recipes.gtceu.chemical_reactor('minecraft:gtceu/chemical_reactor/sponge') + .itemInputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.SodiumBisulfate, 1)) + .inputFluids(Fluid.of('gtceu:polyethylene', 144), Fluid.of('minecraft:water', 250)) + .itemOutputs('2x minecraft:sponge') + .outputFluids(Fluid.of('gtceu:sodium_persulfate', 35)) + .duration(80) + .EUt(GTValues.VA[GTValues.LV]) + + //#endregion //#region ะ’ั‹ั…ะพะด: ะขะพะฝะธั€ะพะฒะฐะฝะฝะพะต ัั‚ะตะบะปะพ @@ -252,8 +261,27 @@ const registerMinecraftRecipes = (event) => { //#region ะ’ั‹ั…ะพะด: ะšะฝะธะณะฐ event.shapeless('minecraft:book', [ - 'minecraft:paper', 'minecraft:paper', 'minecraft:paper', '#forge:leather' - ]).id('minecraft:book') + '#forge:paper', '#forge:paper', '#forge:paper', '#forge:leather', 'tfc:glue' + ]).id('minecraft:book_from_glue') + + event.shapeless('minecraft:book', [ + '#forge:paper', '#forge:paper', '#forge:paper', '#forge:leather', 'gtceu:sticky_resin' + ]).id('minecraft:book_from_sticky_resin') + + event.recipes.gtceu.assembler('tfg:assembler/book_from_leather') + .itemInputs('3x #forge:paper', '#forge:leather') + .itemOutputs('minecraft:book') + .inputFluids(Fluid.of('gtceu:glue', 50)) + .EUt(7).duration(30) + + //#endregion + + //#region + + event.recipes.gtceu.assembler('tfg:assembler/name_tag') + .itemInputs('5x #forge:string', '#forge:paper') + .itemOutputs('minecraft:name_tag') + .EUt(7).duration(100) //#endregion @@ -842,8 +870,19 @@ const registerMinecraftRecipes = (event) => { event.shapeless('minecraft:redstone_torch', ['#forge:rods/wooden', 'minecraft:redstone']) .id('tfg:shapeless/redstone_torch') + event.shapeless('minecraft:lever', ['#forge:rods/wooden', 'minecraft:redstone', '#forge:cobblestone']) + .id('tfg:shapeless/lever') + generateCutterRecipe(event, '#forge:double_plates/wrought_iron', 'minecraft:iron_door', 400, GTValues.VA[GTValues.LV], 'iron_door') + event.shaped('4x minecraft:ladder', [ + 'A A', + 'AAA', + 'A A' + ], { + A: '#forge:rods/wooden' + }).id('gtceu:shaped/ladder') + // #endregion // #region Calcite @@ -861,4 +900,36 @@ const registerMinecraftRecipes = (event) => { ).id('tfg:shapeless/calcite_from_rich_raw') // #endregion + + //#region ะšะพะถะฐ ะธะท ะบะพะถะฐะฝั‹ั… ะฟั€ะตะดะผะตั‚ะพะฒ + event.recipes.gtceu.macerator('tfg:leather_from_boots') + .itemInputs('minecraft:leather_boots') + .itemOutputs('minecraft:leather') + .EUt(7).duration(80) + + event.recipes.gtceu.macerator('tfg:leather_from_saddle') + .itemInputs('minecraft:saddle') + .itemOutputs('minecraft:leather') + .EUt(7).duration(80) + + event.recipes.gtceu.macerator('tfg:leather_from_horse_armor') + .itemInputs('minecraft:leather_horse_armor') + .itemOutputs('minecraft:leather') + .EUt(7).duration(80) + + event.recipes.gtceu.macerator('tfg:leather_from_helmet') + .itemInputs('minecraft:leather_helmet') + .itemOutputs('minecraft:leather') + .EUt(7).duration(80) + + event.recipes.gtceu.macerator('tfg:leather_from_leggings') + .itemInputs('minecraft:leather_leggings') + .itemOutputs('minecraft:leather') + .EUt(7).duration(80) + + event.recipes.gtceu.macerator('tfg:leather_from_chestplate') + .itemInputs('minecraft:leather_chestplate') + .itemOutputs('minecraft:leather') + .EUt(7).duration(80) + //#endregion } diff --git a/kubejs/server_scripts/minecraft/recipes.removes.js b/kubejs/server_scripts/minecraft/recipes.removes.js index a16efbff0..6f4752edc 100644 --- a/kubejs/server_scripts/minecraft/recipes.removes.js +++ b/kubejs/server_scripts/minecraft/recipes.removes.js @@ -911,6 +911,9 @@ function removeMinecraftRecipes(event) { event.remove({ id: 'minecraft:warped_hyphae' }) event.remove({ id: 'minecraft:stripped_crimson_hyphae' }) event.remove({ id: 'minecraft:crimson_hyphae' }) + + event.remove({ id: 'minecraft:arrow' }) + event.remove({ output: 'minecraft:tipped_arrow' }) //#endregion diff --git a/kubejs/server_scripts/minecraft/tags.js b/kubejs/server_scripts/minecraft/tags.js index 07d08f575..298790c65 100644 --- a/kubejs/server_scripts/minecraft/tags.js +++ b/kubejs/server_scripts/minecraft/tags.js @@ -54,7 +54,6 @@ const registerMinecraftItemTags = (event) => { event.add('tfc:rock/raw', 'minecraft:blackstone') event.add('tfc:rock/raw', 'minecraft:dripstone_block') - event.add('forge:cloth', 'minecraft:phantom_membrane') event.add('tfc:sewing_dark_cloth', 'minecraft:phantom_membrane') event.remove('forge:gems', 'minecraft:charcoal') diff --git a/kubejs/server_scripts/primitive_creatures/loot.js b/kubejs/server_scripts/primitive_creatures/loot.js new file mode 100644 index 000000000..8693dd669 --- /dev/null +++ b/kubejs/server_scripts/primitive_creatures/loot.js @@ -0,0 +1,10 @@ +// priority: 0 + +function registerPrimitiveCreatesLoots(event) { + + event.addEntityLootModifier('kaolinclayze:tfc') + .addWeightedLoot([7,15], ['tfc:kaolin_clay', 'minecraft:clay_ball']) + + event.addEntityLootModifier('kaolinclayze:golem_2') + .addWeightedLoot([7,15], ['gtceu:poor_raw_graphite', 'gtceu:raw_graphite', 'gtceu:rich_raw_graphite']) +} \ No newline at end of file diff --git a/kubejs/server_scripts/railways/gpedia_locometal_integration.js b/kubejs/server_scripts/railways/gpedia_locometal_integration.js index 4548a0a31..6ccac5a9f 100644 --- a/kubejs/server_scripts/railways/gpedia_locometal_integration.js +++ b/kubejs/server_scripts/railways/gpedia_locometal_integration.js @@ -30,6 +30,7 @@ const railwaysLocometalIntegration = (event) => { .itemOutputs(Item.of(`railways:${locometal}`)) .duration(20) .EUt(24) + .category(GTRecipeCategories.CHEM_DYES) } event.recipes.create.item_application(`railways:iron_wrapped_locometal`, [`#railways:palettes/cycle_groups/base`, '#forge:plates/wrought_iron']); @@ -41,19 +42,50 @@ const railwaysLocometalIntegration = (event) => { .inputFluids(Fluid.of(`gtceu:chlorine`, 18)) .itemOutputs(`railways:brass_wrapped_locometal`) .duration(20) - .EUt(24); + .EUt(24) + .category(GTRecipeCategories.CHEM_DYES); event.recipes.gtceu.chemical_bath(`gpedia:undying/copper_wrapped_locometal`) .itemInputs('#railways:palettes/dye_groups/copper_wrapped_slashed') .inputFluids(Fluid.of(`gtceu:chlorine`, 18)) .itemOutputs(`railways:copper_wrapped_locometal`) .duration(20) - .EUt(24); + .EUt(24) + .category(GTRecipeCategories.CHEM_DYES); event.recipes.gtceu.chemical_bath(`gpedia:undying/iron_wrapped_locometal`) .itemInputs('#railways:palettes/dye_groups/iron_wrapped_slashed') .inputFluids(Fluid.of(`gtceu:chlorine`, 18)) .itemOutputs(`railways:iron_wrapped_locometal`) .duration(20) .EUt(24) + .category(GTRecipeCategories.CHEM_DYES) + event.recipes.gtceu.chemical_bath('tfg:undying/boiler') + .itemInputs('#railways:palettes/dye_groups/boiler') + .inputFluids(Fluid.of(`gtceu:chlorine`, 72)) + .itemOutputs(`railways:locometal_boiler`) + .duration(20) + .EUt(24) + .category(GTRecipeCategories.CHEM_DYES) + event.recipes.gtceu.chemical_bath(`tfg:undying/brass_wrapped_boiler`) + .itemInputs('#railways:palettes/dye_groups/brass_wrapped_boiler') + .inputFluids(Fluid.of(`gtceu:chlorine`, 72)) + .itemOutputs(`railways:brass_wrapped_locometal_boiler`) + .duration(20) + .EUt(24) + .category(GTRecipeCategories.CHEM_DYES) + event.recipes.gtceu.chemical_bath(`tfg:undying/copper_wrapped_boiler`) + .itemInputs('#railways:palettes/dye_groups/copper_wrapped_boiler') + .inputFluids(Fluid.of(`gtceu:chlorine`, 72)) + .itemOutputs(`railways:copper_wrapped_locometal_boiler`) + .duration(20) + .EUt(24) + .category(GTRecipeCategories.CHEM_DYES) + event.recipes.gtceu.chemical_bath(`tfg:undying/iron_wrapped_boiler`) + .itemInputs('#railways:palettes/dye_groups/iron_wrapped_boiler') + .inputFluids(Fluid.of(`gtceu:chlorine`, 72)) + .itemOutputs(`railways:iron_wrapped_locometal_boiler`) + .duration(20) + .EUt(24) + .category(GTRecipeCategories.CHEM_DYES) global.MINECRAFT_DYE_NAMES.forEach(dye => { for (var locometal in locometalBase) { @@ -62,35 +94,93 @@ const railwaysLocometalIntegration = (event) => { .inputFluids(Fluid.of(`tfc:${dye}_dye`, 18)) .itemOutputs(Item.of(`railways:${dye}_${locometal}`)) .duration(20) - .EUt(24); - event.shapeless( - Item.of(`railways:${dye}_${locometal}`, 8), - [ - Item.of(locometalDyeGroups[`${locometal}`], 8), - `1x #forge:dyes/${dye}_dye` - ] - ) + .EUt(24) + .category(GTRecipeCategories.CHEM_DYES); }; event.recipes.create.item_application(`railways:${dye}_iron_wrapped_locometal`, [`#railways:palettes/cycle_groups/${dye}`, '#forge:plates/wrought_iron']); event.recipes.create.item_application(`railways:${dye}_copper_wrapped_locometal`, [`#railways:palettes/cycle_groups/${dye}`, '#forge:plates/copper']); event.recipes.create.item_application(`railways:${dye}_brass_wrapped_locometal`, [`#railways:palettes/cycle_groups/${dye}`, '#forge:plates/brass']); + event.recipes.gtceu.chemical_bath(`gpedia:brass_locometal_bathing/${dye}`) .itemInputs('#railways:palettes/dye_groups/brass_wrapped_slashed') .inputFluids(Fluid.of(`tfc:${dye}_dye`, 18)) .itemOutputs(`railways:${dye}_brass_wrapped_locometal`) .duration(20) - .EUt(24); + .EUt(24) + .category(GTRecipeCategories.CHEM_DYES); event.recipes.gtceu.chemical_bath(`gpedia:copper_locometal_bathing/${dye}`) .itemInputs('#railways:palettes/dye_groups/copper_wrapped_slashed') .inputFluids(Fluid.of(`tfc:${dye}_dye`, 18)) .itemOutputs(`railways:${dye}_copper_wrapped_locometal`) .duration(20) - .EUt(24); + .EUt(24) + .category(GTRecipeCategories.CHEM_DYES); event.recipes.gtceu.chemical_bath(`gpedia:locometal_bathing/${dye}`) .itemInputs('#railways:palettes/dye_groups/iron_wrapped_slashed') .inputFluids(Fluid.of(`tfc:${dye}_dye`, 18)) .itemOutputs(`railways:${dye}_iron_wrapped_locometal`) .duration(20) - .EUt(24); + .EUt(24) + .category(GTRecipeCategories.CHEM_DYES); + event.recipes.gtceu.chemical_bath(`tfg:railways/locometal_boiler/color/${dye}`) + .itemInputs('#railways:palettes/dye_groups/boiler') + .inputFluids(Fluid.of(`tfc:${dye}_dye`, 72)) + .itemOutputs(`railways:${dye}_locometal_boiler`) + .duration(300) + .EUt(4) + .category(GTRecipeCategories.CHEM_DYES) + event.recipes.gtceu.chemical_bath(`tfg:railways/brass_wrapped_locometal_boiler/color/${dye}`) + .itemInputs('#railways:palettes/dye_groups/brass_wrapped_boiler') + .inputFluids(Fluid.of(`tfc:${dye}_dye`, 72)) + .itemOutputs(`railways:${dye}_brass_wrapped_locometal_boiler`) + .duration(300) + .EUt(4) + .category(GTRecipeCategories.CHEM_DYES) + event.recipes.gtceu.chemical_bath(`tfg:railways/copper_wrapped_locometal_boiler/color/${dye}`) + .itemInputs('#railways:palettes/dye_groups/copper_wrapped_boiler') + .inputFluids(Fluid.of(`tfc:${dye}_dye`, 72)) + .itemOutputs(`railways:${dye}_copper_wrapped_locometal_boiler`) + .duration(300) + .EUt(4) + .category(GTRecipeCategories.CHEM_DYES) + event.recipes.gtceu.chemical_bath(`tfg:railways/iron_wrapped_locometal_boiler/color/${dye}`) + .itemInputs('#railways:palettes/dye_groups/iron_wrapped_boiler') + .inputFluids(Fluid.of(`tfc:${dye}_dye`, 72)) + .itemOutputs(`railways:${dye}_iron_wrapped_locometal_boiler`) + .duration(300) + .EUt(4) + .category(GTRecipeCategories.CHEM_DYES) }) + + // Locometal Boiler + event.recipes.gtceu.assembler(`tfg:railways/locometal_boiler`) + .itemInputs('#railways:palettes/cycle_groups/base', `create:fluid_tank`) + .circuit(1) + .itemOutputs(`railways:locometal_boiler`) + .duration(200) + .EUt(28) + + // Brass Wrapped Locometal Boiler + event.recipes.gtceu.assembler(`tfg:railways/brass_wrapped_locometal_boiler`) + .itemInputs(`railways:brass_wrapped_locometal`, `create:fluid_tank`) + .circuit(1) + .itemOutputs(`railways:brass_wrapped_locometal_boiler`) + .duration(200) + .EUt(28) + + // Copper Wrapped Locometal Boiler + event.recipes.gtceu.assembler(`tfg:railways/copper_wrapped_locometal_boiler`) + .itemInputs(`railways:copper_wrapped_locometal`, `create:fluid_tank`) + .circuit(1) + .itemOutputs(`railways:copper_wrapped_locometal_boiler`) + .duration(200) + .EUt(28) + + // Iron Wrapped Locometal Boiler + event.recipes.gtceu.assembler(`tfg:railways/iron_wrapped_locometal_boiler`) + .itemInputs(`railways:iron_wrapped_locometal`, `create:fluid_tank`) + .circuit(1) + .itemOutputs(`railways:iron_wrapped_locometal_boiler`) + .duration(200) + .EUt(28) } \ No newline at end of file diff --git a/kubejs/server_scripts/railways/recipes.js b/kubejs/server_scripts/railways/recipes.js index ba3035089..55924e895 100644 --- a/kubejs/server_scripts/railways/recipes.js +++ b/kubejs/server_scripts/railways/recipes.js @@ -47,6 +47,44 @@ const registerRailWaysRecipes = (event) => { .duration(200) .EUt(28) + //#region Couplers and Buffers + event.recipes.gtceu.assembler(`tfg:railways/screwlink_coupler`) + .itemInputs(`minecraft:tripwire_hook`, `#forge:plates/steel`, '#forge:screws/steel') + .circuit(1) + .itemOutputs(`railways:screwlink_coupler`) + .duration(200) + .EUt(28) + + event.recipes.gtceu.assembler(`tfg:railways/copycat_headstock_screwlink_coupler`) + .itemInputs(`railways:screwlink_coupler`, `create:copycat_panel`) + .circuit(1) + .itemOutputs(`railways:copycat_headstock_screwlink_coupler`) + .duration(200) + .EUt(28) + + event.recipes.gtceu.assembler(`tfg:railways/buffer`) + .itemInputs(`6x #forge:rods/long/steel`, `2x railways:small_buffer`) + .circuit(1) + .itemOutputs(`railways:buffer`) + .duration(200) + .EUt(28) + + event.recipes.gtceu.assembler(`tfg:railways/small_buffer`) + .itemInputs(`railways:screwlink_coupler`, `#forge:ingots/steel`) + .circuit(1) + .itemOutputs(`railways:small_buffer`) + .duration(200) + .EUt(28) + + event.recipes.gtceu.assembler(`tfg:railways/big_buffer`) + .itemInputs(`railways:small_buffer`, `#forge:ingots/steel`) + .circuit(1) + .itemOutputs(`railways:big_buffer`) + .duration(200) + .EUt(28) + + //#endregion + // ะŸะตั€ะตะบะปัŽั‡ะฐั‚ะตะปัŒ ะฟัƒั‚ะธ ะฟะพะตะทะดะฐ ะธะท ะฐะฝะดะตะทะธั‚ะฐ event.shaped('railways:track_switch_andesite', [ 'BAB', diff --git a/kubejs/server_scripts/tfc/data.js b/kubejs/server_scripts/tfc/data.js index ca249ec15..24b811262 100644 --- a/kubejs/server_scripts/tfc/data.js +++ b/kubejs/server_scripts/tfc/data.js @@ -177,6 +177,7 @@ const registerTFCFertilizers = (event) => { //#region registerTFCKnappingTypes const registerTFCKnappingTypes = (event) => { + event.knappingType('minecraft:flint', 1, 1, 'tfc:item.knapping.stone', true, false, true, 'minecraft:flint', 'tfg:flint') // event.knappingType('gtceu:rubber_plate', 1, 5, 'tfc:item.knapping.leather', true, false, true, 'gtceu:rubber_plate', 'tfg:rubber') // event.knappingType('gtceu:styrene_butadiene_rubber_plate', 1, 5, 'tfc:item.knapping.leather', true, false, true, 'gtceu:styrene_butadiene_rubber_plate', 'tfg:styrene_butadiene_rubber_plate') // event.knappingType('gtceu:silicone_rubber_plate', 1, 5, 'tfc:item.knapping.leather', true, false, true, 'gtceu:silicone_rubber_plate', 'tfg:silicone_rubber_plate') @@ -198,14 +199,8 @@ const registerTFCItemSize = (event) => { event.itemSize('tfg:decorative_vase', 'normal', 'medium', 'decorative_vase') event.itemSize('tfg:decorative_vase/unfired', 'normal', 'medium', 'decorative_vase/unfired') - event.itemSize('man_of_many_planes:scarlet_biplane', 'huge', 'very_heavy') - event.itemSize('man_of_many_planes:economy_plane', 'huge', 'very_heavy') - event.itemSize('immersive_aircraft:airship', 'huge', 'very_heavy') - event.itemSize('immersive_aircraft:cargo_airship', 'huge', 'very_heavy') - event.itemSize('immersive_aircraft:warship', 'huge', 'very_heavy') - event.itemSize('immersive_aircraft:biplane', 'huge', 'very_heavy') - event.itemSize('immersive_aircraft:gyrodyne', 'huge', 'very_heavy') - event.itemSize('immersive_aircraft:quadrocopter', 'very_large', 'very_heavy') + event.itemSize('#tfc:ore_pieces', 'very_small', 'very_light', 'tfc_ores') + } //#endregion diff --git a/kubejs/server_scripts/tfc/loot.js b/kubejs/server_scripts/tfc/loot.js new file mode 100644 index 000000000..8e27b403d --- /dev/null +++ b/kubejs/server_scripts/tfc/loot.js @@ -0,0 +1,61 @@ +// priority: 0 + +function registerTFCLoots(event) +{ + event.addEntityLootModifier('tfc:black_bear') + .addWeightedLoot([8,12], ['tfc:food/bear']) + + event.addEntityLootModifier('tfc:grizzly_bear') + .addWeightedLoot([10,16], ['tfc:food/bear']) + + event.addEntityLootModifier('tfc:polar_bear') + .addWeightedLoot([14,20], ['tfc:food/bear']) + .addWeightedLoot([2,5], ['tfc:blubber']) + + event.addEntityLootModifier('tfc:cougar') + .addWeightedLoot([6,10], ['tfc:food/gran_feline']) + + event.addEntityLootModifier('tfc:panther') + .addWeightedLoot([6,10], ['tfc:food/gran_feline']) + + event.addEntityLootModifier('tfc:sabertooth') + .addWeightedLoot([9,14], ['tfc:food/gran_feline']) + + event.addEntityLootModifier('tfc:lion') + .addWeightedLoot([9,14], ['tfc:food/gran_feline']) + + event.addEntityLootModifier('tfc:tiger') + .addWeightedLoot([9,14], ['tfc:food/gran_feline']) + + event.addEntityLootModifier('tfc:ocelot') + .addWeightedLoot([2,5], ['tfc:food/gran_feline']) + + event.addEntityLootModifier('tfc:cat') + .addWeightedLoot([2,5], ['tfc:food/gran_feline']) + + event.addEntityLootModifier('tfc:sabertooth') + .addWeightedLoot([9,14], ['tfc:food/gran_feline']) + + event.addEntityLootModifier('tfc:dog') + .addWeightedLoot([5,9], ['tfc:food/wolf']) + + event.addEntityLootModifier('tfc:wolf') + .addWeightedLoot([5,9], ['tfc:food/wolf']) + + event.addEntityLootModifier('tfc:direwolf') + .addWeightedLoot([10,15], ['tfc:food/wolf']) + + event.addEntityLootModifier('tfc:wolf') + .addWeightedLoot([5,9], ['tfc:food/wolf']) + + event.addEntityLootModifier('tfc:hyena') + .addWeightedLoot([5,9], ['tfc:food/hyena']) + + event.addEntityLootModifier('tfc:fox') + .addWeightedLoot([5,9], ['tfc:food/fox']) + + + event.addEntityLootModifier('tfc:crocodile') + .addWeightedLoot([5,10], ['tfc:food/bluegill', 'tfc:food/crappie', 'tfc:food/lake_trout', 'tfc:food/rainbow_trout', 'tfc:food/frog_legs']) + .addSequenceLoot(LootEntry.of('tfc:metal/fish_hook/copper').when(c => c.randomChance(0.2))) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfc/recipes.js b/kubejs/server_scripts/tfc/recipes.js index c54793e3b..4e560b4ff 100644 --- a/kubejs/server_scripts/tfc/recipes.js +++ b/kubejs/server_scripts/tfc/recipes.js @@ -161,12 +161,15 @@ const registerTFCRecipes = (event) => { .category(GTRecipeCategories.ARC_FURNACE_RECYCLING) // ะขั‹ะบะฒะฐ -> ะšัƒัะพั‡ะบะธ ั‚ั‹ะบะฒั‹ - event.recipes.minecraft.crafting_shaped('5x tfc:food/pumpkin_chunks', [ - 'AB' - ], { - A: '#tfc:knives', - B: 'tfc:pumpkin' - }) + event.recipes.tfc.advanced_shapeless_crafting( + TFC.itemStackProvider.of('5x tfc:food/pumpkin_chunks').copyFood(), + [TFC.ingredient.notRotten('tfc:pumpkin'), '#forge:tools/hammers'], 'tfc:pumpkin') + .id(`tfc:crafting/pumpkin_chunks_hammer`) + + event.recipes.tfc.advanced_shapeless_crafting( + TFC.itemStackProvider.of('5x tfc:food/pumpkin_chunks').copyFood(), + [TFC.ingredient.notRotten('tfc:pumpkin'), '#tfc:knives'], 'tfc:pumpkin') + .id(`tfc:crafting/pumpkin_chunks_knife`) // Lime event.smelting('tfc:powder/lime', 'tfc:powder/flux') @@ -177,8 +180,17 @@ const registerTFCRecipes = (event) => { .id('tfg:smelting/kaolinite_clay') // Fire Brick - //event.smelting('tfc:ceramic/fire_brick', 'gtceu:compressed_fireclay') - // .id('tfg:smelting/fireclay_brick') + event.recipes.gtceu.alloy_smelter('tfg:cheaper_fire_brick') + .itemInputs('#forge:dusts/graphite', 'tfc:kaolin_clay') + .itemOutputs('tfc:fire_clay') + .duration(600) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.alloy_smelter('tfg:oops_i_smelted_all_my_kaolin') + .itemInputs('5x minecraft:clay_ball', 'tfc:powder/kaolinite') + .itemOutputs('5x tfc:kaolin_clay') + .duration(600) + .EUt(GTValues.VA[GTValues.ULV]) // ะ’ั‹ะฟะฐั€ะธะฒะฐะฝะธะต ัะพะปะธ event.recipes.tfc.pot([], Fluid.of('tfc:salt_water', 625), 300, 100) diff --git a/kubejs/server_scripts/tfc/recipes.machines.js b/kubejs/server_scripts/tfc/recipes.machines.js index 577f57db4..c8b943e01 100644 --- a/kubejs/server_scripts/tfc/recipes.machines.js +++ b/kubejs/server_scripts/tfc/recipes.machines.js @@ -279,6 +279,7 @@ function registerTFCMachineRecipes(event) { event.recipes.gtceu.fermenter(`tfg:fermenter/cream_from_${milk.id.replace(':', '_')}`) .inputFluids(Fluid.of(milk.id, 1000)) .outputFluids(Fluid.of('firmalife:cream')) + .circuit(6) .duration(1200) .EUt(24) }) @@ -332,13 +333,32 @@ function registerTFCMachineRecipes(event) { .EUt(2) // Empty Jar - event.recipes.gtceu.assembler(`tfg:tfc/glass_jar`) + event.recipes.gtceu.alloy_smelter('tfc:jar_alloying') .itemInputs('#tfc:glass_batches_tier_2') - .circuit(2) + .notConsumable('gtceu:cylinder_casting_mold') .itemOutputs('tfc:empty_jar') .duration(100) .EUt(2) + event.recipes.gtceu.fluid_solidifier('tfc:jar_solidification') + .inputFluids(Fluid.of('gtceu:glass', 144)) + .notConsumable('gtceu:cylinder_casting_mold') + .itemOutputs('tfc:empty_jar') + .duration(100) + .EUt(2) + + event.recipes.gtceu.extractor('tfc:jar_extraction') + .itemInputs('#tfc:jars') + .outputFluids(Fluid.of('gtceu:glass', 144)) + .duration(50) + .EUt(2) + + event.recipes.gtceu.extractor('tfc:glass_batch_extraction') + .itemInputs('#tfc:glass_batches') + .outputFluids(Fluid.of('gtceu:glass', 144)) + .duration(50) + .EUt(2) + // Wool Yarn event.recipes.gtceu.macerator('macerate_wool') .itemInputs('#minecraft:wool') diff --git a/kubejs/server_scripts/tfc/recipes.materials.js b/kubejs/server_scripts/tfc/recipes.materials.js index bf433b977..9ef8ab5f6 100644 --- a/kubejs/server_scripts/tfc/recipes.materials.js +++ b/kubejs/server_scripts/tfc/recipes.materials.js @@ -1056,7 +1056,7 @@ function registerTFCMaterialsRecipes(event) { // ะ”ะตะบั€ะฐั„ั‚ ะฑะปะพะบะฐ ะฒ ะถะธะดะบะพัั‚ัŒ event.recipes.tfc.heating(`#forge:storage_blocks/${material.getName()}`, tfcProperty.getMeltTemp()) .resultFluid(Fluid.of(outputMaterial.getFluid(), 1296)) - .id(`tfc:heating/metal/${material.getName()}_block`) + .id(`tfc:heating/metal/${material.getName()}_storage_block`) } diff --git a/kubejs/server_scripts/tfc/recipes.metals.js b/kubejs/server_scripts/tfc/recipes.metals.js index 5aed8261d..a8617193c 100644 --- a/kubejs/server_scripts/tfc/recipes.metals.js +++ b/kubejs/server_scripts/tfc/recipes.metals.js @@ -84,70 +84,70 @@ function registerTFCMetalsRecipes(event) { event.recipes.gtceu.forge_hammer('tfg/refined_bloom') .itemInputs('tfc:raw_iron_bloom') .itemOutputs('tfc:refined_iron_bloom') - .duration(1000) + .duration(400) .EUt(4) // ะฃะบั€ะตะฟะปะตะฝะฝะฐั ะบั€ะธั†ะฐ -> ะกะปะธั‚ะพะบ ะบะพะฒะฐะฝะฝะพะณะพ ะถะตะปะตะทะฐ event.recipes.gtceu.forge_hammer('tfg/wrought_iron_ingot') .itemInputs('tfc:refined_iron_bloom') .itemOutputs('gtceu:wrought_iron_ingot') - .duration(1000) + .duration(400) .EUt(4) // ะงัƒะณัƒะฝ -> ะ’ั‹ัะพะบะพัƒะณะปะตั€ะพะดะฝะฐั ัั‚ะฐะปัŒ event.recipes.gtceu.forge_hammer('tfg/high_carbon_steel') .itemInputs('tfc:metal/ingot/pig_iron') .itemOutputs('tfc:metal/ingot/high_carbon_steel') - .duration(700) + .duration(500) .EUt(4) // ะ’ั‹ัะพะบะพัƒะณะปะตั€ะพะดะฝะฐั ัั‚ะฐะปัŒ -> Cั‚ะฐะปัŒ event.recipes.gtceu.forge_hammer('tfg/steel') .itemInputs('tfc:metal/ingot/high_carbon_steel') .itemOutputs('gtceu:steel_ingot') - .duration(700) + .duration(500) .EUt(4) // ะ’ั‹ัะพะบะพัƒะณะปะตั€ะพะดะฝะฐั ั‡ะตั€ะฝะฐั ัั‚ะฐะปัŒ -> ั‡ะตั€ะฝะฐั ัั‚ะฐะปัŒ event.recipes.gtceu.forge_hammer('tfg/black_steel') .itemInputs('tfc:metal/ingot/high_carbon_black_steel') .itemOutputs('tfc:metal/ingot/black_steel') - .duration(900) + .duration(600) .EUt(4) // ะ’ั‹ัะพะบะพัƒะณะปะตั€ะพะดะฝะฐั ัะธะฝัั ัั‚ะฐะปัŒ -> ัะธะฝัั ัั‚ะฐะปัŒ event.recipes.gtceu.forge_hammer('tfg/blue_steel') .itemInputs('tfc:metal/ingot/high_carbon_blue_steel') .itemOutputs('tfc:metal/ingot/blue_steel') - .duration(1000) + .duration(700) .EUt(4) // ะ’ั‹ัะพะบะพัƒะณะปะตั€ะพะดะฝะฐั ะบั€ะฐัะฝะฐั ัั‚ะฐะปัŒ -> ะบั€ะฐัะฝะฐั ัั‚ะฐะปัŒ event.recipes.gtceu.forge_hammer('tfg/red_steel') .itemInputs('tfc:metal/ingot/high_carbon_red_steel') .itemOutputs('tfc:metal/ingot/red_steel') - .duration(1000) + .duration(700) .EUt(4) // ะกะปะฐะฑะฐั ัั‚ะฐะปัŒ + ะงัƒะณัƒะฝ -> ะ’ั‹ัะพะบะพัƒะณะปะตั€ะพะดะฝะฐั ั‡ะตั€ะฝะฐั ัั‚ะฐะปัŒ event.recipes.gtceu.alloy_smelter('tfg/high_carbon_black_steel') .itemInputs('tfc:metal/ingot/weak_steel', 'tfc:metal/ingot/pig_iron') .itemOutputs('2x tfc:metal/ingot/high_carbon_black_steel') - .duration(1000) + .duration(600) .EUt(4) // ะกะปะฐะฑะฐั ัะธะฝัั ัั‚ะฐะปัŒ + ะงะตั€ะฝะฐั ัั‚ะฐะปัŒ -> ะ’ั‹ัะพะบะพัƒะณะปะตั€ะพะดะฝะฐั ัะธะฝัั ัั‚ะฐะปัŒ event.recipes.gtceu.alloy_smelter('tfg/high_carbon_blue_steel') .itemInputs('tfc:metal/ingot/weak_blue_steel', 'tfc:metal/ingot/black_steel') .itemOutputs('2x tfc:metal/ingot/high_carbon_blue_steel') - .duration(1000) + .duration(700) .EUt(4) // ะกะปะฐะฑะฐั ะบั€ะฐัะฝะฐั ัั‚ะฐะปัŒ + ะงะตั€ะฝะฐั ัั‚ะฐะปัŒ -> ะ’ั‹ัะพะบะพัƒะณะปะตั€ะพะดะฝะฐั ะบั€ะฐัะฝะฐั ัั‚ะฐะปัŒ event.recipes.gtceu.alloy_smelter('tfg/high_carbon_red_steel') .itemInputs('tfc:metal/ingot/weak_red_steel', 'tfc:metal/ingot/black_steel') .itemOutputs('2x tfc:metal/ingot/high_carbon_red_steel') - .duration(1000) + .duration(700) .EUt(4) const TFC_INTERMEDIATE_METALS = @@ -248,50 +248,67 @@ function registerTFCMetalsRecipes(event) { .id(`tfc:anvil/iron_door`) // Bloom -> Wrought Iron Ingot - event.recipes.tfc.anvil('gtceu:wrought_iron_ingot', 'tfc:refined_iron_bloom', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(2) + event.recipes.tfc.anvil('gtceu:wrought_iron_ingot', 'tfc:refined_iron_bloom', ['hit_last', 'hit_second_last', 'hit_third_last']) + .tier(2) .id('tfc:anvil/wrought_iron_from_bloom') // High Carbon Steel Ingot -> Steel Ingot - event.recipes.tfc.anvil('gtceu:steel_ingot', 'tfc:metal/ingot/high_carbon_steel', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(3) + event.recipes.tfc.anvil('gtceu:steel_ingot', 'tfc:metal/ingot/high_carbon_steel', ['hit_last', 'hit_second_last', 'hit_third_last']) + .tier(3) .id('tfc:anvil/steel_ingot') // High Carbon Black Steel Ingot -> Black Steel Ingot - event.recipes.tfc.anvil('tfc:metal/ingot/black_steel', 'tfc:metal/ingot/high_carbon_black_steel', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(4) + event.recipes.tfc.anvil('tfc:metal/ingot/black_steel', 'tfc:metal/ingot/high_carbon_black_steel', ['hit_last', 'hit_second_last', 'hit_third_last']) + .tier(4) .id('tfc:anvil/black_steel_ingot') // High Carbon Red Steel Ingot -> Red Steel Ingot - event.recipes.tfc.anvil('tfc:metal/ingot/red_steel', 'tfc:metal/ingot/high_carbon_red_steel', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(5) + event.recipes.tfc.anvil('tfc:metal/ingot/red_steel', 'tfc:metal/ingot/high_carbon_red_steel', ['hit_last', 'hit_second_last', 'hit_third_last']) + .tier(5) .id('tfc:anvil/red_steel_ingot') // High Carbon Blue Steel Ingot -> Blue Steel Ingot - event.recipes.tfc.anvil('tfc:metal/ingot/blue_steel', 'tfc:metal/ingot/high_carbon_blue_steel', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(5) + event.recipes.tfc.anvil('tfc:metal/ingot/blue_steel', 'tfc:metal/ingot/high_carbon_blue_steel', ['hit_last', 'hit_second_last', 'hit_third_last']) + .tier(5) .id('tfc:anvil/blue_steel_ingot') // Gears - event.recipes.tfc.anvil('gtceu:bronze_gear', '#forge:double_plates/bronze', ['punch_last', 'shrink_any', 'draw_any']).tier(2) + event.recipes.tfc.anvil('gtceu:bronze_gear', '#forge:double_plates/bronze', ['punch_last', 'shrink_any', 'draw_any']) + .tier(2) .id('tfc:anvil/bronze_gear') - event.recipes.tfc.anvil('gtceu:black_bronze_gear', '#forge:double_plates/black_bronze', ['punch_last', 'shrink_any', 'draw_any']).tier(2) + event.recipes.tfc.anvil('gtceu:black_bronze_gear', '#forge:double_plates/black_bronze', ['punch_last', 'shrink_any', 'draw_any']) + .tier(2) .id('tfc:anvil/black_bronze_gear') - event.recipes.tfc.anvil('gtceu:bismuth_bronze_gear', '#forge:double_plates/bismuth_bronze', ['punch_last', 'shrink_any', 'draw_any']).tier(2) + event.recipes.tfc.anvil('gtceu:bismuth_bronze_gear', '#forge:double_plates/bismuth_bronze', ['punch_last', 'shrink_any', 'draw_any']) + .tier(2) .id('tfc:anvil/bismuth_bronze_gear') - event.recipes.tfc.anvil('gtceu:wrought_iron_gear', '#forge:double_plates/wrought_iron', ['punch_last', 'shrink_any', 'draw_any']).tier(3) + event.recipes.tfc.anvil('gtceu:wrought_iron_gear', '#forge:double_plates/wrought_iron', ['punch_last', 'shrink_any', 'draw_any']) + .tier(3) .id('tfc:anvil/wrought_iron_gear') - event.recipes.tfc.anvil('gtceu:steel_gear', '#forge:double_plates/steel', ['punch_last', 'shrink_any', 'draw_any']).tier(4) + event.recipes.tfc.anvil('gtceu:steel_gear', '#forge:double_plates/steel', ['punch_last', 'shrink_any', 'draw_any']) + .tier(4) .id('tfc:anvil/steel_gear') - event.recipes.tfc.anvil('gtceu:black_steel_gear', '#forge:double_plates/black_steel', ['punch_last', 'shrink_any', 'draw_any']).tier(5) + event.recipes.tfc.anvil('gtceu:black_steel_gear', '#forge:double_plates/black_steel', ['punch_last', 'shrink_any', 'draw_any']) + .tier(5) .id('tfc:anvil/black_steel_gear') - event.recipes.tfc.anvil('gtceu:red_steel_gear', '#forge:double_plates/red_steel', ['punch_last', 'shrink_any', 'draw_any']).tier(6) + event.recipes.tfc.anvil('gtceu:red_steel_gear', '#forge:double_plates/red_steel', ['punch_last', 'shrink_any', 'draw_any']) + .tier(6) .id('tfc:anvil/red_steel_gear') - event.recipes.tfc.anvil('gtceu:blue_steel_gear', '#forge:double_plates/blue_steel', ['punch_last', 'shrink_any', 'draw_any']).tier(6) + event.recipes.tfc.anvil('gtceu:blue_steel_gear', '#forge:double_plates/blue_steel', ['punch_last', 'shrink_any', 'draw_any']) + .tier(6) .id('tfc:anvil/blue_steel_gear') - event.recipes.tfc.anvil('gtceu:small_wrought_iron_gear', '#forge:ingots/wrought_iron', ['shrink_last', 'shrink_second_last', 'upset_third_last']).tier(3) + event.recipes.tfc.anvil('gtceu:small_wrought_iron_gear', '#forge:ingots/wrought_iron', ['hit_last', 'shrink_second_last', 'draw_third_last']) + .tier(3) .id('tfc:anvil/small_wrought_iron_gear') - event.recipes.tfc.anvil('gtceu:small_steel_gear', '#forge:ingots/steel', ['shrink_last', 'shrink_second_last', 'upset_third_last']).tier(4) + event.recipes.tfc.anvil('gtceu:small_steel_gear', '#forge:ingots/steel', ['hit_last', 'shrink_second_last', 'draw_third_last']) + .tier(4) .id('tfc:anvil/small_steel_gear') - event.recipes.tfc.anvil('gtceu:small_brass_gear', '#forge:ingots/brass', ['shrink_last', 'shrink_second_last', 'upset_third_last']).tier(2) + event.recipes.tfc.anvil('gtceu:small_brass_gear', '#forge:ingots/brass', ['hit_last', 'shrink_second_last', 'draw_third_last']) + .tier(2) .id('tfc:anvil/small_brass_gear') - event.recipes.tfc.anvil('gtceu:small_bronze_gear', '#forge:ingots/bronze', ['shrink_last', 'shrink_second_last', 'upset_third_last']).tier(2) + event.recipes.tfc.anvil('gtceu:small_bronze_gear', '#forge:ingots/bronze', ['hit_last', 'shrink_second_last', 'draw_third_last']) + .tier(2) .id('tfc:anvil/small_bronze_gear') // Cast iron -> Raw Iron Bloom diff --git a/kubejs/server_scripts/tfc/recipes.stone.js b/kubejs/server_scripts/tfc/recipes.stone.js index c74b8bfb1..b914b647e 100644 --- a/kubejs/server_scripts/tfc/recipes.stone.js +++ b/kubejs/server_scripts/tfc/recipes.stone.js @@ -70,6 +70,21 @@ function registerTFCStoneRecipes(event) { `4x tfc:rock/gravel/${stone}` ]).id(`tfc:shapeless/gravel_to_loose_${stone}`) + // Cobble Unpacking + event.recipes.gtceu.packer(`tfc:gtceu/packer/unpacking_mossy_${stone}_cobble_into_loose`) + .itemInputs(`1x tfc:rock/mossy_cobble/${stone}`) + .circuit(1) + .itemOutputs(`4x tfc:rock/mossy_loose/${stone}`) + .duration(20) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.gtceu.packer(`tfc:gtceu/packer/unpacking_${stone}_cobble_into_loose`) + .itemInputs(`1x tfc:rock/cobble/${stone}`) + .circuit(1) + .itemOutputs(`4x tfc:rock/loose/${stone}`) + .duration(20) + .EUt(GTValues.VA[GTValues.ULV]) + //#endregion // #region Stonecutting @@ -186,7 +201,7 @@ function registerTFCStoneRecipes(event) { event.recipes.gtceu.assembler(`bricks_${stone}`) .itemInputs(`5x tfc:brick/${stone}`) - .circuit(0) + .circuit(1) .inputFluids(Fluid.of('gtceu:concrete', 72)) .itemOutputs(`4x tfc:rock/bricks/${stone}`) .duration(50) @@ -262,7 +277,7 @@ function registerTFCStoneRecipes(event) { event.recipes.gtceu.assembler(`aqueduct_${stone}`) .itemInputs(`3x tfc:brick/${stone}`) - .circuit(1) + .circuit(0) .inputFluids(Fluid.of('gtceu:concrete', 16)) .itemOutputs(`tfc:rock/aqueduct/${stone}`) .duration(50) diff --git a/kubejs/server_scripts/tfc/tags.js b/kubejs/server_scripts/tfc/tags.js index 7330c3d47..a59e09a0e 100644 --- a/kubejs/server_scripts/tfc/tags.js +++ b/kubejs/server_scripts/tfc/tags.js @@ -258,6 +258,13 @@ const registerTFCItemTags = (event) => { event.add('forge:cloth', 'tfc:burlap_cloth') event.add('forge:cloth', 'tfc:wool_cloth') event.add('forge:cloth', 'tfc:silk_cloth') + event.add('forge:cloth', 'minecraft:phantom_membrane') + + // Piglin loved + event.add('minecraft:piglin_loved', 'tfc:ore/small_native_gold') + event.add('minecraft:piglin_loved', 'tfc:ore/poor_native_gold') + event.add('minecraft:piglin_loved', 'tfc:ore/normal_native_gold') + event.add('minecraft:piglin_loved', 'tfc:ore/rich_native_gold') } const registerTFCBlockTags = (event) => { diff --git a/kubejs/server_scripts/tfg/events.js b/kubejs/server_scripts/tfg/events.js index 91f924648..98eccb9d0 100644 --- a/kubejs/server_scripts/tfg/events.js +++ b/kubejs/server_scripts/tfg/events.js @@ -83,35 +83,49 @@ salvo_event.forEach(salvo_event => { }); }); - ItemEvents.rightClicked(event => { - const {item,server,player,player:{x,y,z,username}} = event - if (item.id != `tfg:absorption_salvo`) return - item.count-- - player.addItemCooldown(item, 200) - player.runCommandSilent(`effect give ${username} minecraft:absorption 480 4 true`) - server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${username} ${x} ${y} ${z} 10 2 1`) - }); +ItemEvents.rightClicked(event => { + const {item,server,player,player:{x,y,z,username}} = event + if (item.id != `tfg:absorption_salvo`) return + item.count-- + player.addItemCooldown(item, 200) + player.runCommandSilent(`effect give ${username} minecraft:absorption 480 4 true`) + server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${username} ${x} ${y} ${z} 10 2 1`) +}); - ItemEvents.rightClicked(event => { - const {item,server,player,player:{x,y,z,username}} = event - if (item.id != `tfg:instant_health_salvo`) return - item.count-- - player.addItemCooldown(item, 100) - player.runCommandSilent(`effect give ${username} minecraft:instant_health 1 1 true`) - server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${username} ${x} ${y} ${z} 10 2 1`) - }); +ItemEvents.rightClicked(event => { + const {item,server,player,player:{x,y,z,username}} = event + if (item.id != `tfg:instant_health_salvo`) return + item.count-- + player.addItemCooldown(item, 100) + player.runCommandSilent(`effect give ${username} minecraft:instant_health 1 1 true`) + server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${username} ${x} ${y} ${z} 10 2 1`) +}); // Vase Sounds - global.MINECRAFT_DYE_NAMES.forEach(color => { - BlockEvents.rightClicked(event => { - const {block,server,player,player:{x,y,z,username}} = event - if (block.id != `tfg:decorative_vase/${color}`) {return}{ - server.runCommandSilent(`playsound tfc:block.quern.drag block ${username} ${block.x} ${block.y} ${block.z} 0.3 2.0 0.1`) - }}) - }); - +global.MINECRAFT_DYE_NAMES.forEach(color => { BlockEvents.rightClicked(event => { const {block,server,player,player:{x,y,z,username}} = event - if (block.id != 'tfg:decorative_vase') {return}{ + if (block.id != `tfg:decorative_vase/${color}`) {return}{ server.runCommandSilent(`playsound tfc:block.quern.drag block ${username} ${block.x} ${block.y} ${block.z} 0.3 2.0 0.1`) - }}); \ No newline at end of file + }}) +}); + +BlockEvents.rightClicked(event => { + const {block,server,player,player:{x,y,z,username}} = event + if (block.id != 'tfg:decorative_vase') {return}{ + server.runCommandSilent(`playsound tfc:block.quern.drag block ${username} ${block.x} ${block.y} ${block.z} 0.3 2.0 0.1`) +}}); + +/** + * + * @param {Internal.Player} player + * @returns {Internal.CompoundTag} + */ +function getTFGPersistentDataRoot(player) +{ + if(!player.persistentData.contains("tfg:custom_data")) + { + player.persistentData.put("tfg:custom_data", {}); + } + return player.persistentData.getCompound("tfg:custom_data") +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.medicine.js b/kubejs/server_scripts/tfg/recipes.medicine.js index bad5b1954..d30597abe 100644 --- a/kubejs/server_scripts/tfg/recipes.medicine.js +++ b/kubejs/server_scripts/tfg/recipes.medicine.js @@ -5,441 +5,472 @@ function registerTFGMedicineRecipes(event) { //#region Antipoison event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:antipoison_ingredients', 'gtceu:tricalcium_phosphate_dust'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:antipoison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:antipoison_pill') .id(`tfg:mixing_bowl/pill_antipoison`) - event.recipes.create.mixing( - '1x tfg:antipoison_pill', - ['#forge:wax', '#tfg:antipoison_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_antipoison`) - event.recipes.create.mixing( - '1x tfg:antipoison_pill', - ['#forge:wax', '#tfg:antipoison_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_antipoison`) - event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_antipoison`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:antipoison_pill') - .itemInputs('#forge:wax', '#tfg:antipoison_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:antipoison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_antipoison`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:antipoison_pill') - .itemInputs('#forge:wax', '#tfg:antipoison_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:antipoison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_antipoison`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:antipoison_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:antipoison_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:antipoison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_antipoison`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:antipoison_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:antipoison_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:antipoison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) //#endregion //#region Poison event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:poison_ingredients', 'tfc:powder/sulfur'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:poison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:poison_pill') .id(`tfg:mixing_bowl/pill_poison`) - - event.recipes.create.mixing( - '1x tfg:poison_pill', - ['#forge:wax', '#tfg:poison_ingredients', 'tfc:powder/sulfur', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_poison`) - event.recipes.create.mixing( - '1x tfg:poison_pill', - ['#forge:wax', '#tfg:poison_ingredients', 'tfc:powder/sulfur', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_poison`) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_poison`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:poison_pill') - .itemInputs('#forge:wax', '#tfg:poison_ingredients', 'tfc:powder/sulfur') + .itemInputs('#forge:wax', '#tfg:poison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_poison`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:poison_pill') - .itemInputs('#forge:wax', '#tfg:poison_ingredients', 'tfc:powder/sulfur') + .itemInputs('#forge:wax', '#tfg:poison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_poison`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:poison_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:poison_ingredients', 'tfc:powder/sulfur') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:poison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_poison`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:poison_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:poison_ingredients', 'tfc:powder/sulfur') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:poison_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) + + // Arrow + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/poison_1`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:poison"}')) + .itemInputs('16x minecraft:arrow', 'tfg:poison_pill') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/poison_2`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:long_poison"}')) + .itemInputs('16x minecraft:arrow', 'tfg:poison_tablet') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) //#endregion //#region Regeneration event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:regeneration_ingredients', 'gtceu:tricalcium_phosphate_dust'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:regeneration_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:regeneration_pill') .id(`tfg:mixing_bowl/pill_regeneration`) - event.recipes.create.mixing( - '1x tfg:regeneration_pill', - ['#forge:wax', '#tfg:regeneration_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_regeneration`) - event.recipes.create.mixing( - '1x tfg:regeneration_pill', - ['#forge:wax', '#tfg:regeneration_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_regeneration`) - event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_regeneration`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:regeneration_pill') - .itemInputs('#forge:wax', '#tfg:regeneration_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:regeneration_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_regeneration`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:regeneration_pill') - .itemInputs('#forge:wax', '#tfg:regeneration_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:regeneration_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_regeneration`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:regeneration_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:regeneration_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:regeneration_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_regeneration`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:regeneration_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:regeneration_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:regeneration_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) + + // Arrow + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/regeneration_1`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:regeneration"}')) + .itemInputs('16x minecraft:arrow', 'tfg:regeneration_pill') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/regeneration_2`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:long_regeneration"}')) + .itemInputs('16x minecraft:arrow', 'tfg:regeneration_tablet') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) //#endregion //#region Speed event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:speed_ingredients', 'gtceu:tricalcium_phosphate_dust'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:speed_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:speed_pill') .id(`tfg:mixing_bowl/pill_speed`) - event.recipes.create.mixing( - '1x tfg:speed_pill', - ['#forge:wax', '#tfg:speed_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_speed`) - event.recipes.create.mixing( - '1x tfg:speed_pill', - ['#forge:wax', '#tfg:speed_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_speed`) - event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_speed`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:speed_pill') - .itemInputs('#forge:wax', '#tfg:speed_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:speed_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_speed`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:speed_pill') - .itemInputs('#forge:wax', '#tfg:speed_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:speed_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_speed`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:speed_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:speed_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:speed_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_speed`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:speed_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:speed_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:speed_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) + + // Arrow + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/swiftness_1`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:swiftness"}')) + .itemInputs('16x minecraft:arrow', 'tfg:speed_pill') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/swiftness_2`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:long_swiftness"}')) + .itemInputs('16x minecraft:arrow', 'tfg:speed_tablet') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) //#endregion //#region Slowness event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:slowness_ingredients', 'tfc:powder/sulfur'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:slowness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:slowness_pill') .id(`tfg:mixing_bowl/pill_slowness`) - event.recipes.create.mixing( - '1x tfg:slowness_pill', - ['#forge:wax', '#tfg:slowness_ingredients', 'tfc:powder/sulfur', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_slowness`) - event.recipes.create.mixing( - '1x tfg:slowness_pill', - ['#forge:wax', '#tfg:slowness_ingredients', 'tfc:powder/sulfur', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_slowness`) - event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_slowness`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:slowness_pill') - .itemInputs('#forge:wax', '#tfg:slowness_ingredients', 'tfc:powder/sulfur') + .itemInputs('#forge:wax', '#tfg:slowness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_slowness`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:slowness_pill') - .itemInputs('#forge:wax', '#tfg:slowness_ingredients', 'tfc:powder/sulfur') + .itemInputs('#forge:wax', '#tfg:slowness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_slowness`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:slowness_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:slowness_ingredients', 'tfc:powder/sulfur') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:slowness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_slowness`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:slowness_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:slowness_ingredients', 'tfc:powder/sulfur') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:slowness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) + + // Arrow + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/slowness_1`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:slowness"}')) + .itemInputs('16x minecraft:arrow', 'tfg:slowness_pill') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/slowness_2`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:long_slowness"}')) + .itemInputs('16x minecraft:arrow', 'tfg:slowness_tablet') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) //#endregion //#region Weakness event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:weakness_ingredients', 'tfc:powder/sulfur'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:weakness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:weakness_pill') .id(`tfg:mixing_bowl/pill_weakness`) - event.recipes.create.mixing( - '1x tfg:weakness_pill', - ['#forge:wax', '#tfg:weakness_ingredients', 'tfc:powder/sulfur', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_weakness`) - event.recipes.create.mixing( - '1x tfg:weakness_pill', - ['#forge:wax', '#tfg:weakness_ingredients', 'tfc:powder/sulfur', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_weakness`) - event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_weakness`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:weakness_pill') - .itemInputs('#forge:wax', '#tfg:weakness_ingredients', 'tfc:powder/sulfur') + .itemInputs('#forge:wax', '#tfg:weakness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_weakness`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:weakness_pill') - .itemInputs('#forge:wax', '#tfg:weakness_ingredients', 'tfc:powder/sulfur') + .itemInputs('#forge:wax', '#tfg:weakness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_weakness`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:weakness_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:weakness_ingredients', 'tfc:powder/sulfur') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:weakness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_weakness`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:weakness_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:weakness_ingredients', 'tfc:powder/sulfur') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:weakness_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.Sulfur, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) + + // Arrow + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/weakness_1`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:weakness"}')) + .itemInputs('16x minecraft:arrow', 'tfg:weakness_pill') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/weakness_2`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:long_weakness"}')) + .itemInputs('16x minecraft:arrow', 'tfg:weakness_tablet') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) //#endregion //#region Haste event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:haste_ingredients', 'gtceu:tricalcium_phosphate_dust'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:haste_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:haste_pill') .id(`tfg:mixing_bowl/pill_haste`) - event.recipes.create.mixing( - '1x tfg:haste_pill', - ['#forge:wax', '#tfg:haste_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_haste`) - event.recipes.create.mixing( - '1x tfg:haste_pill', - ['#forge:wax', '#tfg:haste_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_haste`) - event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_haste`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:haste_pill') - .itemInputs('#forge:wax', '#tfg:haste_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:haste_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_haste`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:haste_pill') - .itemInputs('#forge:wax', '#tfg:haste_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:haste_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_haste`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:haste_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:haste_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:haste_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_haste`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:haste_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:haste_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:haste_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) //#endregion //#region Water Breathing event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:water_breathing_ingredients', 'gtceu:tricalcium_phosphate_dust'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:water_breathing_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:water_breathing_pill') .id(`tfg:mixing_bowl/pill_water_breathing`) - event.recipes.create.mixing( - '1x tfg:water_breathing_pill', - ['#forge:wax', '#tfg:water_breathing_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_water_breathing`) - event.recipes.create.mixing( - '1x tfg:water_breathing_pill', - ['#forge:wax', '#tfg:water_breathing_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_water_breathing`) - event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_water_breathing`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:water_breathing_pill') - .itemInputs('#forge:wax', '#tfg:water_breathing_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:water_breathing_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_water_breathing`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:water_breathing_pill') - .itemInputs('#forge:wax', '#tfg:water_breathing_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:water_breathing_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_water_breathing`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:water_breathing_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:water_breathing_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:water_breathing_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_water_breathing`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:water_breathing_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:water_breathing_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:water_breathing_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) + + // Arrow + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/water_breathing_1`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:water_breathing"}')) + .itemInputs('16x minecraft:arrow', 'tfg:water_breathing_pill') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/water_breathing_2`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:long_water_breathing"}')) + .itemInputs('16x minecraft:arrow', 'tfg:water_breathing_tablet') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) //#endregion //#region Night Vision event.recipes.firmalife.mixing_bowl() - .ingredients(['#forge:wax', '#tfg:night_vision_ingredients', 'gtceu:tricalcium_phosphate_dust'], Fluid.of('tfc:spring_water', 250)) + .ingredients(['#forge:wax', '#tfg:night_vision_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)], Fluid.of('tfc:spring_water', 250)) .outputItem('1x tfg:night_vision_pill') .id(`tfg:mixing_bowl/pill_night_vision`) - event.recipes.create.mixing( - '1x tfg:night_vision_pill', - ['#forge:wax', '#tfg:night_vision_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('tfc:spring_water', 250)]) - .id(`tfg:create/mixer/spring_water/pill_night_vision`) - event.recipes.create.mixing( - '1x tfg:night_vision_pill', - ['#forge:wax', '#tfg:night_vision_ingredients', 'gtceu:tricalcium_phosphate_dust', Fluid.of('gtceu:distilled_water', 50)]) - .id(`tfg:create/mixer/distilled_water/pill_night_vision`) - event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/pill_night_vision`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:night_vision_pill') - .itemInputs('#forge:wax', '#tfg:night_vision_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:night_vision_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/pill_night_vision`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:night_vision_pill') - .itemInputs('#forge:wax', '#tfg:night_vision_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('#forge:wax', '#tfg:night_vision_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/spring_water/tablet_night_vision`) .circuit(4) .inputFluids(Fluid.of('tfc:spring_water', 250)) .itemOutputs('2x tfg:night_vision_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:night_vision_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:night_vision_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer(`tfg:gtceu/mixer/distilled_water/tablet_night_vision`) .circuit(4) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .itemOutputs('2x tfg:night_vision_tablet') .notConsumable('gtceu:pill_casting_mold') - .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:night_vision_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sodium_bicarbonate_dust', 'gtceu:lactose_dust', '#tfg:night_vision_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) + + // Arrow + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/night_vision_1`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:night_vision"}')) + .itemInputs('16x minecraft:arrow', 'tfg:night_vision_pill') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) + event.recipes.gtceu.mixer(`tfg:gtceu/mixer/arrow/night_vision_2`) + .circuit(4) + .inputFluids(Fluid.of('gtceu:ethanol', 25)) + .itemOutputs(Item.of('16x minecraft:tipped_arrow', '{Potion:"minecraft:long_night_vision"}')) + .itemInputs('16x minecraft:arrow', 'tfg:night_vision_tablet') + .duration(200) + .EUt(GTValues.VA[GTValues.MV]) //#endregion @@ -449,9 +480,9 @@ function registerTFGMedicineRecipes(event) { .circuit(4) .inputFluids(Fluid.of('gtceu:aminophenol', 250)) .itemOutputs('1x tfg:invisibility_salvo') - .itemInputs('gtceu:sticky_resin', '#tfg:invisibility_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sticky_resin', '#tfg:invisibility_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) //#endregion @@ -461,9 +492,9 @@ function registerTFGMedicineRecipes(event) { .circuit(4) .inputFluids(Fluid.of('gtceu:aminophenol', 250)) .itemOutputs('1x tfg:fire_resistance_salvo') - .itemInputs('gtceu:sticky_resin', '#tfg:fire_resistance_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sticky_resin', '#tfg:fire_resistance_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) //#endregion @@ -473,9 +504,9 @@ function registerTFGMedicineRecipes(event) { .circuit(4) .inputFluids(Fluid.of('gtceu:aminophenol', 250)) .itemOutputs('1x tfg:resistance_salvo') - .itemInputs('gtceu:sticky_resin', '#tfg:resistance_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sticky_resin', '#tfg:resistance_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) //#endregion @@ -485,9 +516,9 @@ function registerTFGMedicineRecipes(event) { .circuit(4) .inputFluids(Fluid.of('gtceu:aminophenol', 250)) .itemOutputs('1x tfg:instant_health_salvo') - .itemInputs('gtceu:sticky_resin', '#tfg:instant_health_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sticky_resin', '#tfg:instant_health_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) //#endregion @@ -497,9 +528,9 @@ function registerTFGMedicineRecipes(event) { .circuit(4) .inputFluids(Fluid.of('gtceu:aminophenol', 250)) .itemOutputs('1x tfg:absorption_salvo') - .itemInputs('gtceu:sticky_resin', '#tfg:absorption_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sticky_resin', '#tfg:absorption_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) //#endregion @@ -509,9 +540,9 @@ function registerTFGMedicineRecipes(event) { .circuit(4) .inputFluids(Fluid.of('gtceu:phenol', 250)) .itemOutputs('1x tfg:luck_salvo') - .itemInputs('gtceu:sticky_resin', '#tfg:luck_ingredients', 'gtceu:tricalcium_phosphate_dust') + .itemInputs('gtceu:sticky_resin', '#tfg:luck_ingredients', ChemicalHelper.get(TagPrefix.dust, GTMaterials.TricalciumPhosphate, 1)) .duration(200) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) //#endregion diff --git a/kubejs/server_scripts/tfg/recipes.miscellaneous.js b/kubejs/server_scripts/tfg/recipes.miscellaneous.js index eb7e78b55..f59886b12 100644 --- a/kubejs/server_scripts/tfg/recipes.miscellaneous.js +++ b/kubejs/server_scripts/tfg/recipes.miscellaneous.js @@ -27,11 +27,11 @@ function registerTFGMiscellaneousRecipes(event) { //paraffin event.recipes.gtceu.chemical_reactor('tfg:paraffin_wax_from_lubricant') .circuit(7) - .itemOutputs('2x tfg:paraffin_wax') + .itemOutputs('6x tfg:paraffin_wax') .outputFluids(Fluid.of('gtceu:oil_light', 25)) .inputFluids(Fluid.of('gtceu:lubricant', 250), Fluid.of('gtceu:acetone', 25)) .duration(500) - .EUt(21) + .EUt(GTValues.VA[GTValues.LV]) // Rosin event.recipes.firmalife.vat() @@ -50,7 +50,7 @@ function registerTFGMiscellaneousRecipes(event) { .inputFluids(Fluid.of(`tfc:${color}_dye`, 25)) .itemOutputs(`tfg:decorative_vase/unfired/${color}`) .duration(80) - .EUt(20) + .EUt(GTValues.VA[GTValues.ULV]) .category(GTRecipeCategories.CHEM_DYES) event.recipes.tfc.heating(`tfg:decorative_vase/unfired/${color}`, 1399) @@ -74,7 +74,7 @@ function registerTFGMiscellaneousRecipes(event) { .inputFluids(Fluid.of('gtceu:chlorine', 72)) .itemOutputs('tfg:decorative_vase/unfired') .duration(80) - .EUt(20) + .EUt(GTValues.VA[GTValues.ULV]) .category(GTRecipeCategories.CHEM_DYES) event.smelting( @@ -107,7 +107,7 @@ function registerTFGMiscellaneousRecipes(event) { .itemOutputs('1x gtceu:lactose_dust') .outputFluids(Fluid.of('tfc:curdled_milk', 1000)) .duration(300) - .EUt(30) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer('lactose_milk_yak') .circuit(1) @@ -115,7 +115,7 @@ function registerTFGMiscellaneousRecipes(event) { .itemOutputs('1x gtceu:lactose_dust') .outputFluids(Fluid.of('firmalife:curdled_yak_milk', 1000)) .duration(300) - .EUt(30) + .EUt(GTValues.VA[GTValues.LV]) event.recipes.gtceu.mixer('lactose_milk_goat') .circuit(1) @@ -123,7 +123,7 @@ function registerTFGMiscellaneousRecipes(event) { .itemOutputs('1x gtceu:lactose_dust') .outputFluids(Fluid.of('firmalife:curdled_goat_milk', 1000)) .duration(300) - .EUt(30) + .EUt(GTValues.VA[GTValues.LV]) //Scaffolding Frame event.shaped('tfg:scaffolding_frame', @@ -141,7 +141,7 @@ function registerTFGMiscellaneousRecipes(event) { .itemInputs('8x #forge:rods/wood', '#forge:cloth') .itemOutputs('tfg:scaffolding_frame') .duration(10) - .EUt(2); + .EUt(GTValues.VA[GTValues.ULV]); //Airship Hull event.shaped('tfg:airship_hull', [ @@ -158,7 +158,7 @@ function registerTFGMiscellaneousRecipes(event) { .itemOutputs('tfg:airship_hull') .duration(40) .circuit(1) - .EUt(10); + .EUt(GTValues.VA[GTValues.ULV]); //Airship Balloon event.shaped('tfg:airship_balloon', [ @@ -175,7 +175,7 @@ function registerTFGMiscellaneousRecipes(event) { .itemOutputs('tfg:airship_balloon') .duration(40) .circuit(1) - .EUt(10) + .EUt(GTValues.VA[GTValues.ULV]) // Steam bloomery event.shaped('gtceu:steam_bloomery', [ @@ -189,4 +189,48 @@ function registerTFGMiscellaneousRecipes(event) { D: '#forge:screws/wrought_iron', E: '#forge:tools/wrenches' }) + + // Arrow Parts + event.recipes.tfc.knapping( + '4x tfg:flint_arrow_head', + 'tfg:flint', + [ + ' XXX', + ' XXXX', + 'XXXXX', + ' XXX ', + ' X ' + ] + ).outsideSlotRequired(false) + .id('tfg:knapping/flint_arrow_head') + + event.recipes.gtceu.assembler('tfg:assembler/flint_arrow_head') + .itemInputs('1x minecraft:flint') + .itemOutputs('4x tfg:flint_arrow_head') + .duration(20) + .circuit(4) + .EUt(GTValues.VA[GTValues.ULV]) + + event.recipes.tfc.damage_inputs_shapeless_crafting( + event.shapeless('4x tfg:fletching', [ + 'minecraft:feather', + '#forge:tools/knives' + ]).id('tfg:shapeless/fletching')) + + event.recipes.gtceu.assembler('tfg:assembler/fletching') + .itemInputs('1x minecraft:feather') + .itemOutputs('4x tfg:fletching') + .duration(20) + .circuit(4) + .EUt(GTValues.VA[GTValues.ULV]) + + event.shaped('4x minecraft:arrow', [ + ' A ', + ' B ', + ' C ' + ],{ + A: 'tfg:flint_arrow_head', + B: '#forge:rods/wooden', + C: 'tfg:fletching' + }).id('tfg:shaped/arrow') } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.supports.js b/kubejs/server_scripts/tfg/recipes.supports.js index 4d304b6b2..4d1cfd342 100644 --- a/kubejs/server_scripts/tfg/recipes.supports.js +++ b/kubejs/server_scripts/tfg/recipes.supports.js @@ -18,14 +18,14 @@ function registerTFGSupportRecipes(event) { .EUt(GTValues.VA[GTValues.ULV]) event.recipes.gtceu.chemical_bath('tfg:gtceu/chemical_bath/reinforced_dark_concrete_support') - .inputFluids(Fluid.of('minecraft:water', 100)) + .inputFluids(Fluid.of('tfc:black_dye', 10)) .itemOutputs('1x tfg:reinforced_dark_concrete_support') .itemInputs('1x tfg:reinforced_light_concrete_support') .duration(60) .EUt(GTValues.VA[GTValues.ULV]) event.recipes.gtceu.chemical_bath('tfg:gtceu/chemical_bath/dark_concrete_support') - .inputFluids(Fluid.of('minecraft:water', 100)) + .inputFluids(Fluid.of('tfc:black_dye', 10)) .itemOutputs('1x tfg:dark_concrete_support') .itemInputs('1x tfg:light_concrete_support') .duration(60) diff --git a/kubejs/server_scripts/tfg/tags.js b/kubejs/server_scripts/tfg/tags.js index 8670bb590..9a0480460 100644 --- a/kubejs/server_scripts/tfg/tags.js +++ b/kubejs/server_scripts/tfg/tags.js @@ -8,6 +8,9 @@ const registerTFGItemTags = (event) => { }) event.add('tfg:decorative_vases', 'tfg:decorative_vase') event.add('tfg:decorative_vases/unfired', 'tfg:decorative_vase/unfired') + + //Knapping + event.add('tfc:any_knapping', 'minecraft:flint') // #region Paper from wood @@ -25,6 +28,8 @@ const registerTFGItemTags = (event) => { event.add('forge:wax', 'firmalife:beeswax') event.add('forge:wax', 'tfg:conifer_rosin') + event.add('tfc:fluxstone', 'tfg:loose/dripstone') + // #endregion // #region Medicines diff --git a/kubejs/server_scripts/vintage_improvements/recipes.js b/kubejs/server_scripts/vintage_improvements/recipes.js index cc9e09706..89407e247 100644 --- a/kubejs/server_scripts/vintage_improvements/recipes.js +++ b/kubejs/server_scripts/vintage_improvements/recipes.js @@ -562,10 +562,13 @@ function registerVintageImprovementsRecipes(event) { ingredients: inputs, results: outputs, processingTime: r.duration * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER - }).id(`tfg:vi/centrifuge/${recipe.getId().split(':')[1]}`) + }).id(`tfg:vi/${recipe.getId().split(':')[1]}`) } ) + // Fix weird inconsistency + event.replaceOutput({ id: 'tfg:vi/centrifuge/sticky_resin_separation' }, 'gtceu:raw_rubber_dust', 'gtceu:carbon_dust') + // #endregion // #region Vacuum diff --git a/kubejs/startup_scripts/gtceu/constants.js b/kubejs/startup_scripts/gtceu/constants.js index 523ee73e3..e2c80c853 100644 --- a/kubejs/startup_scripts/gtceu/constants.js +++ b/kubejs/startup_scripts/gtceu/constants.js @@ -47,6 +47,8 @@ global.GTCEU_DISABLED_ITEMS = [ 'gtceu:stone_buzz_saw_blade', 'gtceu:stone_wrench_tip', + 'gtceu:treated_wood_hanging_sign', + 'gtceu:rubber_sapling', 'gtceu:rubber_log', 'gtceu:rubber_leaves', diff --git a/kubejs/startup_scripts/gtceu/machines.js b/kubejs/startup_scripts/gtceu/machines.js index 482fff2a7..e3077c496 100644 --- a/kubejs/startup_scripts/gtceu/machines.js +++ b/kubejs/startup_scripts/gtceu/machines.js @@ -3,6 +3,11 @@ //#region Greenhouse const registerGTCEuMachines = (event) => { + + GTMachineUtils.registerCrate(GTMaterials.BismuthBronze, 54, "Bismuth Bronze Crate"); + GTMachineUtils.registerCrate(GTMaterials.BlackBronze, 54, "Black Bronze Crate"); + GTMachineUtils.registerDrum(GTMaterials.BismuthBronze, 32000, "Bismuth Bronze Drum"); + GTMachineUtils.registerDrum(GTMaterials.BlackBronze, 32000, "Black Bronze Drum"); const $SteamMulti = Java.loadClass('com.gregtechceu.gtceu.common.machine.multiblock.steam.SteamParallelMultiblockMachine'); const $Tags = Java.loadClass("dev.latvian.mods.kubejs.util.Tags") diff --git a/kubejs/startup_scripts/gtceu/materials.js b/kubejs/startup_scripts/gtceu/materials.js index 24294ed39..e8105d667 100644 --- a/kubejs/startup_scripts/gtceu/materials.js +++ b/kubejs/startup_scripts/gtceu/materials.js @@ -37,7 +37,8 @@ const registerGTCEuMaterialModification = (event) => { GENERATE_SMALL_GEAR, GENERATE_GEAR, GENERATE_FRAME, - GENERATE_PLATE + GENERATE_PLATE, + GENERATE_RING } = $MATERIAL_FLAGS var metalTooling = [ @@ -182,7 +183,7 @@ const registerGTCEuMaterialModification = (event) => { GTMaterials.BismuthBronze.addFlags(GENERATE_FRAME); GTMaterials.Wood.addFlags(GENERATE_SMALL_GEAR); - GTMaterials.Brass.addFlags(GENERATE_SMALL_GEAR); + GTMaterials.Brass.addFlags(GENERATE_SMALL_GEAR, GENERATE_RING); GTMaterials.BismuthBronze.addFlags(GENERATE_GEAR); GTMaterials.Nickel.addFlags(GENERATE_ROD, GENERATE_LONG_ROD); @@ -237,13 +238,19 @@ const registerGTCEuMaterialModification = (event) => { GTMaterials.Chromite.setProperty(PropertyKey.HAZARD, new $HAZARD_PROPERTY($HAZARD_PROPERTY.HazardTrigger.SKIN_CONTACT, GTMedicalConditions.CARCINOGEN, 1, false)); // Color Adjustments - GTMaterials.BismuthBronze.setMaterialARGB(0x8CDCB6) - GTMaterials.BlackBronze.setMaterialARGB(0xB681CE) - GTMaterials.RedSteel.setMaterialARGB(0xc8575d) - GTMaterials.RedSteel.setMaterialSecondaryARGB(0x560307) - GTMaterials.BlueSteel.setMaterialARGB(0x7a87b7) - GTMaterials.BlueSteel.setMaterialSecondaryARGB(0x283467) - + GTMaterials.BismuthBronze.setMaterialARGB(0x5A966E) + GTMaterials.BismuthBronze.setMaterialSecondaryARGB(0x203E2A) + GTMaterials.BlackBronze.setMaterialARGB(0x9D789D) + GTMaterials.BlackBronze.setMaterialSecondaryARGB(0x5B425B) + GTMaterials.Steel.setMaterialARGB(0x9AA9AB) + GTMaterials.SteelMagnetic.setMaterialARGB(0x9AA9AB) + GTMaterials.RedSteel.setMaterialARGB(0xDE7B80) + GTMaterials.RedSteel.setMaterialSecondaryARGB(0xE12323) + GTMaterials.BlueSteel.setMaterialARGB(0xA0B6EC) + GTMaterials.BlueSteel.setMaterialSecondaryARGB(0x2B5CD8) + + GTMaterials.Bismuth.setMaterialARGB(0x66847E) + GTMaterials.Bismuth.setMaterialSecondaryARGB(0x25465B) GTMaterials.Iron.setMaterialARGB(0x503d32) GTMaterials.Iron.setMaterialSecondaryARGB(0x131212) GTMaterials.IronMagnetic.setMaterialARGB(0x503d32) diff --git a/kubejs/startup_scripts/minecraft/constants.js b/kubejs/startup_scripts/minecraft/constants.js index c0c1eb955..4abb73568 100644 --- a/kubejs/startup_scripts/minecraft/constants.js +++ b/kubejs/startup_scripts/minecraft/constants.js @@ -671,7 +671,6 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:compass', 'minecraft:iron_bars', 'minecraft:honeycomb', - 'minecraft:tipped_arrow', 'minecraft:grindstone', 'minecraft:fermented_spider_eye', diff --git a/kubejs/startup_scripts/tfg/blocks.js b/kubejs/startup_scripts/tfg/blocks.js index 4d4e08405..115994f46 100644 --- a/kubejs/startup_scripts/tfg/blocks.js +++ b/kubejs/startup_scripts/tfg/blocks.js @@ -271,6 +271,7 @@ const registerTFGBlocks = (event) => { horizontal.resistance(16) horizontal.mapColor('color_orange') horizontal.tagBlock('minecraft:mineable/pickaxe') + horizontal.tagBlock('minecraft:climbable') horizontal.requiresTool(true) horizontal.renderType('cutout') horizontal.opaque(false) @@ -280,6 +281,7 @@ const registerTFGBlocks = (event) => { .resistance(16) .mapColor('color_orange') .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('minecraft:climbable') .requiresTool(true) .renderType('cutout') .opaque(false) diff --git a/kubejs/startup_scripts/tfg/items.js b/kubejs/startup_scripts/tfg/items.js index 578a31c60..1ec58c60a 100644 --- a/kubejs/startup_scripts/tfg/items.js +++ b/kubejs/startup_scripts/tfg/items.js @@ -140,6 +140,14 @@ const registerTFGItems = (event) => { .translationKey('item.tfg.conifer_rosin') //#endregion + //#region Arrow Parts + event.create('tfg:flint_arrow_head') + .translationKey('item.tfg.flint_arrow_head') + + event.create('tfg:fletching') + .translationKey('item.tfg.fletching') + //#endregion + //#region Immersive Aircraft Impl event.create('tfg:scaffolding_frame') .translationKey('item.tfg.scaffolding_frame') diff --git a/mods b/mods index c44b868e3..ffeea9861 160000 --- a/mods +++ b/mods @@ -1 +1 @@ -Subproject commit c44b868e396f111ff0a98ef1c89b769a1a23c50f +Subproject commit ffeea9861f4266858a98d7be602b11eb3b8df073 diff --git a/pakku-lock.json b/pakku-lock.json index 1c37e2bac..cd965bf5b 100644 --- a/pakku-lock.json +++ b/pakku-lock.json @@ -288,22 +288,49 @@ ] }, { - "pakku_id": "2rBnljVR3chx8FKt", + "pakku_id": "MFD6jxruLpyHffUA", "pakku_links": [ - "jkz20XWDUGHwlZxp", - "HlauzHpOCumhX2AQ" + "EcBglfhqCOZSw5D9" ], "type": "MOD", + "side": "BOTH", "slug": { + "modrinth": "advancedperipherals", "curseforge": "advanced-peripherals" }, "name": { + "modrinth": "Advanced Peripherals", "curseforge": "Advanced Peripherals" }, "id": { + "modrinth": "SOw6jD6x", "curseforge": "431725" }, "files": [ + { + "type": "modrinth", + "file_name": "AdvancedPeripherals-1.20.1-0.7.41r.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge", + "neoforge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/SOw6jD6x/versions/n4Npq89k/AdvancedPeripherals-1.20.1-0.7.41r.jar", + "id": "n4Npq89k", + "parent_id": "SOw6jD6x", + "hashes": { + "sha512": "feca2def6dcb82a9f9b99f9788f9e79a8eb2ed889bb782d34ef1dc7bcc79ec18f37e863f8955c737efd59992be1dbb9188d7f48708ec701872dfaaf0ae454f66", + "sha1": "e1040428e13272a318c06257ad9b1c6706f5ed1d" + }, + "required_dependencies": [ + "gu7yAYhd" + ], + "size": 875103, + "date_published": "2024-10-21T12:22:41.567033Z" + }, { "type": "curseforge", "file_name": "AdvancedPeripherals-1.20.1-0.7.41r.jar", @@ -434,25 +461,52 @@ ] }, { - "pakku_id": "cVlajuXjdGCDgeWt", + "pakku_id": "5jZ5lBj3SWftxKqq", "pakku_links": [ "UOjZxqemtQFAP9R8" ], "type": "MOD", "side": "CLIENT", "slug": { + "modrinth": "ambientsounds", "curseforge": "ambientsounds" }, "name": { + "modrinth": "AmbientSounds", "curseforge": "AmbientSounds 6" }, "id": { + "modrinth": "fM515JnW", "curseforge": "254284" }, "files": [ + { + "type": "modrinth", + "file_name": "AmbientSounds_FORGE_v6.1.8_mc1.20.1.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge", + "neoforge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/fM515JnW/versions/PDmfRznc/AmbientSounds_FORGE_v6.1.8_mc1.20.1.jar", + "id": "PDmfRznc", + "parent_id": "fM515JnW", + "hashes": { + "sha512": "10b8e34696583a6354c857ff00a15f7fa8978686a0dab4301bfc8cf11d24661ac296af9d481642f18145f21c241876eb40189b095b0505818fe44769ab63b665", + "sha1": "cf86d8e1f8de7fd9450a05d8cded6f5763849794" + }, + "required_dependencies": [ + "OsZiaDHq" + ], + "size": 83885939, + "date_published": "2025-04-08T22:11:03.624331Z" + }, { "type": "curseforge", - "file_name": "AmbientSounds_FORGE_v6.1.6_mc1.20.1.jar", + "file_name": "AmbientSounds_FORGE_v6.1.8_mc1.20.1.jar", "mc_versions": [ "1.20.1" ], @@ -461,18 +515,18 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/6189/864/AmbientSounds_FORGE_v6.1.6_mc1.20.1.jar", - "id": "6189864", + "url": "https://edge.forgecdn.net/files/6400/880/AmbientSounds_FORGE_v6.1.8_mc1.20.1.jar", + "id": "6400880", "parent_id": "254284", "hashes": { - "sha1": "1ac6f734ca821508816c77736e15f6190c710a6b", - "md5": "8a13e5db399335fb9ec1596abd97385c" + "sha1": "cf86d8e1f8de7fd9450a05d8cded6f5763849794", + "md5": "aeabd3a86153a2af1231a7b857627dd0" }, "required_dependencies": [ "257814" ], - "size": 83885823, - "date_published": "2025-02-13T17:51:31.067Z" + "size": 83885939, + "date_published": "2025-04-08T22:10:36.207Z" } ] }, @@ -744,7 +798,11 @@ ] }, { - "pakku_id": "sf9L67gxwAfPdeEL", + "pakku_id": "Zx7AtIkZXpAMvXML", + "pakku_links": [ + "F6H99cZ4H6jZRpEK", + "sJVhKa7MFrt5HBXJ" + ], "type": "MOD", "side": "BOTH", "slug": { @@ -760,6 +818,31 @@ "modrinth": "Q7dNt3PU" }, "files": [ + { + "type": "curseforge", + "file_name": "TFCAstikorCarts-1.20.1-1.1.8.3.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "neoforge", + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/5797/400/TFCAstikorCarts-1.20.1-1.1.8.3.jar", + "id": "5797400", + "parent_id": "844019", + "hashes": { + "sha1": "1a64a638d83e7b33d1f4c589ac0bc3005ffec34f", + "md5": "892642af7cbd0dddf82c19117c35382d" + }, + "required_dependencies": [ + "302973", + "916493" + ], + "size": 532048, + "date_published": "2024-10-09T14:37:43.363Z" + }, { "type": "modrinth", "file_name": "TFCAstikorCarts-1.20.1-1.1.8.3.jar", @@ -784,28 +867,6 @@ ], "size": 532048, "date_published": "2024-10-09T14:39:04.045371Z" - }, - { - "type": "curseforge", - "file_name": "TFCAstikorCarts-1.20.1-1.1.8.2.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "neoforge", - "forge" - ], - "release_type": "release", - "url": "https://edge.forgecdn.net/files/5645/573/TFCAstikorCarts-1.20.1-1.1.8.2.jar", - "id": "5645573", - "parent_id": "844019", - "hashes": { - "sha1": "d054e2587e8087d2884f6f880c2aee1249c85f44", - "md5": "3a00e2f249272af3a8ed7ebf1cad10c0" - }, - "required_dependencies": [], - "size": 530830, - "date_published": "2024-08-20T00:11:52.793Z" } ] }, @@ -1127,18 +1188,44 @@ ] }, { - "pakku_id": "CBSBD7u2DdsFEaoX", + "pakku_id": "Cix71vVsxRXjcO0Z", "type": "MOD", + "side": "BOTH", "slug": { + "modrinth": "balm", "curseforge": "balm" }, "name": { + "modrinth": "Balm", "curseforge": "Balm" }, "id": { + "modrinth": "MBAkmtvl", "curseforge": "531761" }, "files": [ + { + "type": "modrinth", + "file_name": "balm-forge-1.20.1-7.3.25-all.jar", + "mc_versions": [ + "1.20", + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/MBAkmtvl/versions/hk6Zuxrh/balm-forge-1.20.1-7.3.25-all.jar", + "id": "hk6Zuxrh", + "parent_id": "MBAkmtvl", + "hashes": { + "sha512": "47bf74e27686abe0aabdd19075dbcf3bd67d08c112d21b9000ba077dd8aea652de25294db01437a190fc006c192a46ad387f5a8fe65ae312d568a21a5cafdbd8", + "sha1": "9ea708714bae53e9aac894f034fd7d37840a8ced" + }, + "required_dependencies": [], + "size": 473917, + "date_published": "2025-03-24T07:57:06.335261Z" + }, { "type": "curseforge", "file_name": "balm-forge-1.20.1-7.3.25-all.jar", @@ -1443,22 +1530,53 @@ ] }, { - "pakku_id": "kP9ZUvWn1P5khogc", + "pakku_id": "aKG6d4VDjrpXsgOv", "pakku_links": [ "IqPkca9cWhZ2JxDJ", + "YrMPVh28ndtUkLsq", "hEH6ly65CC6Sw1pf" ], "type": "MOD", + "side": "BOTH", "slug": { + "modrinth": "betterp2p", "curseforge": "betterp2p" }, "name": { + "modrinth": "Better P2P", "curseforge": "Better P2P" }, "id": { + "modrinth": "9DDxOvTJ", "curseforge": "538092" }, "files": [ + { + "type": "modrinth", + "file_name": "betterp2p-1.5.0-forge.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge", + "neoforge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/9DDxOvTJ/versions/9fICjMvt/betterp2p-1.5.0-forge.jar", + "id": "9fICjMvt", + "parent_id": "9DDxOvTJ", + "hashes": { + "sha512": "ced1cd946fe0d0e8fef94ee4afad88f7f4e10f94a04b9c08a2fbd709b9d1b0a0b1b2af57d0607c779ef11f66e0ca631bb8dfdd992ed2a5a6cf20701274bbddbc", + "sha1": "ee1a5e156b230474db0a57ce78174fcb1cd351e2" + }, + "required_dependencies": [ + "ordsPcFz", + "lhGA9TYQ", + "XxWD5pD3" + ], + "size": 262299, + "date_published": "2024-12-23T06:40:12.557938Z" + }, { "type": "curseforge", "file_name": "betterp2p-1.5.0-forge.jar", @@ -1909,18 +2027,48 @@ ] }, { - "pakku_id": "NZANIGIK8HPdr4i7", + "pakku_id": "WvU533IgjamjCFtT", + "pakku_links": [ + "3B5EGC3hh54PlLuy" + ], "type": "MOD", + "side": "BOTH", "slug": { + "modrinth": "carpeted-stairs", "curseforge": "carpeted-stairs" }, "name": { + "modrinth": "Carpeted Stairs & Slabs", "curseforge": "Carpeted Stairs & Slabs" }, "id": { + "modrinth": "Ogzlp7me", "curseforge": "720848" }, "files": [ + { + "type": "modrinth", + "file_name": "carpeted-1.20-1.4.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/Ogzlp7me/versions/5v8AkQ8d/carpeted-1.20-1.4.jar", + "id": "5v8AkQ8d", + "parent_id": "Ogzlp7me", + "hashes": { + "sha512": "4c9932e314ed8b9db1947e5a1174d84261e2b1258224ec1583fe84c4b8451fa34e750a660113abd19a4866b06f48bc80dd266167a247a0b743afddc4e3a80d5c", + "sha1": "5f177a96a08454572723cf31fee9187c6bc1140e" + }, + "required_dependencies": [ + "twkfQtEc" + ], + "size": 81717, + "date_published": "2023-07-20T22:42:01.926447Z" + }, { "type": "curseforge", "file_name": "carpeted-1.20-1.4.jar", @@ -2072,6 +2220,67 @@ } ] }, + { + "pakku_id": "M4PNTNZvxOW9zDWV", + "type": "MOD", + "side": "BOTH", + "slug": { + "curseforge": "chalk", + "modrinth": "chalk-mod" + }, + "name": { + "curseforge": "Chalk", + "modrinth": "Chalk" + }, + "id": { + "curseforge": "533748", + "modrinth": "YWGP4Y1d" + }, + "files": [ + { + "type": "modrinth", + "file_name": "chalk-1.20.1-1.6.5.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/YWGP4Y1d/versions/HA8yrJaB/chalk-1.20.1-1.6.5.jar", + "id": "HA8yrJaB", + "parent_id": "YWGP4Y1d", + "hashes": { + "sha512": "49220d73636378eae9f55d3dbeedaddcc2afa8949dc656d1ea2c64625aeda210bee3d28e7f704d0ec652020173025235a1d6fd0ef94797409c08defac622fe57", + "sha1": "e4dee75dfe5f8ca8ec21f89ff877d3564bd5c9df" + }, + "required_dependencies": [], + "size": 321480, + "date_published": "2024-12-10T13:00:12.908950Z" + }, + { + "type": "curseforge", + "file_name": "chalk-1.20.1-1.6.5.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/5979/807/chalk-1.20.1-1.6.5.jar", + "id": "5979807", + "parent_id": "533748", + "hashes": { + "sha1": "e4dee75dfe5f8ca8ec21f89ff877d3564bd5c9df", + "md5": "cd1b8ce2f43d8dd29935778f3575d4f0" + }, + "required_dependencies": [], + "size": 321480, + "date_published": "2024-12-10T12:59:38.420Z" + } + ] + }, { "pakku_id": "uNx0hefaZ7i6Gtgo", "type": "MOD", @@ -2270,22 +2479,49 @@ ] }, { - "pakku_id": "2wmaTBMHkCmjJgHW", + "pakku_id": "QIcI3nCuFqWs7vYX", "pakku_links": [ - "CBSBD7u2DdsFEaoX" + "Cix71vVsxRXjcO0Z" ], "type": "MOD", "side": "CLIENT", "slug": { + "modrinth": "client-tweaks", "curseforge": "client-tweaks" }, "name": { + "modrinth": "Client Tweaks", "curseforge": "Client Tweaks" }, "id": { + "modrinth": "vPNqo58Q", "curseforge": "251407" }, "files": [ + { + "type": "modrinth", + "file_name": "clienttweaks-forge-1.20.1-11.1.3.jar", + "mc_versions": [ + "1.20", + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/vPNqo58Q/versions/pUepqrFU/clienttweaks-forge-1.20.1-11.1.3.jar", + "id": "pUepqrFU", + "parent_id": "vPNqo58Q", + "hashes": { + "sha512": "104c13b316c959ec5d9305c30faecdd48a9b4684187821c72fffebc501486bdbc24f17e42137a5b8f2a0e82bc5897277733b325afe7eecfb26efdffc49a0361b", + "sha1": "a607891a764722166715b0656bb6c2430e254316" + }, + "required_dependencies": [ + "MBAkmtvl" + ], + "size": 131625, + "date_published": "2025-02-23T10:22:48.430643Z" + }, { "type": "curseforge", "file_name": "clienttweaks-forge-1.20.1-11.1.3.jar", @@ -2377,18 +2613,43 @@ ] }, { - "pakku_id": "od9yjKETa58AwHsT", + "pakku_id": "xneofl9iTTnXmuy8", "type": "MOD", + "side": "BOTH", "slug": { + "modrinth": "clumps", "curseforge": "clumps" }, "name": { + "modrinth": "Clumps", "curseforge": "Clumps" }, "id": { + "modrinth": "Wnxd13zP", "curseforge": "256717" }, "files": [ + { + "type": "modrinth", + "file_name": "Clumps-forge-1.20.1-12.0.0.4.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/Wnxd13zP/versions/nAHGB5ls/Clumps-forge-1.20.1-12.0.0.4.jar", + "id": "nAHGB5ls", + "parent_id": "Wnxd13zP", + "hashes": { + "sha512": "ffd8ff2438e9f9d260d3926ccdd0cccc4772c6f99f29715690aed4f6e97a76035f3aeaa78168e2a458bc4cccf521e97ebdb6e0b61c819facb04af9ebb3638383", + "sha1": "8809c7aa6c71389e9c59abfe5def52c1cb8d4f1c" + }, + "required_dependencies": [], + "size": 20300, + "date_published": "2024-04-21T05:04:09.708311Z" + }, { "type": "curseforge", "file_name": "Clumps-forge-1.20.1-12.0.0.4.jar", @@ -2604,22 +2865,49 @@ ] }, { - "pakku_id": "GzdI0oHwJrRp9mrA", + "pakku_id": "fnzD4XLIcTV4FXFa", "pakku_links": [ - "yTR90RtnmEyMuFnr" + "yTR90RtnmEyMuFnr", + "gZs5XcDoMcVHtrQT" ], "type": "MOD", "side": "CLIENT", "slug": { + "modrinth": "controlling", "curseforge": "controlling" }, "name": { + "modrinth": "Controlling", "curseforge": "Controlling" }, "id": { + "modrinth": "xv94TkTM", "curseforge": "250398" }, "files": [ + { + "type": "modrinth", + "file_name": "Controlling-forge-1.20.1-12.0.2.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/xv94TkTM/versions/LH6Bi6Am/Controlling-forge-1.20.1-12.0.2.jar", + "id": "LH6Bi6Am", + "parent_id": "xv94TkTM", + "hashes": { + "sha512": "3945bf3f6d843957f13584dfc70bede253d1e48f0dcb96f647fbcc6fcd3d1748a0dd9c6ca5c882e07a41f98eb84057934f51e43ab6023ed0a19695de2e6fe9f5", + "sha1": "6195a3d1464f8fb641d7e165163aea1a857ce08e" + }, + "required_dependencies": [ + "fuuu3xnx" + ], + "size": 115280, + "date_published": "2023-07-16T04:39:30.644589Z" + }, { "type": "curseforge", "file_name": "Controlling-forge-1.20.1-12.0.2.jar", @@ -2646,18 +2934,43 @@ ] }, { - "pakku_id": "w2JoHfVDhChSvfRK", + "pakku_id": "9I12ezSTzqMVFO4v", "type": "MOD", + "side": "BOTH", "slug": { + "modrinth": "corpse", "curseforge": "corpse" }, "name": { + "modrinth": "Corpse", "curseforge": "Corpse" }, "id": { + "modrinth": "WrpuIfhw", "curseforge": "316582" }, "files": [ + { + "type": "modrinth", + "file_name": "corpse-forge-1.20.1-1.0.20.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/WrpuIfhw/versions/COpemDNs/corpse-forge-1.20.1-1.0.20.jar", + "id": "COpemDNs", + "parent_id": "WrpuIfhw", + "hashes": { + "sha512": "c2bbc5dcaa456a711d03550d7ca60cef71c28915b756c86ab6fd6b7838661cede06c6f5f0955c2f79ba587a68e5aef8a8549554f8f11fdfa679132d831d2d6f8", + "sha1": "0c99a369d3e0fb20a1da625edf30668642539690" + }, + "required_dependencies": [], + "size": 244995, + "date_published": "2025-01-24T21:54:05.638822Z" + }, { "type": "curseforge", "file_name": "corpse-forge-1.20.1-1.0.20.jar", @@ -2718,20 +3031,24 @@ ] }, { - "pakku_id": "dlZbve45rug8rUxr", + "pakku_id": "3za1aAMas06ht7mW", + "pakku_links": [ + "YieRg0J67mnZSA2F", + "YNN9MQRUOE5bQByi" + ], "type": "MOD", "side": "CLIENT", "slug": { - "curseforge": "craftpresence", - "modrinth": "craftpresence" + "modrinth": "craftpresence", + "curseforge": "craftpresence" }, "name": { - "curseforge": "CraftPresence", - "modrinth": "CraftPresence" + "modrinth": "CraftPresence", + "curseforge": "CraftPresence" }, "id": { - "curseforge": "297038", - "modrinth": "DFqQfIBR" + "modrinth": "DFqQfIBR", + "curseforge": "297038" }, "files": [ { @@ -2761,7 +3078,7 @@ }, { "type": "curseforge", - "file_name": "CraftPresence-2.5.0+1.20.1-forge.jar", + "file_name": "CraftPresence-2.5.3+1.20.1-forge.jar", "mc_versions": [ "1.20.1", "1.20" @@ -2771,37 +3088,65 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/5608/316/CraftPresence-2.5.0+1.20.1-forge.jar", - "id": "5608316", + "url": "https://edge.forgecdn.net/files/6088/518/CraftPresence-2.5.3+1.20.1-forge.jar", + "id": "6088518", "parent_id": "297038", "hashes": { - "sha1": "dcc9436dd798fe92f755645c87bf652117eec07f", - "md5": "bf85197680ba5c372745cb7ce029e465" + "sha1": "7a350de8adcfff12b8606f1ab0de8422974d7e52", + "md5": "b08827d5e8a3ecfa580a7e660ec4a1f6" }, "required_dependencies": [ "1056812" ], - "size": 1905153, - "date_published": "2024-08-08T16:47:51.400Z" + "size": 2032016, + "date_published": "2025-01-15T02:17:23.247Z" } ] }, { - "pakku_id": "7BDiKQxTw2I9CY1A", + "pakku_id": "Iz1bBbjortNsh5sd", "pakku_links": [ - "CBSBD7u2DdsFEaoX" + "Cix71vVsxRXjcO0Z" ], "type": "MOD", + "side": "BOTH", "slug": { + "modrinth": "crafting-tweaks", "curseforge": "crafting-tweaks" }, "name": { + "modrinth": "Crafting Tweaks", "curseforge": "Crafting Tweaks" }, "id": { + "modrinth": "DMu0oBKf", "curseforge": "233071" }, "files": [ + { + "type": "modrinth", + "file_name": "craftingtweaks-forge-1.20.1-18.2.5.jar", + "mc_versions": [ + "1.20", + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/DMu0oBKf/versions/toAiSZzl/craftingtweaks-forge-1.20.1-18.2.5.jar", + "id": "toAiSZzl", + "parent_id": "DMu0oBKf", + "hashes": { + "sha512": "397f4faa63baf736c2fccb07182e5d0507116aaa506027311b7130e5047fd029bcc8e8f39353c1d1eb2bf9a6f1a12946d1ca2a4ccae74d082b8e517820da4d0b", + "sha1": "3c4bc369c16bdeb00782b2c141eeb6aecbbbcd0a" + }, + "required_dependencies": [ + "MBAkmtvl" + ], + "size": 221276, + "date_published": "2024-08-13T07:07:48.482441Z" + }, { "type": "curseforge", "file_name": "craftingtweaks-forge-1.20.1-18.2.5.jar", @@ -2975,24 +3320,23 @@ ] }, { - "pakku_id": "O2HUJjfNXeKh9X5t", + "pakku_id": "Rbhrcjz5hs1PW3Ep", "pakku_links": [ - "84mP4zIfFqgjbn47", "qb27I6RFmY1EfXWL" ], "type": "MOD", "side": "BOTH", "slug": { - "curseforge": "createaddition", - "modrinth": "createaddition" + "modrinth": "createaddition", + "curseforge": "createaddition" }, "name": { - "curseforge": "Create Crafts & Additions", - "modrinth": "Create Crafts & Additions" + "modrinth": "Create Crafts & Additions", + "curseforge": "Create Crafts & Additions" }, "id": { - "curseforge": "439890", - "modrinth": "kU1G12Nn" + "modrinth": "kU1G12Nn", + "curseforge": "439890" }, "files": [ { @@ -3020,7 +3364,7 @@ }, { "type": "curseforge", - "file_name": "createaddition-1.20.1-1.2.4c.jar", + "file_name": "createaddition-1.20.1-1.2.5.jar", "mc_versions": [ "1.20.1" ], @@ -3028,18 +3372,16 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/5473/648/createaddition-1.20.1-1.2.4c.jar", - "id": "5473648", + "url": "https://edge.forgecdn.net/files/6084/982/createaddition-1.20.1-1.2.5.jar", + "id": "6084982", "parent_id": "439890", "hashes": { - "sha1": "167bc7a5a3c09b4ba4a1aae8d4206bcdaa0f531b", - "md5": "975b4217b7fdc17ddfc41b879dd14793" + "sha1": "956186484bab4eeee5eb0250e5509f1e01ad5094", + "md5": "76ba80eb6c017d3b8703581af4928895" }, - "required_dependencies": [ - "328085" - ], - "size": 1516454, - "date_published": "2024-06-25T17:03:25.453Z" + "required_dependencies": [], + "size": 1531985, + "date_published": "2025-01-13T23:07:52.247Z" } ] }, @@ -3178,26 +3520,49 @@ ] }, { - "pakku_id": "nETOAiekqVCbz6uw", + "pakku_id": "QADvVaNv0cDdMbxA", "pakku_links": [ - "84mP4zIfFqgjbn47", "qb27I6RFmY1EfXWL" ], "type": "MOD", "side": "BOTH", "slug": { - "curseforge": "create-connected", - "modrinth": "create-connected" + "modrinth": "create-connected", + "curseforge": "create-connected" }, "name": { - "curseforge": "Create: Connected", - "modrinth": "Create: Connected" + "modrinth": "Create: Connected", + "curseforge": "Create: Connected" }, "id": { - "curseforge": "947914", - "modrinth": "Vg5TIO6d" + "modrinth": "Vg5TIO6d", + "curseforge": "947914" }, "files": [ + { + "type": "modrinth", + "file_name": "create_connected-0.9.3-mc1.20.1-all.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge", + "neoforge" + ], + "release_type": "beta", + "url": "https://cdn.modrinth.com/data/Vg5TIO6d/versions/82iCuwFZ/create_connected-0.9.3-mc1.20.1-all.jar", + "id": "82iCuwFZ", + "parent_id": "Vg5TIO6d", + "hashes": { + "sha512": "8ae94384582025eb60f97cbee78e2a9bbc1fa71760715afa11764da5531356e4d9301999b33dd5ff711d096e4ee7e3e6619e6999e32cbfcf29aacc194e6a2173", + "sha1": "ad03c16cc9459c1d4fde5a17e28f4c73b7bd08c4" + }, + "required_dependencies": [ + "LNytGWDc" + ], + "size": 6231008, + "date_published": "2025-01-01T05:20:52.639879Z" + }, { "type": "curseforge", "file_name": "create_connected-0.9.3-mc1.20.1-all.jar", @@ -3221,52 +3586,27 @@ ], "size": 6231008, "date_published": "2025-01-01T05:18:51.580Z" - }, - { - "type": "modrinth", - "file_name": "create_connected-0.8.2-mc1.20.1-all.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "forge" - ], - "release_type": "beta", - "url": "https://cdn.modrinth.com/data/Vg5TIO6d/versions/gKrm9DLf/create_connected-0.8.2-mc1.20.1-all.jar", - "id": "gKrm9DLf", - "parent_id": "Vg5TIO6d", - "hashes": { - "sha512": "1fa0d819cd22bc9bf155f28d3e056ffff8086748e31ccf1aa1d75e54c4f4b21033f6c7b0ae519f2d0347a3c93df1b8aa65d8b8eb18002aec04188bbcefd8ac07", - "sha1": "9eeb02a46197635ac926e8302aa536ad191ddf02" - }, - "required_dependencies": [ - "LNytGWDc" - ], - "size": 6145362, - "date_published": "2024-05-29T15:36:20.552670Z" } ] }, { - "pakku_id": "nx6J4hVPORC7FHih", + "pakku_id": "SfTaM1HeaJTzJKuK", "pakku_links": [ - "JJEMwzpSHmXvtGNL", - "84mP4zIfFqgjbn47", "qb27I6RFmY1EfXWL" ], "type": "MOD", "side": "BOTH", "slug": { - "curseforge": "create-steam-n-rails", - "modrinth": "create-steam-n-rails" + "modrinth": "create-steam-n-rails", + "curseforge": "create-steam-n-rails" }, "name": { - "curseforge": "Create: Steam 'n' Rails", - "modrinth": "Create: Steam 'n' Rails" + "modrinth": "Create: Steam 'n' Rails", + "curseforge": "Create: Steam 'n' Rails" }, "id": { - "curseforge": "688231", - "modrinth": "ZzjhlDgM" + "modrinth": "ZzjhlDgM", + "curseforge": "688231" }, "files": [ { @@ -3295,7 +3635,7 @@ }, { "type": "curseforge", - "file_name": "Steam_Rails-1.6.4+forge-mc1.20.1.jar", + "file_name": "Steam_Rails-1.6.7+forge-mc1.20.1.jar", "mc_versions": [ "1.20.1" ], @@ -3304,18 +3644,18 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/5331/300/Steam_Rails-1.6.4+forge-mc1.20.1.jar", - "id": "5331300", + "url": "https://edge.forgecdn.net/files/5840/17/Steam_Rails-1.6.7+forge-mc1.20.1.jar", + "id": "5840017", "parent_id": "688231", "hashes": { - "sha1": "1fa6261d8bcde2feb200886e2ff6cfcbbdb53e17", - "md5": "a166aa861a8c584c89271731d882a45e" + "sha1": "7449e9cbaae6a23a31127a3cf0886899c28639dc", + "md5": "32a83dba6630165e1415f9e78d4aaf2e" }, "required_dependencies": [ "328085" ], - "size": 9096035, - "date_published": "2024-05-09T22:45:15.623Z" + "size": 9997801, + "date_published": "2024-10-23T21:20:27.887Z" } ] }, @@ -3455,20 +3795,20 @@ ] }, { - "pakku_id": "L53Ef9uBsLUPAXf6", + "pakku_id": "jJtncbBh6avvM7Pi", "type": "MOD", "side": "BOTH", "slug": { - "curseforge": "cucumber", - "modrinth": "cucumber" + "modrinth": "cucumber", + "curseforge": "cucumber" }, "name": { - "curseforge": "Cucumber Library", - "modrinth": "Cucumber Library" + "modrinth": "Cucumber Library", + "curseforge": "Cucumber Library" }, "id": { - "curseforge": "272335", - "modrinth": "Rw1NrDzF" + "modrinth": "Rw1NrDzF", + "curseforge": "272335" }, "files": [ { @@ -3494,7 +3834,7 @@ }, { "type": "curseforge", - "file_name": "Cucumber-1.20.1-7.0.12.jar", + "file_name": "Cucumber-1.20.1-7.0.13.jar", "mc_versions": [ "1.20.1" ], @@ -3502,16 +3842,16 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/5714/571/Cucumber-1.20.1-7.0.12.jar", - "id": "5714571", + "url": "https://edge.forgecdn.net/files/5857/370/Cucumber-1.20.1-7.0.13.jar", + "id": "5857370", "parent_id": "272335", "hashes": { - "sha1": "3346991a0cd78ff438ec38583f9f3e9d2c7aea10", - "md5": "8e7877d561e131a3515a41b7e19f18d9" + "sha1": "e2987306d878745a1ea926bdee07f8d320bfa848", + "md5": "9526fd88bd6ce8f5e1d50181f4f46b04" }, "required_dependencies": [], - "size": 269587, - "date_published": "2024-09-11T19:32:39.850Z" + "size": 269589, + "date_published": "2024-10-29T16:55:57.013Z" } ] }, @@ -3655,21 +3995,49 @@ ] }, { - "pakku_id": "LdL5SyxWFRXcqOzw", + "pakku_id": "IglMnIORa9sn78lZ", "pakku_links": [ - "CBSBD7u2DdsFEaoX" + "Cix71vVsxRXjcO0Z" ], "type": "MOD", + "side": "CLIENT", "slug": { + "modrinth": "default-options", "curseforge": "default-options" }, "name": { + "modrinth": "Default Options", "curseforge": "Default Options" }, "id": { + "modrinth": "WEg59z5b", "curseforge": "232131" }, "files": [ + { + "type": "modrinth", + "file_name": "defaultoptions-forge-1.20-18.0.1.jar", + "mc_versions": [ + "1.20", + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/WEg59z5b/versions/CKNINccT/defaultoptions-forge-1.20-18.0.1.jar", + "id": "CKNINccT", + "parent_id": "WEg59z5b", + "hashes": { + "sha512": "41ab37f580a1cbcb063958b7ec6034c9bea729aecb5452e5982a21d068617a818e78d31f03e76fc4e06dbf73f066f576d9dd6566f70d4912f29b595ba5c54079", + "sha1": "73af2309627a68a7bff3e53e02ea22fb5c4651e5" + }, + "required_dependencies": [ + "MBAkmtvl" + ], + "size": 87942, + "date_published": "2023-07-10T20:42:17.439457Z" + }, { "type": "curseforge", "file_name": "defaultoptions-forge-1.20-18.0.1.jar", @@ -3759,25 +4127,30 @@ ] }, { - "pakku_id": "j8Ir2JRnUYQEZNvJ", + "pakku_id": "cIGIb7l5Z53WuqqQ", "pakku_links": [ - "uCACXyPoJ4iKQzNG" + "uCACXyPoJ4iKQzNG", + "Wp4bimC12ZfUWRDW", + "F6H99cZ4H6jZRpEK" ], "type": "MOD", "side": "BOTH", "slug": { - "modrinth": "digger-helmet" + "modrinth": "digger-helmet", + "curseforge": "digger-helmet" }, "name": { - "modrinth": "Digger Helmet" + "modrinth": "Digger Helmet", + "curseforge": "Digger Helmet" }, "id": { - "modrinth": "8Aatj9Zy" + "modrinth": "8Aatj9Zy", + "curseforge": "1243596" }, "files": [ { "type": "modrinth", - "file_name": "diggerhelmet-1.20.1-1.0.0.16.jar", + "file_name": "diggerhelmet-1.20.1-1.0.0.18.jar", "mc_versions": [ "1.20.1" ], @@ -3786,19 +4159,46 @@ "neoforge" ], "release_type": "alpha", - "url": "https://cdn.modrinth.com/data/8Aatj9Zy/versions/5rweNw1h/diggerhelmet-1.20.1-1.0.0.16.jar", - "id": "5rweNw1h", + "url": "https://cdn.modrinth.com/data/8Aatj9Zy/versions/F1OxL4u7/diggerhelmet-1.20.1-1.0.0.18.jar", + "id": "F1OxL4u7", "parent_id": "8Aatj9Zy", "hashes": { - "sha512": "c0e63e74fb7154a0fbad9244cf8a6f69b5f57f1157e5c0824864e11f9652391ee4825d8f6000baf8a65f8b0b0be69b64596797a42f897f165dd2a16c8718b2ec", - "sha1": "674235b35ed08dc16906603043c010f3a2a9485d" + "sha512": "6fccff7666420fef07997f56d2951465f7c58b1ec4c6de144f643ba0c9365ed47bc2c0636d92d97c457d2a1a7df4a25adf1492ab91954f92ee3aec15e5b441e1", + "sha1": "2020d274cfb18c26c1ee079bf45673e781a6bae5" }, "required_dependencies": [ + "8BmcQJ2H", "vvuO3ImH", - "8BmcQJ2H" + "JaCEZUhg" ], - "size": 109514, - "date_published": "2025-03-31T05:56:20.625415Z" + "size": 163250, + "date_published": "2025-04-16T13:26:55.189626Z" + }, + { + "type": "curseforge", + "file_name": "diggerhelmet-1.20.1-1.0.0.18.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "neoforge", + "forge" + ], + "release_type": "beta", + "url": "https://edge.forgecdn.net/files/6429/110/diggerhelmet-1.20.1-1.0.0.18.jar", + "id": "6429110", + "parent_id": "1243596", + "hashes": { + "sha1": "2020d274cfb18c26c1ee079bf45673e781a6bae5", + "md5": "fa685357a3a22e9b946d00d3f5ad1c65" + }, + "required_dependencies": [ + "302973", + "388172", + "309927" + ], + "size": 163250, + "date_published": "2025-04-16T13:29:52.010Z" } ] }, @@ -4104,7 +4504,7 @@ "uCACXyPoJ4iKQzNG" ], "type": "MOD", - "side": "CLIENT", + "side": "BOTH", "slug": { "curseforge": "enderman-overhaul", "modrinth": "enderman-overhaul" @@ -4303,20 +4703,16 @@ ] }, { - "pakku_id": "qaC8dEXb3M46wC0R", + "pakku_id": "6YCX6n9EgxxL8O3f", "type": "MOD", - "side": "BOTH", "slug": { - "curseforge": "etched", - "modrinth": "etched" + "curseforge": "etched" }, "name": { - "curseforge": "Etched", - "modrinth": "Etched" + "curseforge": "Etched" }, "id": { - "curseforge": "491890", - "modrinth": "zi3Fnfmc" + "curseforge": "491890" }, "files": [ { @@ -4340,28 +4736,6 @@ "required_dependencies": [], "size": 611496, "date_published": "2024-12-17T19:34:14.223Z" - }, - { - "type": "modrinth", - "file_name": "etched-3.0.2.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "forge", - "neoforge" - ], - "release_type": "release", - "url": "https://cdn.modrinth.com/data/zi3Fnfmc/versions/M178L4Do/etched-3.0.2.jar", - "id": "M178L4Do", - "parent_id": "zi3Fnfmc", - "hashes": { - "sha512": "d932c4fb13b62e92f33dbad0d826e3f08f338d05e166421bf997101176b468f23792931b2c6f154e3b2d1c6fde5012a3ae5a98aa7711da5eb41184523d834046", - "sha1": "792f055e76eb7a13efe26552cbccad66c2585860" - }, - "required_dependencies": [], - "size": 610871, - "date_published": "2024-05-14T23:44:35.498485Z" } ] }, @@ -4431,7 +4805,7 @@ ] }, { - "pakku_id": "0IwFEbZILbvIn5s3", + "pakku_id": "ZnPhLZ65YNJrpOON", "type": "MOD", "side": "BOTH", "slug": { @@ -4447,6 +4821,27 @@ "modrinth": "hB899VmG" }, "files": [ + { + "type": "curseforge", + "file_name": "exposure-1.20.1-1.7.10-forge.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/6304/406/exposure-1.20.1-1.7.10-forge.jar", + "id": "6304406", + "parent_id": "871755", + "hashes": { + "sha1": "a8595144c369937987152ba3661f04c821443c4d", + "md5": "b7772ed21e7a5422c5d6d85991aba2bc" + }, + "required_dependencies": [], + "size": 1333973, + "date_published": "2025-03-14T19:42:36.340Z" + }, { "type": "modrinth", "file_name": "exposure-1.20.1-1.7.10-forge.jar", @@ -4467,28 +4862,6 @@ "required_dependencies": [], "size": 1333973, "date_published": "2025-03-14T19:42:36.029110Z" - }, - { - "type": "curseforge", - "file_name": "exposure-1.20.1-1.7.7-forge.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "neoforge", - "forge" - ], - "release_type": "release", - "url": "https://edge.forgecdn.net/files/5751/145/exposure-1.20.1-1.7.7-forge.jar", - "id": "5751145", - "parent_id": "871755", - "hashes": { - "sha1": "eda99c8659c675f2b3a9362129a061c4c11f7b2f", - "md5": "e0f1386d5e62a60f8a577dcaec3ebd1e" - }, - "required_dependencies": [], - "size": 1326106, - "date_published": "2024-09-24T02:18:53.903Z" } ] }, @@ -5357,24 +5730,48 @@ ] }, { - "pakku_id": "gANtU2y5hTCQgmzw", + "pakku_id": "RwppJL578CgU7lki", "pakku_links": [ - "7G8CAYj7aYbcj9DY", - "54GBXX5SRvwVuWAF", "Bulb4DSBYe5vmmM4" ], "type": "MOD", "side": "BOTH", "slug": { + "curseforge": "firmacivplus", "modrinth": "firmacivplus" }, "name": { + "curseforge": "FirmaCivPlus", "modrinth": "FirmaCivPlus" }, "id": { + "curseforge": "1243743", "modrinth": "h1WsEaNH" }, "files": [ + { + "type": "curseforge", + "file_name": "firmacivplus-1.0.0-1.20.1.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/6426/37/firmacivplus-1.0.0-1.20.1.jar", + "id": "6426037", + "parent_id": "1243743", + "hashes": { + "sha1": "9bdb54e464ca7ad507242d9f2d12c1b8c0761625", + "md5": "8d57bbca2c9c48353fbedcef674387a1" + }, + "required_dependencies": [ + "714158" + ], + "size": 7027607, + "date_published": "2025-04-15T15:21:19.367Z" + }, { "type": "modrinth", "file_name": "firmacivplus-1.0.0-1.20.1.jar", @@ -5468,7 +5865,7 @@ ] }, { - "pakku_id": "GnwWaOqj3PsROaDV", + "pakku_id": "pFU4Ma0J92JfoKnW", "type": "MOD", "side": "CLIENT", "slug": { @@ -5485,6 +5882,27 @@ }, "redistributable": false, "files": [ + { + "type": "curseforge", + "file_name": "firstperson-forge-2.4.8-mc1.20.1.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "beta", + "url": "https://edge.forgecdn.net/files/6011/928/firstperson-forge-2.4.8-mc1.20.1.jar", + "id": "6011928", + "parent_id": "333287", + "hashes": { + "sha1": "1ab303f2e074acf090bb150b929d0d5737dc1183", + "md5": "c1c1281332086f06f3906774f36503ed" + }, + "required_dependencies": [], + "size": 126470, + "date_published": "2024-12-21T23:24:09.477Z" + }, { "type": "modrinth", "file_name": "firstperson-forge-2.4.8-mc1.20.1.jar", @@ -5505,27 +5923,6 @@ "required_dependencies": [], "size": 126470, "date_published": "2024-12-21T23:24:11.155518Z" - }, - { - "type": "curseforge", - "file_name": "firstperson-forge-2.4.5-mc1.20.1.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "forge" - ], - "release_type": "beta", - "url": "https://edge.forgecdn.net/files/5729/167/firstperson-forge-2.4.5-mc1.20.1.jar", - "id": "5729167", - "parent_id": "333287", - "hashes": { - "sha1": "84f0f568482a83dc6d412efc31ca4e2b243a2bb1", - "md5": "7be7c503155f33dd6320ccef00e4219b" - }, - "required_dependencies": [], - "size": 126229, - "date_published": "2024-09-16T17:25:30.727Z" } ] }, @@ -5833,7 +6230,7 @@ { "pakku_id": "uCACXyPoJ4iKQzNG", "type": "MOD", - "side": "CLIENT", + "side": "BOTH", "slug": { "curseforge": "geckolib", "modrinth": "geckolib" @@ -6055,27 +6452,43 @@ ] }, { - "pakku_id": "j6fA0JbUIMVAq3q2", + "pakku_id": "JYHQVYwIGQYRij0G", "type": "MOD", + "side": "BOTH", "slug": { - "github": "GreateBeyondTheHorizon/Greate" + "modrinth": "greate" }, "name": { - "github": "Greate" + "modrinth": "Greate" }, "id": { - "github": "673422318" + "modrinth": "8wDcQuht" }, "files": [ { - "type": "github", + "type": "modrinth", "file_name": "greate-0.0.38.jar", - "release_type": "release", - "url": "https://github.com/GreateBeyondTheHorizon/Greate/releases/download/0.0.38/greate-0.0.38.jar", - "id": "227638684", - "parent_id": "673422318", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge", + "neoforge" + ], + "release_type": "alpha", + "url": "https://cdn.modrinth.com/data/8wDcQuht/versions/jfXaHhi2/greate-0.0.38.jar", + "id": "jfXaHhi2", + "parent_id": "8wDcQuht", + "hashes": { + "sha512": "53a5d9985b31660cac20a708ceb13b1855ae5c3f948c9adf242c37fa6f19b9f03b51a3f566696a922039ecad2a7d6afce962f40f1bae181032d972aca0779d44", + "sha1": "4b3cde954b102e5f5c4b940a42220c2979a5eb70" + }, + "required_dependencies": [ + "7tG215v7", + "LNytGWDc" + ], "size": 1514248, - "date_published": "2025-02-09T16:31:16Z" + "date_published": "2025-02-09T16:31:14.824605Z" } ] }, @@ -6692,6 +7105,9 @@ }, { "pakku_id": "qfmfJ9pcWlHX4gSC", + "pakku_links": [ + "K1CxjpiwXqtWrxdd" + ], "type": "MOD", "side": "CLIENT", "slug": { @@ -6756,7 +7172,10 @@ ] }, { - "pakku_id": "tZFjpbX8SGeJ4S26", + "pakku_id": "NhIPVu8RDHYHrFcw", + "pakku_links": [ + "UOjZxqemtQFAP9R8" + ], "type": "MOD", "side": "CLIENT", "slug": { @@ -6772,6 +7191,30 @@ "modrinth": "OuyCgP8t" }, "files": [ + { + "type": "curseforge", + "file_name": "ItemPhysicLite_FORGE_v1.6.6_mc1.20.1.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "neoforge", + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/6045/994/ItemPhysicLite_FORGE_v1.6.6_mc1.20.1.jar", + "id": "6045994", + "parent_id": "270441", + "hashes": { + "sha1": "4fc87af53afb8610e77710b30340783fc6bd0ccf", + "md5": "83c19033092e5eab8c00e0ab056a783a" + }, + "required_dependencies": [ + "257814" + ], + "size": 19487, + "date_published": "2025-01-02T15:19:28.153Z" + }, { "type": "modrinth", "file_name": "ItemPhysicLite_FORGE_v1.6.6_mc1.20.1.jar", @@ -6795,35 +7238,14 @@ ], "size": 19487, "date_published": "2025-01-02T15:19:25.955410Z" - }, - { - "type": "curseforge", - "file_name": "ItemPhysicLite_FORGE_v1.6.5_mc1.20.1.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "neoforge", - "forge" - ], - "release_type": "release", - "url": "https://edge.forgecdn.net/files/5739/352/ItemPhysicLite_FORGE_v1.6.5_mc1.20.1.jar", - "id": "5739352", - "parent_id": "270441", - "hashes": { - "sha1": "ae7c975384abced013c7a040393a60715bb5000b", - "md5": "a274f504b0127d0a18fc5f7906480e57" - }, - "required_dependencies": [ - "257814" - ], - "size": 19472, - "date_published": "2024-09-20T08:53:31.590Z" } ] }, { - "pakku_id": "Tz2azrcPXrKQzzPe", + "pakku_id": "9QhYmcgAPjE21AZN", + "pakku_links": [ + "7QIRhUwYRTKZoPpd" + ], "type": "MOD", "side": "BOTH", "slug": { @@ -6839,6 +7261,31 @@ "modrinth": "xuDOzCLy" }, "files": [ + { + "type": "curseforge", + "file_name": "JadeAddons-1.20.1-Forge-5.3.1.jar", + "mc_versions": [ + "1.20.1", + "1.20" + ], + "loaders": [ + "neoforge", + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/5693/124/JadeAddons-1.20.1-Forge-5.3.1.jar", + "id": "5693124", + "parent_id": "583345", + "hashes": { + "sha1": "140a393ae43519bcb9018a7e00c300f930d659dc", + "md5": "41662ef8645177cc3f90fc34007563df" + }, + "required_dependencies": [ + "324717" + ], + "size": 77839, + "date_published": "2024-09-04T19:28:49.377Z" + }, { "type": "modrinth", "file_name": "JadeAddons-1.20.1-Forge-5.3.1.jar", @@ -6863,31 +7310,6 @@ ], "size": 77839, "date_published": "2024-09-04T19:28:53.887177Z" - }, - { - "type": "curseforge", - "file_name": "JadeAddons-1.20.1-forge-5.2.2.jar", - "mc_versions": [ - "1.20.1", - "1.20" - ], - "loaders": [ - "neoforge", - "forge" - ], - "release_type": "release", - "url": "https://edge.forgecdn.net/files/4925/840/JadeAddons-1.20.1-forge-5.2.2.jar", - "id": "4925840", - "parent_id": "583345", - "hashes": { - "sha1": "74b567a2b23bf34cd37ee4c02059318f8cc702d7", - "md5": "2f1d72f5d532e421b360ecf8f8b31ba5" - }, - "required_dependencies": [ - "324717" - ], - "size": 58529, - "date_published": "2023-12-04T11:50:51.590Z" } ] }, @@ -7834,9 +8256,11 @@ ] }, { - "pakku_id": "allFEHgIxsCYE7PD", + "pakku_id": "0V3RchpzHxX7JWSb", "pakku_links": [ - "r5vLdsJ3IXx8Mfse" + "YrMPVh28ndtUkLsq", + "r5vLdsJ3IXx8Mfse", + "qDUpAZkCcYB6JdyI" ], "type": "MOD", "side": "BOTH", @@ -7853,6 +8277,30 @@ "modrinth": "umyGl7zF" }, "files": [ + { + "type": "curseforge", + "file_name": "kubejs-forge-2001.6.5-build.16.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/5853/326/kubejs-forge-2001.6.5-build.16.jar", + "id": "5853326", + "parent_id": "238086", + "hashes": { + "sha1": "93fcf0eacc5dc08a4f719eaaed1dc93f0dc80f66", + "md5": "f4c6924bef764748d26ee51e4d4c0b00" + }, + "required_dependencies": [ + "419699", + "416294" + ], + "size": 1654660, + "date_published": "2024-10-28T09:20:33.537Z" + }, { "type": "modrinth", "file_name": "kubejs-forge-2001.6.5-build.16.jar", @@ -7871,36 +8319,11 @@ "sha1": "93fcf0eacc5dc08a4f719eaaed1dc93f0dc80f66" }, "required_dependencies": [ - "lhGA9TYQ", - "sk9knFPE" + "sk9knFPE", + "lhGA9TYQ" ], "size": 1654660, "date_published": "2024-10-28T09:20:35.912552Z" - }, - { - "type": "curseforge", - "file_name": "kubejs-forge-2001.6.5-build.14.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "neoforge", - "forge" - ], - "release_type": "release", - "url": "https://edge.forgecdn.net/files/5454/840/kubejs-forge-2001.6.5-build.14.jar", - "id": "5454840", - "parent_id": "238086", - "hashes": { - "sha1": "3a40e639a6b7576deeb1f9e5379beaba85c15280", - "md5": "b23faa10b06f01809ad4e5bf28da453c" - }, - "required_dependencies": [ - "419699", - "416294" - ], - "size": 1654724, - "date_published": "2024-06-21T18:29:12.720Z" } ] }, @@ -7909,7 +8332,8 @@ "pakku_links": [ "allFEHgIxsCYE7PD", "84mP4zIfFqgjbn47", - "qb27I6RFmY1EfXWL" + "qb27I6RFmY1EfXWL", + "0V3RchpzHxX7JWSb" ], "type": "MOD", "side": "BOTH", @@ -7979,7 +8403,8 @@ { "pakku_id": "achY0mkmvpvIZtNh", "pakku_links": [ - "F6H99cZ4H6jZRpEK" + "F6H99cZ4H6jZRpEK", + "0V3RchpzHxX7JWSb" ], "type": "MOD", "side": "BOTH", @@ -8248,39 +8673,66 @@ ] }, { - "pakku_id": "m3etmMcwwpwqRadD", + "pakku_id": "BCuKijcfFLKJoJgq", "type": "MOD", + "side": "BOTH", "slug": { - "curseforge": "lootr" + "curseforge": "lootr", + "modrinth": "lootr" }, "name": { - "curseforge": "Lootr (Forge & NeoForge)" + "curseforge": "Lootr (Forge & NeoForge)", + "modrinth": "Lootr" }, "id": { - "curseforge": "361276" + "curseforge": "361276", + "modrinth": "EltpO5cN" }, "files": [ { "type": "curseforge", - "file_name": "lootr-forge-1.20-0.7.34.89.jar", + "file_name": "lootr-forge-1.20-0.7.35.90.jar", "mc_versions": [ "1.20.1", "1.20" ], "loaders": [ + "neoforge", "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/5636/598/lootr-forge-1.20-0.7.34.89.jar", - "id": "5636598", + "url": "https://edge.forgecdn.net/files/5976/109/lootr-forge-1.20-0.7.35.90.jar", + "id": "5976109", "parent_id": "361276", "hashes": { - "sha1": "4f6fb612fee28f82b798723e76de5752636c4eea", - "md5": "268721ef907b1d9f9a42e36d370c6c90" + "sha1": "919a1e75d8fac3081743c9dcbe6679a28c867ec9", + "md5": "570d8e000bf17cc71eb0b26cfd4dc7a6" }, "required_dependencies": [], - "size": 347913, - "date_published": "2024-08-17T02:26:34.983Z" + "size": 457647, + "date_published": "2024-12-09T01:59:08.480Z" + }, + { + "type": "modrinth", + "file_name": "lootr-forge-1.20-0.7.35.90.jar", + "mc_versions": [ + "1.20", + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/EltpO5cN/versions/uZTpIy1Z/lootr-forge-1.20-0.7.35.90.jar", + "id": "uZTpIy1Z", + "parent_id": "EltpO5cN", + "hashes": { + "sha512": "57830390a8d3fb59b0950aa0a422d31e3d18eeff09a77175548876d322e2f395a69a2720d988f256cfdebde26ec54f1cf1e1c35b6b3ae3aea42855906b816421", + "sha1": "919a1e75d8fac3081743c9dcbe6679a28c867ec9" + }, + "required_dependencies": [], + "size": 457647, + "date_published": "2024-12-09T02:01:02.658171Z" } ] }, @@ -8496,18 +8948,44 @@ ] }, { - "pakku_id": "7kwz7sGb5cZCf3kp", + "pakku_id": "c8G3t46sMPikEB2L", "type": "MOD", + "side": "BOTH", "slug": { + "modrinth": "measurements", "curseforge": "measurements" }, "name": { + "modrinth": "Measurements", "curseforge": "Measurements" }, "id": { + "modrinth": "wLINU2AB", "curseforge": "478559" }, "files": [ + { + "type": "modrinth", + "file_name": "Measurements-forge-1.20.1-2.0.0.jar", + "mc_versions": [ + "1.20", + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/wLINU2AB/versions/EHwSQ3lX/Measurements-forge-1.20.1-2.0.0.jar", + "id": "EHwSQ3lX", + "parent_id": "wLINU2AB", + "hashes": { + "sha512": "f6d3f38f37f205edefd765392c3548ab9550722c5209a0eb81d5e22bd00cba27927e273709cabb49b83e3b5230d32daef8277cd07a27d87abd38ce68779064c4", + "sha1": "9d630242698067214d354ee6f1059d4ea56c36dd" + }, + "required_dependencies": [], + "size": 43447, + "date_published": "2023-06-14T16:52:45.729170Z" + }, { "type": "curseforge", "file_name": "Measurements-forge-1.20.1-2.0.0.jar", @@ -9445,23 +9923,23 @@ ] }, { - "pakku_id": "GAki1Arlsgajcu08", + "pakku_id": "K1CxjpiwXqtWrxdd", "pakku_links": [ "PGG5IiciynuRNWMz" ], "type": "MOD", "side": "CLIENT", "slug": { - "curseforge": "oculus", - "modrinth": "oculus" + "modrinth": "oculus", + "curseforge": "oculus" }, "name": { - "curseforge": "Oculus", - "modrinth": "Oculus" + "modrinth": "Oculus", + "curseforge": "Oculus" }, "id": { - "curseforge": "581495", - "modrinth": "GchcoXML" + "modrinth": "GchcoXML", + "curseforge": "581495" }, "files": [ { @@ -9490,7 +9968,7 @@ }, { "type": "curseforge", - "file_name": "oculus-mc1.20.1-1.7.0.jar", + "file_name": "oculus-mc1.20.1-1.8.0.jar", "mc_versions": [ "1.20.1" ], @@ -9499,36 +9977,34 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/5299/671/oculus-mc1.20.1-1.7.0.jar", - "id": "5299671", + "url": "https://edge.forgecdn.net/files/6020/952/oculus-mc1.20.1-1.8.0.jar", + "id": "6020952", "parent_id": "581495", "hashes": { - "sha1": "27410903d3af950378776106b76503cfebe7ea3a", - "md5": "45b96133bb46cc61dd9778bd4fca741d" + "sha1": "984f774e71790deaec674c7587bd24e0711871b2", + "md5": "1dd891634ac21591b5a692471f112572" }, - "required_dependencies": [ - "908741" - ], - "size": 2831148, - "date_published": "2024-04-28T21:22:38.047Z" + "required_dependencies": [], + "size": 2851119, + "date_published": "2024-12-24T23:33:51.040Z" } ] }, { - "pakku_id": "4jSDms54eHIMArhs", + "pakku_id": "6PXFYlWK80AHRStw", "type": "MOD", "side": "BOTH", "slug": { - "curseforge": "open-parties-and-claims", - "modrinth": "open-parties-and-claims" + "modrinth": "open-parties-and-claims", + "curseforge": "open-parties-and-claims" }, "name": { - "curseforge": "Open Parties and Claims", - "modrinth": "Open Parties and Claims" + "modrinth": "Open Parties and Claims", + "curseforge": "Open Parties and Claims" }, "id": { - "curseforge": "636608", - "modrinth": "gF3BGWvG" + "modrinth": "gF3BGWvG", + "curseforge": "636608" }, "files": [ { @@ -9555,7 +10031,7 @@ }, { "type": "curseforge", - "file_name": "open-parties-and-claims-forge-1.20.1-0.23.2.jar", + "file_name": "open-parties-and-claims-forge-1.20.1-0.23.7.jar", "mc_versions": [ "1.20.1", "1.20" @@ -9564,16 +10040,16 @@ "forge" ], "release_type": "beta", - "url": "https://edge.forgecdn.net/files/5556/895/open-parties-and-claims-forge-1.20.1-0.23.2.jar", - "id": "5556895", + "url": "https://edge.forgecdn.net/files/6055/478/open-parties-and-claims-forge-1.20.1-0.23.7.jar", + "id": "6055478", "parent_id": "636608", "hashes": { - "sha1": "17f769e0779e302882c3143a3d0e0fed7737f1a2", - "md5": "901132f5ea46d4e6afc4a7db2677fcfb" + "sha1": "8f59207176cdc2fe53e5f7e65debc08a7dca3882", + "md5": "29b434029c7960a57ea1b70cb73bf7a9" }, "required_dependencies": [], - "size": 1244599, - "date_published": "2024-07-23T09:58:07.120Z" + "size": 1245092, + "date_published": "2025-01-05T08:54:48.380Z" } ] }, @@ -9867,7 +10343,7 @@ { "pakku_id": "nZjo5dxgrxl4zm2b", "type": "MOD", - "side": "CLIENT", + "side": "BOTH", "slug": { "curseforge": "particular-reforged", "modrinth": "particular-reforged" @@ -10093,23 +10569,23 @@ ] }, { - "pakku_id": "mwuJTllnFzTiipMp", + "pakku_id": "Q05ngAFjkXSxr7W2", "pakku_links": [ "UOjZxqemtQFAP9R8" ], "type": "MOD", "side": "BOTH", "slug": { - "curseforge": "playerrevive", - "modrinth": "playerrevive" + "modrinth": "playerrevive", + "curseforge": "playerrevive" }, "name": { - "curseforge": "PlayerRevive", - "modrinth": "PlayerRevive" + "modrinth": "PlayerRevive", + "curseforge": "PlayerRevive" }, "id": { - "curseforge": "266890", - "modrinth": "ABIMzABM" + "modrinth": "ABIMzABM", + "curseforge": "266890" }, "files": [ { @@ -10138,7 +10614,7 @@ }, { "type": "curseforge", - "file_name": "PlayerRevive_FORGE_v2.0.27_mc1.20.1.jar", + "file_name": "PlayerRevive_FORGE_v2.0.31_mc1.20.1.jar", "mc_versions": [ "1.20.1" ], @@ -10147,18 +10623,18 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/5647/65/PlayerRevive_FORGE_v2.0.27_mc1.20.1.jar", - "id": "5647065", + "url": "https://edge.forgecdn.net/files/6048/921/PlayerRevive_FORGE_v2.0.31_mc1.20.1.jar", + "id": "6048921", "parent_id": "266890", "hashes": { - "sha1": "fe335d6680b86aad9ff95e1858b572244b168ff7", - "md5": "afe26f328a86df83c3ddc8bad3839226" + "sha1": "84c039f20b8f048c835c429c2c4a9fd82a5e65f6", + "md5": "e07fc42680a0163c99c21cfa9afb9816" }, "required_dependencies": [ "257814" ], - "size": 5297306, - "date_published": "2024-08-20T14:18:52.990Z" + "size": 5298162, + "date_published": "2025-01-03T12:43:44.657Z" } ] }, @@ -10230,7 +10706,7 @@ { "pakku_id": "pITFJNUBx59dBitK", "type": "MOD", - "side": "CLIENT", + "side": "BOTH", "slug": { "curseforge": "primitive-creatures" }, @@ -10266,6 +10742,9 @@ }, { "pakku_id": "jq9QGlgfAvlRlyEk", + "pakku_links": [ + "0V3RchpzHxX7JWSb" + ], "type": "MOD", "slug": { "curseforge": "probejs" @@ -10533,7 +11012,7 @@ { "pakku_id": "J5CyvX6hIaMAyzVK", "type": "MOD", - "side": "CLIENT", + "side": "BOTH", "slug": { "curseforge": "resourceful-config", "modrinth": "resourceful-config" @@ -10594,7 +11073,7 @@ { "pakku_id": "cxgo5IyMJwtpohRH", "type": "MOD", - "side": "CLIENT", + "side": "BOTH", "slug": { "curseforge": "resourceful-lib", "modrinth": "resourceful-lib" @@ -10653,20 +11132,20 @@ ] }, { - "pakku_id": "r5vLdsJ3IXx8Mfse", + "pakku_id": "qDUpAZkCcYB6JdyI", "type": "MOD", "side": "BOTH", "slug": { - "curseforge": "rhino", - "modrinth": "rhino" + "modrinth": "rhino", + "curseforge": "rhino" }, "name": { - "curseforge": "Rhino", - "modrinth": "Rhino" + "modrinth": "Rhino", + "curseforge": "Rhino" }, "id": { - "curseforge": "416294", - "modrinth": "sk9knFPE" + "modrinth": "sk9knFPE", + "curseforge": "416294" }, "files": [ { @@ -10692,7 +11171,7 @@ }, { "type": "curseforge", - "file_name": "rhino-forge-2001.2.2-build.18.jar", + "file_name": "rhino-forge-2001.2.3-build.6.jar", "mc_versions": [ "1.20.1" ], @@ -10700,16 +11179,16 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/4944/325/rhino-forge-2001.2.2-build.18.jar", - "id": "4944325", + "url": "https://edge.forgecdn.net/files/5655/836/rhino-forge-2001.2.3-build.6.jar", + "id": "5655836", "parent_id": "416294", "hashes": { - "sha1": "0a631b4e8235a777d08bd53d4f49dba388205cad", - "md5": "d0ee9715edfcb029f59687a08fb88a53" + "sha1": "0c91c1710d7338f139b7cb3465f00590e210139e", + "md5": "c6f376b91e330b5e220541aab5edd92f" }, "required_dependencies": [], - "size": 1782275, - "date_published": "2023-12-09T21:19:49.103Z" + "size": 1796600, + "date_published": "2024-08-23T12:53:18.240Z" } ] }, @@ -10848,19 +11327,43 @@ ] }, { - "pakku_id": "yTR90RtnmEyMuFnr", + "pakku_id": "gZs5XcDoMcVHtrQT", "type": "MOD", "side": "CLIENT", "slug": { + "modrinth": "searchables", "curseforge": "searchables" }, "name": { + "modrinth": "Searchables", "curseforge": "Searchables" }, "id": { + "modrinth": "fuuu3xnx", "curseforge": "858542" }, "files": [ + { + "type": "modrinth", + "file_name": "Searchables-forge-1.20.1-1.0.3.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/fuuu3xnx/versions/PM9yAW1G/Searchables-forge-1.20.1-1.0.3.jar", + "id": "PM9yAW1G", + "parent_id": "fuuu3xnx", + "hashes": { + "sha512": "185617d6d446f3d4ef6c7d5c6ee4e2fb731a89f7495157313b21292ec6b8e3dbcc10c0379ab49ecb2d0c64d0a78df74750d7f7336d5e6c43516a7c92f278c0a2", + "sha1": "5b976f6e76ec74cdef21865e31f56bcb11558db7" + }, + "required_dependencies": [], + "size": 77732, + "date_published": "2024-04-23T06:56:56.381361Z" + }, { "type": "curseforge", "file_name": "Searchables-forge-1.20.1-1.0.3.jar", @@ -10982,20 +11485,23 @@ ] }, { - "pakku_id": "mPWICCEoWgyvHKRu", + "pakku_id": "KpzdKnY6YAD1r6O5", + "pakku_links": [ + "t1tp4uchU5FgbL7A" + ], "type": "MOD", "side": "CLIENT", "slug": { - "curseforge": "dynamiclights-reforged", - "modrinth": "sodium-dynamic-lights" + "modrinth": "sodium-dynamic-lights", + "curseforge": "dynamiclights-reforged" }, "name": { - "curseforge": "Sodium/Embeddium Dynamic Lights", - "modrinth": "Sodium Dynamic Lights" + "modrinth": "Sodium Dynamic Lights", + "curseforge": "Sodium/Embeddium Dynamic Lights" }, "id": { - "curseforge": "551736", - "modrinth": "PxQSWIcD" + "modrinth": "PxQSWIcD", + "curseforge": "551736" }, "files": [ { @@ -11024,25 +11530,27 @@ }, { "type": "curseforge", - "file_name": "dynamiclightsreforged-1.20.1_v1.6.0.jar", + "file_name": "sodiumdynamiclights-forge-1.0.10-1.20.1.jar", "mc_versions": [ - "1.20.1" + "1.20.1", + "1.20" ], "loaders": [ - "neoforge", "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/4731/947/dynamiclightsreforged-1.20.1_v1.6.0.jar", - "id": "4731947", + "url": "https://edge.forgecdn.net/files/6044/481/sodiumdynamiclights-forge-1.0.10-1.20.1.jar", + "id": "6044481", "parent_id": "551736", "hashes": { - "sha1": "323498a94ba91e24417c0ae1bc34bb4b461c0a3a", - "md5": "f8f506d864082aa61b3e38d249542f40" + "sha1": "d27524e85bed0f0af83c03be46f9ca3eb02a1be9", + "md5": "687c18cefa558ca8101ef97914d9ba6b" }, - "required_dependencies": [], - "size": 94614, - "date_published": "2023-09-01T06:29:32.573Z" + "required_dependencies": [ + "1103431" + ], + "size": 511601, + "date_published": "2025-01-02T01:22:43.027Z" } ] }, @@ -11190,18 +11698,50 @@ ] }, { - "pakku_id": "oJGHQ159WfLFe4FX", + "pakku_id": "ip59rRTnFCeSEOfS", + "pakku_links": [ + "rGWvsBlQF5Fc28FG", + "kMLNnIpCUuhCjkjE" + ], "type": "MOD", + "side": "BOTH", "slug": { + "modrinth": "sophisticated-backpacks", "curseforge": "sophisticated-backpacks" }, "name": { + "modrinth": "Sophisticated Backpacks", "curseforge": "Sophisticated Backpacks" }, "id": { + "modrinth": "TyCTlI4b", "curseforge": "422301" }, "files": [ + { + "type": "modrinth", + "file_name": "sophisticatedbackpacks-1.20.1-3.23.6.1211.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge", + "neoforge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/TyCTlI4b/versions/8JrTml7x/sophisticatedbackpacks-1.20.1-3.23.6.1211.jar", + "id": "8JrTml7x", + "parent_id": "TyCTlI4b", + "hashes": { + "sha512": "23a7fd927792ac1ddbc6d3429aac7ef404893842be708168d929ac7f73dc160ec7e8be38fa5397c4efc650eb547f05d0fc29a49f16fc198e84d8ea07aace8741", + "sha1": "569878ad7744fb342b2c6a3e11284b0c8162dd60" + }, + "required_dependencies": [ + "nmoqTijg" + ], + "size": 897035, + "date_published": "2025-03-14T15:01:31.550861Z" + }, { "type": "curseforge", "file_name": "sophisticatedbackpacks-1.20.1-3.23.6.1211.jar", @@ -11229,18 +11769,44 @@ ] }, { - "pakku_id": "rGWvsBlQF5Fc28FG", + "pakku_id": "kMLNnIpCUuhCjkjE", "type": "MOD", + "side": "BOTH", "slug": { + "modrinth": "sophisticated-core", "curseforge": "sophisticated-core" }, "name": { + "modrinth": "Sophisticated Core", "curseforge": "Sophisticated Core" }, "id": { + "modrinth": "nmoqTijg", "curseforge": "618298" }, "files": [ + { + "type": "modrinth", + "file_name": "sophisticatedcore-1.20.1-1.2.23.902.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge", + "neoforge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/nmoqTijg/versions/AzoouH2L/sophisticatedcore-1.20.1-1.2.23.902.jar", + "id": "AzoouH2L", + "parent_id": "nmoqTijg", + "hashes": { + "sha512": "d8cc6527b49c963ce4bcaee10afc79387b7b9c99e56185700961c68eb4e28d8f2d2e11c504b09dd296cb3690250eeb6a249bec9f31aa147da22dda57d302a65b", + "sha1": "d037282fd366b709a3dcf90470baf3dea6a44a0f" + }, + "required_dependencies": [], + "size": 1170980, + "date_published": "2025-03-17T21:45:24.895497Z" + }, { "type": "curseforge", "file_name": "sophisticatedcore-1.20.1-1.2.23.902.jar", @@ -11266,19 +11832,43 @@ ] }, { - "pakku_id": "miNW6LK45leMJEgY", + "pakku_id": "YR358HoXW63JCt6e", "type": "MOD", "side": "CLIENT", "slug": { + "modrinth": "sound-physics-remastered", "curseforge": "sound-physics-remastered" }, "name": { + "modrinth": "Sound Physics Remastered", "curseforge": "Sound Physics Remastered" }, "id": { + "modrinth": "qyVF9oeo", "curseforge": "535489" }, "files": [ + { + "type": "modrinth", + "file_name": "sound-physics-remastered-forge-1.20.1-1.4.5.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "beta", + "url": "https://cdn.modrinth.com/data/qyVF9oeo/versions/AGRkYn5p/sound-physics-remastered-forge-1.20.1-1.4.5.jar", + "id": "AGRkYn5p", + "parent_id": "qyVF9oeo", + "hashes": { + "sha512": "c4008e53e87992bfe08fef277426c12e495ed77eadca17149b1a798a026a0372a1ac8e478200794c588452bdead8ea4b8903ad13acb4fcd26043b65bc0d02e43", + "sha1": "3110f2ebf08d512e362c4397388144d8f75a0f7b" + }, + "required_dependencies": [], + "size": 196564, + "date_published": "2024-07-12T07:24:07.691359Z" + }, { "type": "curseforge", "file_name": "sound-physics-remastered-forge-1.20.1-1.4.5.jar", @@ -11431,20 +12021,20 @@ ] }, { - "pakku_id": "zu0Crvp2wYk8qQux", + "pakku_id": "w7z5mj89SVpZaWVs", "type": "MOD", "side": "BOTH", "slug": { - "curseforge": "supermartijn642s-core-lib", - "modrinth": "supermartijn642s-core-lib" + "modrinth": "supermartijn642s-core-lib", + "curseforge": "supermartijn642s-core-lib" }, "name": { - "curseforge": "SuperMartijn642's Core Lib", - "modrinth": "SuperMartijn642's Core Lib" + "modrinth": "SuperMartijn642's Core Lib", + "curseforge": "SuperMartijn642's Core Lib" }, "id": { - "curseforge": "454372", - "modrinth": "rOUBggPv" + "modrinth": "rOUBggPv", + "curseforge": "454372" }, "files": [ { @@ -11471,7 +12061,7 @@ }, { "type": "curseforge", - "file_name": "supermartijn642corelib-1.1.17-forge-mc1.20.1.jar", + "file_name": "supermartijn642corelib-1.1.18-forge-mc1.20.1.jar", "mc_versions": [ "1.20.1", "1.20" @@ -11480,16 +12070,16 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/5102/258/supermartijn642corelib-1.1.17-forge-mc1.20.1.jar", - "id": "5102258", + "url": "https://edge.forgecdn.net/files/6034/718/supermartijn642corelib-1.1.18-forge-mc1.20.1.jar", + "id": "6034718", "parent_id": "454372", "hashes": { - "sha1": "f2c3d1aa0bef8663700b9438f789c15cfd72137d", - "md5": "d1ac18092ea0b1b513edcd8c3999e1bd" + "sha1": "d37e1148b512c67cee704635b4f07d1f9ea8c31c", + "md5": "6559d43627646f16fbe02de085e98d5c" }, "required_dependencies": [], - "size": 512069, - "date_published": "2024-02-12T16:18:57.807Z" + "size": 515362, + "date_published": "2024-12-29T22:15:09.800Z" } ] }, @@ -11531,44 +12121,22 @@ ] }, { - "pakku_id": "4gtgWhFu0zLNFoiE", + "pakku_id": "u4SXwEzPZTFYdxU9", "type": "MOD", "side": "BOTH", "slug": { - "curseforge": "tfc-ambiental-second-edition", - "modrinth": "tfc-ambiental-second-edition" + "modrinth": "tfc-ambiental-second-edition", + "curseforge": "tfc-ambiental-second-edition" }, "name": { - "curseforge": "TFC Ambiental - Second edition", - "modrinth": "TFC Ambiental: Second edition" + "modrinth": "TFC Ambiental: Second edition", + "curseforge": "TFC Ambiental - Second edition" }, "id": { - "curseforge": "940350", - "modrinth": "K7eNiRnX" + "modrinth": "K7eNiRnX", + "curseforge": "940350" }, "files": [ - { - "type": "curseforge", - "file_name": "tfcambiental-1.20.1-3.3.1.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "neoforge", - "forge" - ], - "release_type": "release", - "url": "https://edge.forgecdn.net/files/5655/440/tfcambiental-1.20.1-3.3.1.jar", - "id": "5655440", - "parent_id": "940350", - "hashes": { - "sha1": "0837547febfc05c18e224fd8b3f9ed4eef8eb9de", - "md5": "f057f8e13adacf35c50ae52cf312ee38" - }, - "required_dependencies": [], - "size": 640068, - "date_published": "2024-08-23T09:41:25.543Z" - }, { "type": "modrinth", "file_name": "tfcambiental-1.20.1-3.3.0.jar", @@ -11590,6 +12158,28 @@ "required_dependencies": [], "size": 640033, "date_published": "2024-05-05T01:41:06.190734Z" + }, + { + "type": "curseforge", + "file_name": "tfcambiental-1.20.1-3.3.0.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "neoforge", + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/5313/702/tfcambiental-1.20.1-3.3.0.jar", + "id": "5313702", + "parent_id": "940350", + "hashes": { + "sha1": "e1bc92959d8cbfb1d8f16dc124a14a0709d6aba6", + "md5": "e3a22bddd9fc54081ac5a9ca6bdf1cc7" + }, + "required_dependencies": [], + "size": 640033, + "date_published": "2024-05-03T21:24:47.150Z" } ] }, @@ -11820,20 +12410,23 @@ ] }, { - "pakku_id": "jTFJiriG6OqMgTuz", + "pakku_id": "Ow50cg4XqY9SJlpC", + "pakku_links": [ + "F6H99cZ4H6jZRpEK" + ], "type": "MOD", "side": "BOTH", "slug": { - "curseforge": "tfc-hot-or-not", - "modrinth": "tfc-hot-or-not" + "modrinth": "tfc-hot-or-not", + "curseforge": "tfc-hot-or-not" }, "name": { - "curseforge": "TFC Hot or Not", - "modrinth": "TFC Hot or Not" + "modrinth": "TFC Hot or Not", + "curseforge": "TFC Hot or Not" }, "id": { - "curseforge": "499096", - "modrinth": "6fOyWxrE" + "modrinth": "6fOyWxrE", + "curseforge": "499096" }, "files": [ { @@ -11862,7 +12455,7 @@ }, { "type": "curseforge", - "file_name": "TFCHotOrNot-1.20.1-1.0.4.jar", + "file_name": "TFCHotOrNot-1.20.1-1.0.13.jar", "mc_versions": [ "1.20.1" ], @@ -11871,16 +12464,18 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/5224/988/TFCHotOrNot-1.20.1-1.0.4.jar", - "id": "5224988", + "url": "https://edge.forgecdn.net/files/6047/294/TFCHotOrNot-1.20.1-1.0.13.jar", + "id": "6047294", "parent_id": "499096", "hashes": { - "sha1": "e14da2835e8194aa60ecdb8cfb8b2acab75d4d36", - "md5": "e873757565b7a5f2c73d0ebd7812b4d5" + "sha1": "383507ce61eaa1fe9368915536de8b3685517728", + "md5": "b246317dee8a8789f3cdb13f70cb2391" }, - "required_dependencies": [], - "size": 448456, - "date_published": "2024-03-31T15:46:58.620Z" + "required_dependencies": [ + "302973" + ], + "size": 464173, + "date_published": "2025-01-02T23:13:06.400Z" } ] }, @@ -12032,7 +12627,8 @@ "pakku_links": [ "Wp4bimC12ZfUWRDW", "4gtgWhFu0zLNFoiE", - "F6H99cZ4H6jZRpEK" + "F6H99cZ4H6jZRpEK", + "u4SXwEzPZTFYdxU9" ], "type": "MOD", "side": "BOTH", @@ -12378,7 +12974,7 @@ { "pakku_id": "xiwzCRvkCtCl2GLq", "type": "MOD", - "side": "CLIENT", + "side": "BOTH", "slug": { "curseforge": "tfcgenviewer", "modrinth": "tfcgenviewer" @@ -12510,7 +13106,7 @@ ] }, { - "pakku_id": "3mAI0v5307Nirnd5", + "pakku_id": "2h0D3pYylEr3vTVs", "pakku_links": [ "F6H99cZ4H6jZRpEK", "apqasFnXUkYXZUFj" @@ -12519,43 +13115,40 @@ "side": "BOTH", "slug": { "curseforge": "terrafirmagreg-core", - "modrinth": "terrafirmagreg-core", - "github": "TerraFirmaGreg-Team/Core-Modern" + "modrinth": "terrafirmagreg-core" }, "name": { "curseforge": "TerraFirmaGreg-Core", - "modrinth": "TerraFirmaGreg-Core", - "github": "Core-Modern" + "modrinth": "TerraFirmaGreg-Core" }, "id": { "curseforge": "513402", - "modrinth": "lNttW2Xl", - "github": "668983056" + "modrinth": "lNttW2Xl" }, "files": [ { "type": "curseforge", - "file_name": "TFG-Core-Modern-0.6.0.jar", + "file_name": "TerraFirmaGreg-Core-Modern-0.6.1.jar", "mc_versions": [ "1.20.1" ], "loaders": [ - "neoforge", "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/5853/918/TFG-Core-Modern-0.6.0.jar", - "id": "5853918", + "url": "https://edge.forgecdn.net/files/6424/600/TerraFirmaGreg-Core-Modern-0.6.1.jar", + "id": "6424600", "parent_id": "513402", "hashes": { - "sha1": "9dbf0f12c3447744a9100e404ffea51b798138f3", - "md5": "22d927266923bccd7f7a4a06bd96824a" + "sha1": "5c23bc9e7d5948142b1d45ad8fca91e6a9467bf3", + "md5": "61d52e9c8fe1f38b3b327498c9d37128" }, "required_dependencies": [ - "302973" + "302973", + "890405" ], - "size": 325760, - "date_published": "2024-10-28T14:40:10.317Z" + "size": 241598, + "date_published": "2025-04-15T03:58:23.103Z" }, { "type": "modrinth", @@ -12575,21 +13168,11 @@ "sha1": "5c23bc9e7d5948142b1d45ad8fca91e6a9467bf3" }, "required_dependencies": [ - "7tG215v7", - "JaCEZUhg" + "JaCEZUhg", + "7tG215v7" ], "size": 241598, "date_published": "2025-04-15T03:58:27.227420Z" - }, - { - "type": "github", - "file_name": "TFG-Core-Modern-0.6.0.jar", - "release_type": "release", - "url": "https://github.com/TerraFirmaGreg-Team/Core-Modern/releases/download/0.6.0/TerraFirmaGreg-Core-Modern-0.6.0.jar", - "id": "230462996", - "parent_id": "668983056", - "size": 325760, - "date_published": "2024-10-28T14:40:14Z" } ] }, @@ -12730,20 +13313,20 @@ ] }, { - "pakku_id": "J4nF31dyH7uEbdl5", + "pakku_id": "P26ygLyf3axdY6l8", "type": "MOD", "side": "BOTH", "slug": { - "curseforge": "u-team-core", - "modrinth": "u-team-core" + "modrinth": "u-team-core", + "curseforge": "u-team-core" }, "name": { - "curseforge": "U Team Core", - "modrinth": "U Team Core" + "modrinth": "U Team Core", + "curseforge": "U Team Core" }, "id": { - "curseforge": "273744", - "modrinth": "g2FGQs4R" + "modrinth": "g2FGQs4R", + "curseforge": "273744" }, "files": [ { @@ -12769,7 +13352,7 @@ }, { "type": "curseforge", - "file_name": "u_team_core-forge-1.20.1-5.1.4.312.jar", + "file_name": "u_team_core-forge-1.20.1-5.1.4.346.jar", "mc_versions": [ "1.20.1" ], @@ -12777,34 +13360,34 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/5523/168/u_team_core-forge-1.20.1-5.1.4.312.jar", - "id": "5523168", + "url": "https://edge.forgecdn.net/files/6050/182/u_team_core-forge-1.20.1-5.1.4.346.jar", + "id": "6050182", "parent_id": "273744", "hashes": { - "sha1": "688e67c279c113165bc6ea8fe5b06789d5202227", - "md5": "cb0f6e6d4617b98d5d56be9b4ba96867" + "sha1": "56082ef86ba5513656bf6e555239ad050d07e1df", + "md5": "caa53c17a04f92025d147b8e6556fcd1" }, "required_dependencies": [], - "size": 587610, - "date_published": "2024-07-11T14:10:54.473Z" + "size": 587603, + "date_published": "2025-01-03T19:56:09.753Z" } ] }, { - "pakku_id": "YieRg0J67mnZSA2F", + "pakku_id": "YNN9MQRUOE5bQByi", "type": "MOD", "side": "CLIENT", "slug": { - "curseforge": "unilib", - "modrinth": "unilib" + "modrinth": "unilib", + "curseforge": "unilib" }, "name": { - "curseforge": "UniLib", - "modrinth": "UniLib" + "modrinth": "UniLib", + "curseforge": "UniLib" }, "id": { - "curseforge": "1056812", - "modrinth": "nT86WUER" + "modrinth": "nT86WUER", + "curseforge": "1056812" }, "files": [ { @@ -12832,7 +13415,7 @@ }, { "type": "curseforge", - "file_name": "UniLib-1.0.2+1.20.1-forge.jar", + "file_name": "UniLib-1.0.5+1.20.1-forge.jar", "mc_versions": [ "1.20.1", "1.20" @@ -12842,16 +13425,16 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/5656/688/UniLib-1.0.2+1.20.1-forge.jar", - "id": "5656688", + "url": "https://edge.forgecdn.net/files/6087/784/UniLib-1.0.5+1.20.1-forge.jar", + "id": "6087784", "parent_id": "1056812", "hashes": { - "sha1": "d368058d79a5c206ac9c38e4269a6008b0ccf814", - "md5": "3429c71ea848d3be911ede914374f098" + "sha1": "1ffef0d813d911d44105ea9e63dde970edee018e", + "md5": "a5a75873d8138aa46decbdd733b3c244" }, "required_dependencies": [], - "size": 967088, - "date_published": "2024-08-23T18:23:36.150Z" + "size": 1045910, + "date_published": "2025-01-14T21:30:24.660Z" } ] }, @@ -12984,20 +13567,20 @@ ] }, { - "pakku_id": "2WAorntfIAO5NqBR", + "pakku_id": "bBjUilwaMDGLoB2G", "type": "MOD", "side": "CLIENT", "slug": { - "curseforge": "xaeros-world-map", - "modrinth": "xaeros-world-map" + "modrinth": "xaeros-world-map", + "curseforge": "xaeros-world-map" }, "name": { - "curseforge": "Xaero's World Map", - "modrinth": "Xaero's World Map" + "modrinth": "Xaero's World Map", + "curseforge": "Xaero's World Map" }, "id": { - "curseforge": "317780", - "modrinth": "NcUtCpym" + "modrinth": "NcUtCpym", + "curseforge": "317780" }, "files": [ { @@ -13024,7 +13607,7 @@ }, { "type": "curseforge", - "file_name": "XaerosWorldMap_1.39.0_Forge_1.20.jar", + "file_name": "XaerosWorldMap_1.39.2_Forge_1.20.jar", "mc_versions": [ "1.20.1", "1.20" @@ -13033,16 +13616,16 @@ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/5658/224/XaerosWorldMap_1.39.0_Forge_1.20.jar", - "id": "5658224", + "url": "https://edge.forgecdn.net/files/5987/149/XaerosWorldMap_1.39.2_Forge_1.20.jar", + "id": "5987149", "parent_id": "317780", "hashes": { - "sha1": "33704b6dd2ee6fbf1da0cffcf2001bf7f1c3dea4", - "md5": "56bacc411ba41fbe016e9c53dbc283e6" + "sha1": "75fa377a33128aa0f294b310838032ddd697810f", + "md5": "d052e96d54415b5073acec65ae548245" }, "required_dependencies": [], - "size": 930284, - "date_published": "2024-08-24T07:16:45.560Z" + "size": 931860, + "date_published": "2024-12-13T08:18:53.190Z" } ] }, @@ -13108,20 +13691,20 @@ ] }, { - "pakku_id": "yboEuX1TbDM7Nuo9", + "pakku_id": "0mjbuVeJOxjC3sru", "type": "MOD", "side": "BOTH", "slug": { - "curseforge": "yacl", - "modrinth": "yacl" + "modrinth": "yacl", + "curseforge": "yacl" }, "name": { - "curseforge": "YetAnotherConfigLib", - "modrinth": "YetAnotherConfigLib (YACL)" + "modrinth": "YetAnotherConfigLib (YACL)", + "curseforge": "YetAnotherConfigLib" }, "id": { - "curseforge": "667299", - "modrinth": "1eAoo2KR" + "modrinth": "1eAoo2KR", + "curseforge": "667299" }, "files": [ { @@ -13150,26 +13733,27 @@ }, { "type": "curseforge", - "file_name": "YetAnotherConfigLib-3.5.0+1.20.1-forge.jar", + "file_name": "YetAnotherConfigLib-3.6.2+1.20.1-forge.jar", "mc_versions": [ - "1.20.1" + "1.20.1", + "1.20" ], "loaders": [ "forge" ], "release_type": "release", - "url": "https://edge.forgecdn.net/files/5424/136/YetAnotherConfigLib-3.5.0+1.20.1-forge.jar", - "id": "5424136", + "url": "https://edge.forgecdn.net/files/5963/252/YetAnotherConfigLib-3.6.2+1.20.1-forge.jar", + "id": "5963252", "parent_id": "667299", "hashes": { - "sha1": "e2f450a47ef4d81705175cd18ba36d1782948908", - "md5": "3f5606d396044b5e67229a6fa075fc1c" + "sha1": "044fe3b2bd50d2a00d07bd44a2cbdd677617786e", + "md5": "e8bb7648a2bc6f0108e363f6826f77b8" }, "required_dependencies": [ "306612" ], - "size": 1151778, - "date_published": "2024-06-13T16:08:25.923Z" + "size": 1111897, + "date_published": "2024-12-04T21:02:45.487Z" } ] }, diff --git a/pakku.json b/pakku.json index 04c2a8bc9..7448f7674 100644 --- a/pakku.json +++ b/pakku.json @@ -190,23 +190,35 @@ "dynamiclights-reforged": { "side": "CLIENT" }, - "resourceful-config": { + "rainboows": { "side": "CLIENT" }, + "resourceful-config": { + "side": "BOTH" + }, "resourceful-lib": { - "side": "CLIENT" + "side": "BOTH" }, "enderman-overhaul": { - "side": "CLIENT" + "side": "BOTH" }, "primitive-creatures": { - "side": "CLIENT" + "side": "BOTH" }, "geckolib": { - "side": "CLIENT" + "side": "BOTH" }, "detected-setblock-be-gone": { "side": "CLIENT" + }, + "tfcgenviewer": { + "side": "BOTH" + }, + "tfc-hot-or-not": { + "side": "BOTH" + }, + "particular-reforged": { + "side": "BOTH" } } } \ No newline at end of file