From a22cdf309cede9ce5ac87c776e68ce378d55f231 Mon Sep 17 00:00:00 2001 From: Redeix <59435925+Redeix@users.noreply.github.com> Date: Thu, 17 Apr 2025 23:06:48 -0500 Subject: [PATCH 01/77] Update CHANGELOG.md (#881) Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com> Co-authored-by: Xikaro --- CHANGELOG.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 944dbc7ff..710e3a9dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,19 +1,29 @@ # Changelog -## [Unreleased] +## [0.9.0] - 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 From 91978fff3cf8ac09a35b835061e70fc71262532a Mon Sep 17 00:00:00 2001 From: Nebby <78170922+Nebby1999@users.noreply.github.com> Date: Fri, 18 Apr 2025 01:53:24 -0400 Subject: [PATCH 02/77] Fixed the "look at water" task not working. (#882) --- .../quests/chapters/questsstoneage.snbt | 10 ++- kubejs/assets/tfg/lang/en_us.json | 4 +- .../server_scripts/ftb_quests/CustomQuests.js | 41 ++++++++++++ kubejs/server_scripts/tfg/events.js | 66 +++++++++++-------- 4 files changed, 87 insertions(+), 34 deletions(-) create mode 100644 kubejs/server_scripts/ftb_quests/CustomQuests.js 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/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index 36de34d84..c118df0f4 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -1076,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.", 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/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 From f698706f43c3b1f9deaacfc10eec19d67df59abf Mon Sep 17 00:00:00 2001 From: Xikaro <55663835+Xikaro@users.noreply.github.com> Date: Fri, 18 Apr 2025 14:16:20 +0500 Subject: [PATCH 03/77] Feature: Auto dev environments (#883) Signed-off-by: Xikaro <55663835+Xikaro@users.noreply.github.com> --- .github/workflows/build.yml | 288 ++++++++++++++++++++++-------------- CHANGELOG.md | 3 +- 2 files changed, 175 insertions(+), 116 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index be365a5ad..9fd55bacd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,30 +1,34 @@ name: Project Build -run-name: "Project Build #${{ github.run_number }}" +run-name: "πŸ“¦ Project Build #${{ github.run_number }}" on: push: branches: + - dev - main + - feature/auto-dev-environments 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.pakku_info.outputs.version }} + project_name: ${{ steps.pakku_info.outputs.name }} + project_full_name: ${{ steps.pakku_info.outputs.name }}-${{ steps.pakku_info.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 +83,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 +95,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 +103,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 +115,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 +125,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 }} = 'true' ]; 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_changelog + shell: bash + run: | + if [ ${{ steps.changelog.outcome }} == 'failure' ]; then + echo "version=unreleased" >> $GITHUB_OUTPUT + echo "status=Unreleased" >> $GITHUB_OUTPUT + else + echo "version=${{ steps.changelog.outputs.version }}" >> $GITHUB_OUTPUT + echo "status=${{ steps.changelog.outputs.status }}" >> $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_changelog.outputs.version }}` + πŸ“ƒ **Release Type**: `${{ steps.check_changelog.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 @@ -188,18 +208,20 @@ jobs: - name: πŸ”„ Replace strings shell: bash + if: github.env.DEV_ENVIRONMENT run: | set +e VERSION=${{ needs.info.outputs.project_version }} 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 +256,6 @@ jobs: name: πŸ“¦ Build Server needs: [info] runs-on: ubuntu-latest - if: needs.info.outputs.exists != 'true' steps: - name: Checkout @@ -242,18 +263,20 @@ jobs: - name: πŸ”„ Replace strings shell: bash + if: github.env.DEV_ENVIRONMENT run: | set +e VERSION=${{ needs.info.outputs.project_version }} 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 +300,6 @@ jobs: name: πŸ“¦ Build MultiMC needs: [info] runs-on: ubuntu-latest - if: needs.info.outputs.exists != 'true' steps: - name: Checkout @@ -285,6 +307,7 @@ jobs: - name: πŸ”„ Replace strings shell: bash + if: github.env.DEV_ENVIRONMENT run: | set +e @@ -292,12 +315,13 @@ jobs: 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 +351,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 +364,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 +389,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 +412,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 +420,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 +432,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 +463,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 +535,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 710e3a9dd..cdf0a075e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [0.9.0] - 18.04.2025 +## [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. @@ -25,7 +25,6 @@ - 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 - Added budding crystals for the other gemstone ores (Pyritie). From c7b12a6dcba0f0650ecdf70bafb6778e1bd21e1c Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 14:17:41 +0500 Subject: [PATCH 04/77] Update build.yml --- .github/workflows/build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9fd55bacd..b078e4390 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,7 +5,6 @@ on: branches: - dev - main - - feature/auto-dev-environments concurrency: group: ${{ github.workflow }}-${{ github.ref }} From 258f2f501d59d9cedb7fd8fa19cbd69c43bd935c Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 14:21:55 +0500 Subject: [PATCH 05/77] Update build.yml --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b078e4390..07d1ead4d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ jobs: name: πŸ–₯️ Project Info runs-on: ubuntu-latest outputs: - project_version: ${{ steps.pakku_info.outputs.version }} + project_version: ${{ steps.check_changelog.outputs.version }} project_name: ${{ steps.pakku_info.outputs.name }} project_full_name: ${{ steps.pakku_info.outputs.name }}-${{ steps.pakku_info.outputs.version }} changelog: ${{ steps.changelog.outputs.description }} @@ -166,7 +166,7 @@ jobs: shell: bash run: | if [ ${{ steps.changelog.outcome }} == 'failure' ]; then - echo "version=unreleased" >> $GITHUB_OUTPUT + echo "version=${{ github.run_number }}" >> $GITHUB_OUTPUT echo "status=Unreleased" >> $GITHUB_OUTPUT else echo "version=${{ steps.changelog.outputs.version }}" >> $GITHUB_OUTPUT From 9ce0a9d302325dd8d7b01b532c7ae4fae8d2940f Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 14:25:34 +0500 Subject: [PATCH 06/77] Update build.yml --- .github/workflows/build.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 07d1ead4d..26eb884fd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -165,11 +165,12 @@ jobs: id: check_changelog shell: bash run: | + if [ ${{ steps.check_tag.outputs.exists }} = 'true' ]; then + echo "version=build_#${{ github.run_number }}" >> $GITHUB_OUTPUT + else if [ ${{ steps.changelog.outcome }} == 'failure' ]; then - echo "version=${{ github.run_number }}" >> $GITHUB_OUTPUT echo "status=Unreleased" >> $GITHUB_OUTPUT else - echo "version=${{ steps.changelog.outputs.version }}" >> $GITHUB_OUTPUT echo "status=${{ steps.changelog.outputs.status }}" >> $GITHUB_OUTPUT fi From 18994213a9464db3abc9f5344f0c191e1d08dae8 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 14:26:55 +0500 Subject: [PATCH 07/77] Update build.yml --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 26eb884fd..acca68c03 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -147,7 +147,7 @@ jobs: id: determine_version shell: bash run: | - if [ ${{ steps.check_tag.outputs.exists }} = 'true' ]; then + if [ ${{ steps.check_tag.outputs.exists }} ]; then echo "version=unreleased" >> $GITHUB_OUTPUT else echo "version=${{ steps.pakku_info.outputs.version }}" >> $GITHUB_OUTPUT @@ -165,7 +165,7 @@ jobs: id: check_changelog shell: bash run: | - if [ ${{ steps.check_tag.outputs.exists }} = 'true' ]; then + if [ ${{ steps.check_tag.outputs.exists }} ]; then echo "version=build_#${{ github.run_number }}" >> $GITHUB_OUTPUT else if [ ${{ steps.changelog.outcome }} == 'failure' ]; then From 6306390760d63cbc3f683b8072205a5cec7a73ed Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 14:30:39 +0500 Subject: [PATCH 08/77] Update build.yml --- .github/workflows/build.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index acca68c03..6dc7ad6d8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -167,11 +167,10 @@ jobs: run: | if [ ${{ steps.check_tag.outputs.exists }} ]; then echo "version=build_#${{ github.run_number }}" >> $GITHUB_OUTPUT - else - if [ ${{ steps.changelog.outcome }} == 'failure' ]; then - echo "status=Unreleased" >> $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 From a5fe1d3750494eed543206c2d71eb89033e006ee Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 14:38:35 +0500 Subject: [PATCH 09/77] Update build.yml --- .github/workflows/build.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6dc7ad6d8..5429fef2c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ jobs: name: πŸ–₯️ Project Info runs-on: ubuntu-latest outputs: - project_version: ${{ steps.check_changelog.outputs.version }} + project_version: ${{ steps.check.outputs.version }} project_name: ${{ steps.pakku_info.outputs.name }} project_full_name: ${{ steps.pakku_info.outputs.name }}-${{ steps.pakku_info.outputs.version }} changelog: ${{ steps.changelog.outputs.description }} @@ -162,7 +162,7 @@ jobs: continue-on-error: true - name: πŸ” Check if changelog is empty - id: check_changelog + id: check shell: bash run: | if [ ${{ steps.check_tag.outputs.exists }} ]; then @@ -188,8 +188,8 @@ jobs: with: template: | πŸ“ƒ **Name**: ${{ steps.pakku_info.outputs.name }} - πŸ“ƒ **Release**: `${{ steps.check_changelog.outputs.version }}` - πŸ“ƒ **Release Type**: `${{ steps.check_changelog.outputs.status }}` + πŸ“ƒ **Release**: `${{ steps.check.outputs.version }}` + πŸ“ƒ **Release Type**: `${{ steps.check.outputs.status }}` πŸ“ƒ **Game Version**: `${{ steps.pakku_lock_info.outputs.mc_versions }}` ${{ steps.changelog.outputs.description }} @@ -207,11 +207,11 @@ jobs: - name: πŸ”„ Replace strings shell: bash - if: github.env.DEV_ENVIRONMENT run: | 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 @@ -262,11 +262,11 @@ jobs: - name: πŸ”„ Replace strings shell: bash - if: github.env.DEV_ENVIRONMENT run: | 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 @@ -306,11 +306,11 @@ jobs: - name: πŸ”„ Replace strings shell: bash - if: github.env.DEV_ENVIRONMENT run: | 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 From 27e8140ccbaa9feee0df143e3fa526158b95a42a Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 14:42:37 +0500 Subject: [PATCH 10/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5429fef2c..997458036 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,7 @@ jobs: outputs: project_version: ${{ steps.check.outputs.version }} project_name: ${{ steps.pakku_info.outputs.name }} - project_full_name: ${{ steps.pakku_info.outputs.name }}-${{ steps.pakku_info.outputs.version }} + project_full_name: ${{ steps.pakku_info.outputs.name }}-${{ steps.check.outputs.version }} changelog: ${{ steps.changelog.outputs.description }} diff: ${{ steps.read_diff.outputs.diff }} exists: ${{ steps.check_tag.outputs.exists }} From 189f5aebcec08380d5ea23d72d1513d719083363 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 18 Apr 2025 10:49:56 +0100 Subject: [PATCH 11/77] 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 From 4eade4c034c1bf80c9352d6dce7f302fdc8d6b06 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 15:01:13 +0500 Subject: [PATCH 12/77] pakku --- .github/workflows/build.yml | 6 +++--- CHANGELOG.md | 5 ++++- pakku.json | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 997458036..dccb6b6df 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,7 +11,7 @@ concurrency: cancel-in-progress: true env: - RELEASE_TYPE: "release" + RELEASE_TYPE: "alpha" MINECRAFT_VERSION: "1.20.1" RELEASE_ON_GITHUB: "true" RELEASE_ON_CURSEFORGE: "true" @@ -147,7 +147,7 @@ jobs: id: determine_version shell: bash run: | - if [ ${{ steps.check_tag.outputs.exists }} ]; then + if [ ${{ github.env.DEV_ENVIRONMENT }} ]; then echo "version=unreleased" >> $GITHUB_OUTPUT else echo "version=${{ steps.pakku_info.outputs.version }}" >> $GITHUB_OUTPUT @@ -165,7 +165,7 @@ jobs: id: check shell: bash run: | - if [ ${{ steps.check_tag.outputs.exists }} ]; then + if [ ${{ github.env.DEV_ENVIRONMENT }} ]; then echo "version=build_#${{ github.run_number }}" >> $GITHUB_OUTPUT echo "status=Unreleased" >> $GITHUB_OUTPUT else diff --git a/CHANGELOG.md b/CHANGELOG.md index cdf0a075e..c410ec199 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Changelog -## [Unreleased] - 18.04.2025 +## [Unreleased] +### Changes + +## [0.9.0] - 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. diff --git a/pakku.json b/pakku.json index 7448f7674..4b66815a0 100644 --- a/pakku.json +++ b/pakku.json @@ -1,6 +1,6 @@ { "name": "TerraFirmaGreg-Modern", - "version": "0.7.19", + "version": "0.9.0", "description": "An innovative modpack that contains GregTech and TerraFirmaCraft on 1.20.x.", "author": "Exception, Xikaro", "overrides": [ From 0b2ca7f29e0897013c8bd233f95e23290e99ae4e Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 15:09:49 +0500 Subject: [PATCH 13/77] Update build.yml --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dccb6b6df..cae66261c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -147,7 +147,7 @@ jobs: id: determine_version shell: bash run: | - if [ ${{ github.env.DEV_ENVIRONMENT }} ]; then + if [ ${{ github.env.DEV_ENVIRONMENT == 'true' }} ]; then echo "version=unreleased" >> $GITHUB_OUTPUT else echo "version=${{ steps.pakku_info.outputs.version }}" >> $GITHUB_OUTPUT @@ -165,7 +165,7 @@ jobs: id: check shell: bash run: | - if [ ${{ github.env.DEV_ENVIRONMENT }} ]; then + if [ ${{ github.env.DEV_ENVIRONMENT == 'true' }} ]; then echo "version=build_#${{ github.run_number }}" >> $GITHUB_OUTPUT echo "status=Unreleased" >> $GITHUB_OUTPUT else From 09f9fba6dbe170983586fe9bc820d94551fb4f6e Mon Sep 17 00:00:00 2001 From: Xikaro <55663835+Xikaro@users.noreply.github.com> Date: Fri, 18 Apr 2025 15:21:10 +0500 Subject: [PATCH 14/77] fix: dev environments (#884) 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: Pyritie 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: 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/workflows/build.yml | 6 +++--- CHANGELOG.md | 6 +++++- pakku.json | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 997458036..cae66261c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,7 +11,7 @@ concurrency: cancel-in-progress: true env: - RELEASE_TYPE: "release" + RELEASE_TYPE: "alpha" MINECRAFT_VERSION: "1.20.1" RELEASE_ON_GITHUB: "true" RELEASE_ON_CURSEFORGE: "true" @@ -147,7 +147,7 @@ jobs: id: determine_version shell: bash run: | - if [ ${{ steps.check_tag.outputs.exists }} ]; then + if [ ${{ github.env.DEV_ENVIRONMENT == 'true' }} ]; then echo "version=unreleased" >> $GITHUB_OUTPUT else echo "version=${{ steps.pakku_info.outputs.version }}" >> $GITHUB_OUTPUT @@ -165,7 +165,7 @@ jobs: id: check shell: bash run: | - if [ ${{ steps.check_tag.outputs.exists }} ]; then + if [ ${{ github.env.DEV_ENVIRONMENT == 'true' }} ]; then echo "version=build_#${{ github.run_number }}" >> $GITHUB_OUTPUT echo "status=Unreleased" >> $GITHUB_OUTPUT else diff --git a/CHANGELOG.md b/CHANGELOG.md index cdf0a075e..493dda9dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # Changelog -## [Unreleased] - 18.04.2025 +## [Unreleased] +### Changes + + +## [0.9.0] - 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. diff --git a/pakku.json b/pakku.json index 7448f7674..4b66815a0 100644 --- a/pakku.json +++ b/pakku.json @@ -1,6 +1,6 @@ { "name": "TerraFirmaGreg-Modern", - "version": "0.7.19", + "version": "0.9.0", "description": "An innovative modpack that contains GregTech and TerraFirmaCraft on 1.20.x.", "author": "Exception, Xikaro", "overrides": [ From 171acad7fbedec3dee6f077c997b80f4b7b7440b Mon Sep 17 00:00:00 2001 From: Xikaro <55663835+Xikaro@users.noreply.github.com> Date: Fri, 18 Apr 2025 15:28:50 +0500 Subject: [PATCH 15/77] test (#886) 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: Pyritie 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: 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 From 4e481ab63b4364eda48f0ffc454a80e78e1bfc4a Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 15:41:25 +0500 Subject: [PATCH 16/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cae66261c..ac014899e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,7 +16,7 @@ env: RELEASE_ON_GITHUB: "true" RELEASE_ON_CURSEFORGE: "true" RELEASE_ON_MODRINTH: "false" - DEV_ENVIRONMENT: ${{ github.branch != 'main' }} + DEV_ENVIRONMENT: ${{ github.ref != 'main' }} jobs: info: From c79d00e77ff637f2b49735be0c71060641488bab Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 18 Apr 2025 13:46:59 +0100 Subject: [PATCH 17/77] renamed locometal recipe file to be consistent --- .../gregtech/recipes.materials.js | 4 ++-- kubejs/server_scripts/railways/recipes.js | 2 +- ...tal_integration.js => recipes.locometal.js} | 18 +++++++++--------- 3 files changed, 12 insertions(+), 12 deletions(-) rename kubejs/server_scripts/railways/{gpedia_locometal_integration.js => recipes.locometal.js} (92%) diff --git a/kubejs/server_scripts/gregtech/recipes.materials.js b/kubejs/server_scripts/gregtech/recipes.materials.js index 7f72b3cc4..445ea350a 100644 --- a/kubejs/server_scripts/gregtech/recipes.materials.js +++ b/kubejs/server_scripts/gregtech/recipes.materials.js @@ -291,7 +291,7 @@ function registerGTCEUMetalRecipes(event) { const processNormalRawOre = (tagPrefix, material) => { const normalOreItem = ChemicalHelper.get(tagPrefix, material, 1) - const crushedOreItem = ChemicalHelper.get(TagPrefix.crushed, material, 1) + const crushedOreItem = ChemicalHelper.get(TagPrefix.crushed, material, material.getProperty(PropertyKey.ORE).getOreMultiplier()) if (normalOreItem != null && crushedOreItem != null) { event.recipes.tfc.quern(crushedOreItem, normalOreItem) @@ -301,7 +301,7 @@ function registerGTCEUMetalRecipes(event) { const processRichRawOre = (tagPrefix, material) => { const richOreItem = ChemicalHelper.get(tagPrefix, material, 1) - const crushedOreItem = ChemicalHelper.get(TagPrefix.crushed, material, 2) + const crushedOreItem = ChemicalHelper.get(TagPrefix.crushed, material, material.getProperty(PropertyKey.ORE).getOreMultiplier() * 2) if (richOreItem != null && crushedOreItem != null) { event.recipes.tfc.quern(crushedOreItem, richOreItem) diff --git a/kubejs/server_scripts/railways/recipes.js b/kubejs/server_scripts/railways/recipes.js index 55924e895..68326170b 100644 --- a/kubejs/server_scripts/railways/recipes.js +++ b/kubejs/server_scripts/railways/recipes.js @@ -5,7 +5,7 @@ const registerRailWaysRecipes = (event) => { // Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ² ΠΌΠΎΠ΄Π° railways event.remove({ mod: 'railways' }); - railwaysLocometalIntegration(event) + registerRailwaysLocometalRecipes(event) // Π‘Π΅ΠΌΠ°Ρ„ΠΎΡ€ event.shaped('railways:semaphore', [ diff --git a/kubejs/server_scripts/railways/gpedia_locometal_integration.js b/kubejs/server_scripts/railways/recipes.locometal.js similarity index 92% rename from kubejs/server_scripts/railways/gpedia_locometal_integration.js rename to kubejs/server_scripts/railways/recipes.locometal.js index 6ccac5a9f..a9707b39e 100644 --- a/kubejs/server_scripts/railways/gpedia_locometal_integration.js +++ b/kubejs/server_scripts/railways/recipes.locometal.js @@ -18,13 +18,13 @@ const locometalBase = { flat_riveted_locometal: 'flat_riveted_locometal' } -const railwaysLocometalIntegration = (event) => { +const registerRailwaysLocometalRecipes = (event) => { for (var locometal in locometalBase) { event.recipes.create.cutting(`8x railways:${locometal}`, '#forge:storage_blocks/iron').processingTime(200); event.recipes.create.cutting(`16x railways:${locometal}`, '#forge:storage_blocks/wrought_iron').processingTime(200); event.recipes.create.cutting(`24x railways:${locometal}`, '#forge:storage_blocks/steel').processingTime(200); event.recipes.create.cutting(`railways:${locometal}`, `#railways:palettes/cycle_groups/base`).processingTime(20); - event.recipes.gtceu.chemical_bath(`gpedia:undying/locometal/${locometal}`) + event.recipes.gtceu.chemical_bath(`tfg:undying/locometal/${locometal}`) .itemInputs(Item.of(locometalDyeGroups[`${locometal}`], 1)) .inputFluids(Fluid.of(`gtceu:chlorine`, 18)) .itemOutputs(Item.of(`railways:${locometal}`)) @@ -37,21 +37,21 @@ const railwaysLocometalIntegration = (event) => { event.recipes.create.item_application(`railways:copper_wrapped_locometal`, [`#railways:palettes/cycle_groups/base`, '#forge:plates/copper']); event.recipes.create.item_application(`railways:brass_wrapped_locometal`, [`#railways:palettes/cycle_groups/base`, '#forge:plates/brass']) - event.recipes.gtceu.chemical_bath(`gpedia:undying/brass_wrapped_locometal`) + event.recipes.gtceu.chemical_bath(`tfg:undying/brass_wrapped_locometal`) .itemInputs('#railways:palettes/dye_groups/brass_wrapped_slashed') .inputFluids(Fluid.of(`gtceu:chlorine`, 18)) .itemOutputs(`railways:brass_wrapped_locometal`) .duration(20) .EUt(24) .category(GTRecipeCategories.CHEM_DYES); - event.recipes.gtceu.chemical_bath(`gpedia:undying/copper_wrapped_locometal`) + event.recipes.gtceu.chemical_bath(`tfg: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) .category(GTRecipeCategories.CHEM_DYES); - event.recipes.gtceu.chemical_bath(`gpedia:undying/iron_wrapped_locometal`) + event.recipes.gtceu.chemical_bath(`tfg:undying/iron_wrapped_locometal`) .itemInputs('#railways:palettes/dye_groups/iron_wrapped_slashed') .inputFluids(Fluid.of(`gtceu:chlorine`, 18)) .itemOutputs(`railways:iron_wrapped_locometal`) @@ -89,7 +89,7 @@ const railwaysLocometalIntegration = (event) => { global.MINECRAFT_DYE_NAMES.forEach(dye => { for (var locometal in locometalBase) { - event.recipes.gtceu.chemical_bath(`gpedia:chemical_dying_locometal/${locometal}/${dye}`) + event.recipes.gtceu.chemical_bath(`tfg:chemical_dying_locometal/${locometal}/${dye}`) .itemInputs(Item.of(locometalDyeGroups[`${locometal}`], 1)) .inputFluids(Fluid.of(`tfc:${dye}_dye`, 18)) .itemOutputs(Item.of(`railways:${dye}_${locometal}`)) @@ -101,21 +101,21 @@ const railwaysLocometalIntegration = (event) => { 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}`) + event.recipes.gtceu.chemical_bath(`tfg: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) .category(GTRecipeCategories.CHEM_DYES); - event.recipes.gtceu.chemical_bath(`gpedia:copper_locometal_bathing/${dye}`) + event.recipes.gtceu.chemical_bath(`tfg: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) .category(GTRecipeCategories.CHEM_DYES); - event.recipes.gtceu.chemical_bath(`gpedia:locometal_bathing/${dye}`) + event.recipes.gtceu.chemical_bath(`tfg:locometal_bathing/${dye}`) .itemInputs('#railways:palettes/dye_groups/iron_wrapped_slashed') .inputFluids(Fluid.of(`tfc:${dye}_dye`, 18)) .itemOutputs(`railways:${dye}_iron_wrapped_locometal`) From b5038a935b206c1ceb75a802abc69dc2b412b5f5 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 18 Apr 2025 16:38:52 +0100 Subject: [PATCH 18/77] changed recipe for accumulator so it's available in LV now --- kubejs/server_scripts/create_additions/recipes.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kubejs/server_scripts/create_additions/recipes.js b/kubejs/server_scripts/create_additions/recipes.js index 50503671a..6b1de2743 100644 --- a/kubejs/server_scripts/create_additions/recipes.js +++ b/kubejs/server_scripts/create_additions/recipes.js @@ -44,10 +44,10 @@ const registerCreateAdditionsRecipes = (event) => { // Π‘Π°Ρ‚Π°Ρ€Π΅ΠΉΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ event.recipes.gtceu.assembler('create_additions/battery') - .itemInputs('gtceu:bronze_frame', '6x #forge:plates/bronze', '24x #forge:screws/bronze', '#gtceu:batteries/hv') + .itemInputs('gtceu:bronze_frame', '4x #forge:plates/brass', '8x #forge:screws/bronze', '#gtceu:batteries/hv') .itemOutputs('createaddition:modular_accumulator') .duration(400) - .EUt(512) + .EUt(30) // ΠšΠΎΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ²ΠΎΠ»ΠΊΠ° event.shapeless('4x createaddition:barbed_wire', [ From c7e4c0367676375256075283f0137a24899f9385 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 18 Apr 2025 16:40:19 +0100 Subject: [PATCH 19/77] fixed mattock heads melting into the tfc liquid metals --- kubejs/server_scripts/tfc/recipes.materials.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubejs/server_scripts/tfc/recipes.materials.js b/kubejs/server_scripts/tfc/recipes.materials.js index 9ef8ab5f6..82b09a155 100644 --- a/kubejs/server_scripts/tfc/recipes.materials.js +++ b/kubejs/server_scripts/tfc/recipes.materials.js @@ -586,7 +586,7 @@ function registerTFCMaterialsRecipes(event) { event.recipes.tfc.heating(`rnr:metal/mattock_head/${material.getName()}`, tfcProperty.getMeltTemp()) .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) - .id(`tfc:heating/metal/${material.getName()}_mattock_head`) + .id(`rnr:heating/metal/${material.getName()}_mattock_head`) //#endregion //#region Π’ΠΎΠΏΠΎΡ€ From 6921630c3815f5424d6dc29870f5f5b9152aae55 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 18 Apr 2025 16:46:17 +0100 Subject: [PATCH 20/77] hiding tfc molten metal buckets --- kubejs/startup_scripts/firmalife/constants.js | 2 ++ kubejs/startup_scripts/tfc/constants.js | 24 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/kubejs/startup_scripts/firmalife/constants.js b/kubejs/startup_scripts/firmalife/constants.js index 78c1c3baa..18e0c26ec 100644 --- a/kubejs/startup_scripts/firmalife/constants.js +++ b/kubejs/startup_scripts/firmalife/constants.js @@ -12,6 +12,7 @@ global.FIRMALIFE_DISABLED_ITEMS = [ 'firmalife:metal/sheet/chromium', 'firmalife:metal/double_sheet/chromium', 'firmalife:metal/rod/chromium', + 'firmalife:metal/bucket/chromium', // Stainless Steel 'firmalife:metal/ingot/stainless_steel', @@ -19,6 +20,7 @@ global.FIRMALIFE_DISABLED_ITEMS = [ 'firmalife:metal/sheet/stainless_steel', 'firmalife:metal/double_sheet/stainless_steel', 'firmalife:metal/rod/stainless_steel', + 'firmalife:metal/bucket/stainless_steel', // Other 'firmalife:compost_tumbler' diff --git a/kubejs/startup_scripts/tfc/constants.js b/kubejs/startup_scripts/tfc/constants.js index 95e2ef98d..18ceab785 100644 --- a/kubejs/startup_scripts/tfc/constants.js +++ b/kubejs/startup_scripts/tfc/constants.js @@ -552,7 +552,29 @@ global.TFC_DISABLED_ITEMS = [ 'tfc:hand_wheel', 'tfc:blank_disc', 'tfc:sandpaper', - 'tfc:brass_mechanisms' + 'tfc:brass_mechanisms', + + // Buckets + 'tfc:bucket/metal/bismuth', + 'tfc:bucket/metal/bismuth_bronze', + 'tfc:bucket/metal/black_bronze', + 'tfc:bucket/metal/bronze', + 'tfc:bucket/metal/brass', + 'tfc:bucket/metal/copper', + 'tfc:bucket/metal/gold', + 'tfc:bucket/metal/nickel', + 'tfc:bucket/metal/rose_gold', + 'tfc:bucket/metal/silver', + 'tfc:bucket/metal/tin', + 'tfc:bucket/metal/zinc', + 'tfc:bucket/metal/sterling_silver', + 'tfc:bucket/metal/wrought_iron', + 'tfc:bucket/metal/cast_iron', + 'tfc:bucket/metal/pig_iron', + 'tfc:bucket/metal/steel', + 'tfc:bucket/metal/black_steel', + 'tfc:bucket/metal/blue_steel', + 'tfc:bucket/metal/red_steel' ]; /** From 306a8cb6ac320c0c3bea7b66467b71eaaf5e5005 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 20:49:07 +0500 Subject: [PATCH 21/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ac014899e..3e266b77a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,7 +16,7 @@ env: RELEASE_ON_GITHUB: "true" RELEASE_ON_CURSEFORGE: "true" RELEASE_ON_MODRINTH: "false" - DEV_ENVIRONMENT: ${{ github.ref != 'main' }} + DEV_ENVIRONMENT: ${{ github.ref_name != 'main' }} jobs: info: From 868e0023c5adec07ef55d179e0b7b29b3ef91282 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 18 Apr 2025 17:07:41 +0100 Subject: [PATCH 22/77] added recipes for new digger helmet items --- kubejs/server_scripts/diggerhelmet/recipes.js | 30 +++++++++++++++---- kubejs/server_scripts/diggerhelmet/tags.js | 2 +- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/kubejs/server_scripts/diggerhelmet/recipes.js b/kubejs/server_scripts/diggerhelmet/recipes.js index a66eb7ca0..8abb548d0 100644 --- a/kubejs/server_scripts/diggerhelmet/recipes.js +++ b/kubejs/server_scripts/diggerhelmet/recipes.js @@ -1,19 +1,39 @@ // priority: 0 function registerDiggerHelmetRecipes(event) { - event.remove({ mod: 'diggerhelmet' }) + event.shapeless('diggerhelmet:eternal_candle', ['#minecraft:candles', 'minecraft:glowstone_dust']) + .id('tfg:shapeless/eternal_candle') + event.shaped('diggerhelmet:digger_helmet', [ - ' E ', - 'BA ', + ' A ', + 'EB ', 'DCD' ], { - A: '#minecraft:candles', + A: 'diggerhelmet:eternal_candle', B: '#forge:rings', C: 'minecraft:leather_helmet', D: '#forge:rods/tin', - E: 'minecraft:glowstone_dust' + E: '#forge:tools/hammers' }) .id('tfg:shaped/digger_helmet') + + event.recipes.gtceu.assembler('tfg:mining_speed_modifier') + .itemInputs('#forge:plates/blue_steel', '#gtceu:circuits/lv', '2x tfg:haste_pill') + .inputFluids(Fluid.of('tfcagedalcohol:aged_whiskey', 1000)) + .itemOutputs('diggerhelmet:mining_speed_modifier') + .EUt(16) + .duration(400) + + event.shaped('diggerhelmet:auto_drink_modifier', [ + ' A ', + 'BCB', + 'DCD' + ], { + A: 'waterflasks:leather_flask', + B: '#forge:string', + C: 'minecraft:bamboo', + D: 'tfc:glue' + }).id('tfg:shaped/auto_drink_modifier') } \ No newline at end of file diff --git a/kubejs/server_scripts/diggerhelmet/tags.js b/kubejs/server_scripts/diggerhelmet/tags.js index 6703b0e54..483727141 100644 --- a/kubejs/server_scripts/diggerhelmet/tags.js +++ b/kubejs/server_scripts/diggerhelmet/tags.js @@ -3,7 +3,7 @@ function registerDiggerHelmetItemTags(event) { const DISABLED_ITEMS = [ - 'diggerhelmet:eternal_candle' + 'diggerhelmet:wool_lining' ] DISABLED_ITEMS.forEach(item => { From 6b1a1a1bd5aa485c32b7adc8f0da464baa2e31d1 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 18 Apr 2025 17:08:52 +0100 Subject: [PATCH 23/77] added an alternate recipe for the sophisticated backpacks upgrade template --- .../server_scripts/sophisticated_backpacks/recipes.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/kubejs/server_scripts/sophisticated_backpacks/recipes.js b/kubejs/server_scripts/sophisticated_backpacks/recipes.js index 49a677655..74415dad4 100644 --- a/kubejs/server_scripts/sophisticated_backpacks/recipes.js +++ b/kubejs/server_scripts/sophisticated_backpacks/recipes.js @@ -165,6 +165,17 @@ const registerSophisticatedBackpacksRecipes = (event) => { D: '#forge:plates/steel' }).id('tfg:sophisticated_backpacks/shaped/upgrade_base') + event.shaped('sophisticatedbackpacks:upgrade_base', [ + 'ABA', + 'BCB', + 'ADA' + ], { + A: '#forge:string', + B: '#forge:rods/long/wrought_iron', + C: '#forge:plates/rubber', + D: '#forge:plates/steel' + }).id('tfg:sophisticated_backpacks/shaped/upgrade_base_rubber') + // Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ - ΠΏΠΎΠ΄Π±ΠΈΡ€Π°Ρ‚Π΅Π»ΡŒ event.shaped('sophisticatedbackpacks:pickup_upgrade', [ 'ABA', From a9f485ae73875021276d71b4e19867d4d0f1afab Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 18 Apr 2025 17:10:53 +0100 Subject: [PATCH 24/77] fixed some aircraft recipes that used the wrong wrench tag --- kubejs/server_scripts/immersive_aircraft/recipes.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/kubejs/server_scripts/immersive_aircraft/recipes.js b/kubejs/server_scripts/immersive_aircraft/recipes.js index 88174b734..64977d80f 100644 --- a/kubejs/server_scripts/immersive_aircraft/recipes.js +++ b/kubejs/server_scripts/immersive_aircraft/recipes.js @@ -474,7 +474,7 @@ function registerImmersiveAircraftRecipes(event) { A: '#forge:tools/hammers', B: 'gtceu:black_steel_plate', C: 'immersive_aircraft:hull', - D: '#forge:tools/wrench' + D: '#forge:tools/wrenches' }).id('tfg:immersive_aircraft/shaped/hull_reinforcement'); generateRecyclingRecipe('immersive_aircraft:recycling/hull_reinforcement', @@ -495,7 +495,7 @@ function registerImmersiveAircraftRecipes(event) { A: '#forge:tools/hammers', B: 'gtceu:red_steel_plate', C: 'immersive_aircraft:hull', - D: '#forge:tools/wrench', + D: '#forge:tools/wrenches', E: 'gtceu:blue_steel_plate', F: 'gtceu:red_alloy_dust' }).id('tfg:shaped/redblu_steel_hull_reinforcement'); @@ -522,7 +522,7 @@ function registerImmersiveAircraftRecipes(event) { A: '#forge:tools/hammers', B: 'vintageimprovements:aluminum_sheet', C: 'immersive_aircraft:hull', - D: '#forge:tools/wrench' + D: '#forge:tools/wrenches' }).id('tfg:shaped/aluminium_hull_reinforcement'); generateRecyclingRecipe('tfg:recycling/aluminium_hull_reinforcement', @@ -543,7 +543,7 @@ function registerImmersiveAircraftRecipes(event) { A: '#forge:tools/hammers', B: 'gtceu:stainless_steel_plate', C: 'immersive_aircraft:hull', - D: '#forge:tools/wrench' + D: '#forge:tools/wrenches' }).id('tfg:shaped/stainless_steel_hull_reinforcement'); generateRecyclingRecipe('tfg:recycling/stainless_steel_hull_reinforcement', @@ -564,7 +564,7 @@ function registerImmersiveAircraftRecipes(event) { A: '#forge:tools/hammers', B: 'gtceu:titanium_plate', C: 'immersive_aircraft:hull', - D: '#forge:tools/wrench' + D: '#forge:tools/wrenches' }).id('tfg:shaped/titanium_hull_reinforcement'); generateRecyclingRecipe('tfg:recycling/titanium_hull_reinforcement', From 2020d85c12b8e3fe2bedec03c251fb4b4f1c305e Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 22:34:26 +0500 Subject: [PATCH 25/77] Update build.yml --- .github/workflows/build.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3e266b77a..baff97858 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,6 +40,7 @@ jobs: id: check_pakku_lock shell: bash run: | + echo "${{ github.ref_name }}" if [ ! -f pakku-lock.json ]; then echo "❌ Could not find pakku-lock.json" && exit 1 else @@ -147,7 +148,7 @@ jobs: id: determine_version shell: bash run: | - if [ ${{ github.env.DEV_ENVIRONMENT == 'true' }} ]; then + if [ ${{ github.env.DEV_ENVIRONMENT }} ]; then echo "version=unreleased" >> $GITHUB_OUTPUT else echo "version=${{ steps.pakku_info.outputs.version }}" >> $GITHUB_OUTPUT @@ -165,7 +166,7 @@ jobs: id: check shell: bash run: | - if [ ${{ github.env.DEV_ENVIRONMENT == 'true' }} ]; then + if [ ${{ github.env.DEV_ENVIRONMENT }} || ${{ steps.changelog.outcome }} == 'failure' ]; then echo "version=build_#${{ github.run_number }}" >> $GITHUB_OUTPUT echo "status=Unreleased" >> $GITHUB_OUTPUT else From 13610bb27370bc58aaf7be2de68a9fd871520675 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 22:40:45 +0500 Subject: [PATCH 26/77] Update build.yml --- .github/workflows/build.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index baff97858..2077b2657 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,7 +40,6 @@ jobs: id: check_pakku_lock shell: bash run: | - echo "${{ github.ref_name }}" if [ ! -f pakku-lock.json ]; then echo "❌ Could not find pakku-lock.json" && exit 1 else @@ -170,7 +169,7 @@ jobs: echo "version=build_#${{ github.run_number }}" >> $GITHUB_OUTPUT echo "status=Unreleased" >> $GITHUB_OUTPUT else - echo "status=${{ steps.changelog.outputs.status }}" >> $GITHUB_OUTPUT + echo "status=${{ env.RELEASE_TYPE }}" >> $GITHUB_OUTPUT echo "version=${{ steps.pakku_info.outputs.version }}" >> $GITHUB_OUTPUT fi @@ -215,7 +214,7 @@ jobs: 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 + - name: πŸ“ Cache pakku uses: actions/cache@v4.2.3 id: cache with: @@ -270,7 +269,7 @@ jobs: 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 + - name: πŸ“ Cache pakku uses: actions/cache@v4.2.3 id: cache with: @@ -315,7 +314,7 @@ jobs: 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 + - name: πŸ“ Cache pakku uses: actions/cache@v4.2.3 id: cache with: @@ -351,7 +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 + if: github.env.RELEASE_ON_GITHUB && !github.env.DEV_ENVIRONMENT && needs.info.outputs.exists != 'true' outputs: url: ${{ steps.release.outputs.url }} @@ -420,7 +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 + if: github.env.RELEASE_ON_CURSEFORGE && !github.env.DEV_ENVIRONMENT && needs.info.outputs.exists != 'true' outputs: id: ${{ steps.release.outputs.id }} @@ -470,7 +469,7 @@ jobs: 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 + if: github.env.RELEASE_ON_MODRINTH && !github.env.DEV_ENVIRONMENT && needs.info.outputs.exists != 'true' outputs: id: ${{ steps.release.outputs.id }} From c6ff3936c53f7c7db9196f09fd2866f7ec1322f3 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 22:56:51 +0500 Subject: [PATCH 27/77] Update build.yml --- .github/workflows/build.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2077b2657..766f8da71 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -147,7 +147,7 @@ jobs: id: determine_version shell: bash run: | - if [ ${{ github.env.DEV_ENVIRONMENT }} ]; then + if [ ${{ env.DEV_ENVIRONMENT }} || steps.pakku_info.outputs.version ]; then echo "version=unreleased" >> $GITHUB_OUTPUT else echo "version=${{ steps.pakku_info.outputs.version }}" >> $GITHUB_OUTPUT @@ -165,7 +165,7 @@ jobs: id: check shell: bash run: | - if [ ${{ github.env.DEV_ENVIRONMENT }} || ${{ steps.changelog.outcome }} == 'failure' ]; then + if [ ${{ env.DEV_ENVIRONMENT }} || ${{ steps.changelog.outcome }} == 'failure' ]; then echo "version=build_#${{ github.run_number }}" >> $GITHUB_OUTPUT echo "status=Unreleased" >> $GITHUB_OUTPUT else @@ -192,6 +192,13 @@ jobs: πŸ“ƒ **Release Type**: `${{ steps.check.outputs.status }}` πŸ“ƒ **Game Version**: `${{ steps.pakku_lock_info.outputs.mc_versions }}` + πŸ“ƒ **Dev Environment**: `${{ env.DEV_ENVIRONMENT }}` + πŸ“ƒ **Tag Exists**: `${{ steps.check_tag.outputs.exists }}` + πŸ“ƒ **Release on GitHub**: `${{ env.RELEASE_ON_GITHUB }}` + πŸ“ƒ **Release on CurseForge**: `${{ env.RELEASE_ON_CURSEFORGE }}` + πŸ“ƒ **Release on Modrinth**: `${{ env.RELEASE_ON_MODRINTH }}` + + ${{ steps.changelog.outputs.description }} ${{ steps.format_diff.outputs.text }} From 5b9ee0ce34134c5fa4ebd0ae56683ace03cac9b0 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 23:10:54 +0500 Subject: [PATCH 28/77] Update build.yml --- .github/workflows/build.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 766f8da71..b9f7e1fbb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -194,9 +194,6 @@ jobs: πŸ“ƒ **Dev Environment**: `${{ env.DEV_ENVIRONMENT }}` πŸ“ƒ **Tag Exists**: `${{ steps.check_tag.outputs.exists }}` - πŸ“ƒ **Release on GitHub**: `${{ env.RELEASE_ON_GITHUB }}` - πŸ“ƒ **Release on CurseForge**: `${{ env.RELEASE_ON_CURSEFORGE }}` - πŸ“ƒ **Release on Modrinth**: `${{ env.RELEASE_ON_MODRINTH }}` ${{ steps.changelog.outputs.description }} @@ -357,7 +354,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 != 'true' + if: ${{ github.env.RELEASE_ON_GITHUB && !github.env.DEV_ENVIRONMENT && !needs.info.outputs.exists }} outputs: url: ${{ steps.release.outputs.url }} @@ -426,7 +423,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 != 'true' + if: ${{ github.env.RELEASE_ON_CURSEFORGE && !github.env.DEV_ENVIRONMENT && !needs.info.outputs.exists }} outputs: id: ${{ steps.release.outputs.id }} @@ -476,7 +473,7 @@ jobs: 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 != 'true' + if: ${{ github.env.RELEASE_ON_MODRINTH && !github.env.DEV_ENVIRONMENT && !needs.info.outputs.exists }} outputs: id: ${{ steps.release.outputs.id }} From bab2bdc1ef5d7d5ff39db5338f1fd57a91edab9d Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 23:21:10 +0500 Subject: [PATCH 29/77] Update build.yml --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b9f7e1fbb..4e881baef 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -354,7 +354,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 }} + if: ${{ github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' }} outputs: url: ${{ steps.release.outputs.url }} @@ -423,7 +423,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 }} + if: github.env.RELEASE_ON_CURSEFORGE == 'true' && github.env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' outputs: id: ${{ steps.release.outputs.id }} @@ -473,7 +473,7 @@ jobs: 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 }} + if: ${{ github.env.RELEASE_ON_MODRINTH == 'true' && github.env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' }} outputs: id: ${{ steps.release.outputs.id }} From dacd5a5d24b3f914e09e5c30b01dd743d5e3a969 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 23:26:36 +0500 Subject: [PATCH 30/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4e881baef..f506645d2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -354,7 +354,7 @@ jobs: name: πŸš€ Release to GitHub needs: [info, build-modpack, build-server, build-multimc] runs-on: ubuntu-latest - if: ${{ github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' }} + if: github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' outputs: url: ${{ steps.release.outputs.url }} From b4843700f22e347b08acb5daff1fefd9f7c0078f Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 23:28:37 +0500 Subject: [PATCH 31/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f506645d2..d9d02448a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -354,7 +354,7 @@ jobs: name: πŸš€ Release to GitHub needs: [info, build-modpack, build-server, build-multimc] runs-on: ubuntu-latest - if: github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' + if: github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false' outputs: url: ${{ steps.release.outputs.url }} From ac0408d5a90869e98e6d97af320d76d96630e6e6 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 23:32:10 +0500 Subject: [PATCH 32/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d9d02448a..b9b8d1faa 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -354,7 +354,7 @@ jobs: name: πŸš€ Release to GitHub needs: [info, build-modpack, build-server, build-multimc] runs-on: ubuntu-latest - if: github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false' + if: (github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false') outputs: url: ${{ steps.release.outputs.url }} From db084cca8efc7d89513a834b8eb16ac765338028 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 23:37:22 +0500 Subject: [PATCH 33/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b9b8d1faa..8b18a7cb6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -354,7 +354,7 @@ jobs: name: πŸš€ Release to GitHub needs: [info, build-modpack, build-server, build-multimc] runs-on: ubuntu-latest - if: (github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false') + if: ${{ (github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false') }} outputs: url: ${{ steps.release.outputs.url }} From b3dd4caeeec6d3b6955742c31720c60c8131798c Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 23:43:50 +0500 Subject: [PATCH 34/77] blad --- .github/workflows/build.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8b18a7cb6..54288318a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -350,6 +350,20 @@ jobs: path: .pakku/multimc-overrides/${{ needs.info.outputs.project_full_name }}-multimc.zip if-no-files-found: error + prepare-release: + name: πŸ“¦ Prepare release + needs: [info, build-modpack, build-server, build-multimc] + runs-on: ubuntu-latest + steps: + - name: Debug if conditions + run: | + echo "github.env.DEV_ENVIRONMENT: ${{ github.env.DEV_ENVIRONMENT }}" + echo "github.env.RELEASE_ON_GITHUB: ${{ github.env.RELEASE_ON_GITHUB }}" + echo "needs.info.outputs.exists: ${{ needs.info.outputs.exists }}" + + echo "${{ github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false' }}" + echo "${{ github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' }}" + release-github: name: πŸš€ Release to GitHub needs: [info, build-modpack, build-server, build-multimc] From 442cbe49d15844b3b7bc607b9e0f26954d4236e8 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 23:46:58 +0500 Subject: [PATCH 35/77] Update build.yml --- .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 54288318a..94089e7c9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -357,12 +357,12 @@ jobs: steps: - name: Debug if conditions run: | - echo "github.env.DEV_ENVIRONMENT: ${{ github.env.DEV_ENVIRONMENT }}" - echo "github.env.RELEASE_ON_GITHUB: ${{ github.env.RELEASE_ON_GITHUB }}" + echo "github.env.DEV_ENVIRONMENT: ${{ env.DEV_ENVIRONMENT == 'false' }}" + echo "github.env.RELEASE_ON_GITHUB: ${{ env.RELEASE_ON_GITHUB }}" echo "needs.info.outputs.exists: ${{ needs.info.outputs.exists }}" - echo "${{ github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false' }}" - echo "${{ github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' }}" + echo "${{ env.RELEASE_ON_GITHUB == 'true' && env.DEV_ENVIRONMENT == 'false' }}" + echo "${{ env.RELEASE_ON_GITHUB == 'true' && env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' }}" release-github: name: πŸš€ Release to GitHub From e9e9b6827cf9a20688193308eedbd5764ced4912 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 23:50:27 +0500 Subject: [PATCH 36/77] Update build.yml --- .github/workflows/build.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 94089e7c9..4211e245c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -204,7 +204,7 @@ jobs: name: πŸ“¦ Build Modpack needs: [info] runs-on: ubuntu-latest - + if: false steps: - name: Checkout uses: actions/checkout@v4.2.2 @@ -259,7 +259,7 @@ jobs: name: πŸ“¦ Build Server needs: [info] runs-on: ubuntu-latest - + if: false steps: - name: Checkout uses: actions/checkout@v4.2.2 @@ -303,7 +303,7 @@ jobs: name: πŸ“¦ Build MultiMC needs: [info] runs-on: ubuntu-latest - + if: false steps: - name: Checkout uses: actions/checkout@v4.2.2 @@ -352,8 +352,9 @@ jobs: prepare-release: name: πŸ“¦ Prepare release - needs: [info, build-modpack, build-server, build-multimc] + needs: [info] runs-on: ubuntu-latest + if: ${{ env.RELEASE_ON_GITHUB }} steps: - name: Debug if conditions run: | @@ -368,7 +369,7 @@ jobs: name: πŸš€ Release to GitHub needs: [info, build-modpack, build-server, build-multimc] runs-on: ubuntu-latest - if: ${{ (github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false') }} + if: ${{ env.RELEASE_ON_GITHUB == 'true' && env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' }} outputs: url: ${{ steps.release.outputs.url }} From 5cdf7a712010e8910b4eeabb8a5e45c045efba10 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 23:52:52 +0500 Subject: [PATCH 37/77] Update build.yml --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4211e245c..341d149e8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -354,7 +354,7 @@ jobs: name: πŸ“¦ Prepare release needs: [info] runs-on: ubuntu-latest - if: ${{ env.RELEASE_ON_GITHUB }} + if: ${{ !github.env.DEV_ENVIRONMENT }} steps: - name: Debug if conditions run: | @@ -369,7 +369,7 @@ jobs: name: πŸš€ Release to GitHub needs: [info, build-modpack, build-server, build-multimc] runs-on: ubuntu-latest - if: ${{ env.RELEASE_ON_GITHUB == 'true' && env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' }} + if: ${{ github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' }} outputs: url: ${{ steps.release.outputs.url }} From 7e272cc64ef591f9b42f93dd23ab96f970903c0d Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 23:54:16 +0500 Subject: [PATCH 38/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 341d149e8..9f9dc0b84 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -354,7 +354,7 @@ jobs: name: πŸ“¦ Prepare release needs: [info] runs-on: ubuntu-latest - if: ${{ !github.env.DEV_ENVIRONMENT }} + if: ${{ !github.env.DEV_ENVIRONMENT && github.env.RELEASE_ON_GITHUB }} steps: - name: Debug if conditions run: | From 712daf86302d44a8c3897982ab435848a6816513 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 23:57:25 +0500 Subject: [PATCH 39/77] Update build.yml --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9f9dc0b84..93369bd88 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -354,11 +354,11 @@ jobs: name: πŸ“¦ Prepare release needs: [info] runs-on: ubuntu-latest - if: ${{ !github.env.DEV_ENVIRONMENT && github.env.RELEASE_ON_GITHUB }} + if: ${{ !(github.env.DEV_ENVIRONMENT) && (github.env.RELEASE_ON_GITHUB) }} steps: - name: Debug if conditions run: | - echo "github.env.DEV_ENVIRONMENT: ${{ env.DEV_ENVIRONMENT == 'false' }}" + echo "github.env.DEV_ENVIRONMENT: ${{ github.env.DEV_ENVIRONMENT == 'false' }}" echo "github.env.RELEASE_ON_GITHUB: ${{ env.RELEASE_ON_GITHUB }}" echo "needs.info.outputs.exists: ${{ needs.info.outputs.exists }}" From 7830321e6867253ba0c49a30fc30adfe48177401 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Fri, 18 Apr 2025 23:59:49 +0500 Subject: [PATCH 40/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 93369bd88..9fc143eb2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -354,7 +354,7 @@ jobs: name: πŸ“¦ Prepare release needs: [info] runs-on: ubuntu-latest - if: ${{ !(github.env.DEV_ENVIRONMENT) && (github.env.RELEASE_ON_GITHUB) }} + if: ${{ (!github.env.DEV_ENVIRONMENT) && (github.env.RELEASE_ON_GITHUB) }} steps: - name: Debug if conditions run: | From 03c2efaeee433060c94405dbcaa56c92eaf1e2e4 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 00:00:54 +0500 Subject: [PATCH 41/77] Update build.yml --- .github/workflows/build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9fc143eb2..094aed610 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -354,7 +354,6 @@ jobs: name: πŸ“¦ Prepare release needs: [info] runs-on: ubuntu-latest - if: ${{ (!github.env.DEV_ENVIRONMENT) && (github.env.RELEASE_ON_GITHUB) }} steps: - name: Debug if conditions run: | @@ -362,7 +361,7 @@ jobs: echo "github.env.RELEASE_ON_GITHUB: ${{ env.RELEASE_ON_GITHUB }}" echo "needs.info.outputs.exists: ${{ needs.info.outputs.exists }}" - echo "${{ env.RELEASE_ON_GITHUB == 'true' && env.DEV_ENVIRONMENT == 'false' }}" + echo "${{ (github.env.RELEASE_ON_GITHUB == 'true') && (github.env.DEV_ENVIRONMENT == 'false') }}" echo "${{ env.RELEASE_ON_GITHUB == 'true' && env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' }}" release-github: From a9f647304211e3b9fb7ea0551ba82e74448ee119 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 00:06:33 +0500 Subject: [PATCH 42/77] Update build.yml --- .github/workflows/build.yml | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 094aed610..b11265d6f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,9 +13,6 @@ concurrency: env: RELEASE_TYPE: "alpha" MINECRAFT_VERSION: "1.20.1" - RELEASE_ON_GITHUB: "true" - RELEASE_ON_CURSEFORGE: "true" - RELEASE_ON_MODRINTH: "false" DEV_ENVIRONMENT: ${{ github.ref_name != 'main' }} jobs: @@ -28,7 +25,7 @@ jobs: project_full_name: ${{ steps.pakku_info.outputs.name }}-${{ steps.check.outputs.version }} changelog: ${{ steps.changelog.outputs.description }} diff: ${{ steps.read_diff.outputs.diff }} - exists: ${{ steps.check_tag.outputs.exists }} + exists: ${{ steps.check_tag.outputs.exists && env.DEV_ENVIRONMENT }} steps: - name: Checkout @@ -354,21 +351,21 @@ jobs: name: πŸ“¦ Prepare release needs: [info] runs-on: ubuntu-latest + if: ${{ needs.info.outputs.exists }} steps: - name: Debug if conditions run: | echo "github.env.DEV_ENVIRONMENT: ${{ github.env.DEV_ENVIRONMENT == 'false' }}" - echo "github.env.RELEASE_ON_GITHUB: ${{ env.RELEASE_ON_GITHUB }}" echo "needs.info.outputs.exists: ${{ needs.info.outputs.exists }}" - echo "${{ (github.env.RELEASE_ON_GITHUB == 'true') && (github.env.DEV_ENVIRONMENT == 'false') }}" - echo "${{ env.RELEASE_ON_GITHUB == 'true' && env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' }}" + echo "${{ github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false' }}" + echo "${{ env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' }}" release-github: name: πŸš€ Release to GitHub needs: [info, build-modpack, build-server, build-multimc] runs-on: ubuntu-latest - if: ${{ github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' }} + if: ${{ github.env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' }} outputs: url: ${{ steps.release.outputs.url }} @@ -437,7 +434,7 @@ jobs: name: πŸš€ Release to CurseForge needs: [info, build-modpack, build-server, release-github] runs-on: ubuntu-latest - if: github.env.RELEASE_ON_CURSEFORGE == 'true' && github.env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' + if: github.env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' outputs: id: ${{ steps.release.outputs.id }} @@ -487,7 +484,7 @@ jobs: name: πŸš€ Release to Modrinth needs: [info, build-modpack, build-server, release-github] runs-on: ubuntu-latest - if: ${{ github.env.RELEASE_ON_MODRINTH == 'true' && github.env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' }} + if: false outputs: id: ${{ steps.release.outputs.id }} From 6f85a26a6c875df1817a7646145034e66a41a4e0 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 00:12:39 +0500 Subject: [PATCH 43/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b11265d6f..342791353 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -351,7 +351,7 @@ jobs: name: πŸ“¦ Prepare release needs: [info] runs-on: ubuntu-latest - if: ${{ needs.info.outputs.exists }} + if: ${{ needs.info.outputs.exists == 'true' }} steps: - name: Debug if conditions run: | From 09545c0ce497c46dc6e2de3ee5dd43dc383ca640 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 00:14:59 +0500 Subject: [PATCH 44/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 342791353..c58de7465 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -351,7 +351,7 @@ jobs: name: πŸ“¦ Prepare release needs: [info] runs-on: ubuntu-latest - if: ${{ needs.info.outputs.exists == 'true' }} + if: needs.info.outputs.exists steps: - name: Debug if conditions run: | From 378d36dd488bab7db63d3f75492cfa1ba8b39ea2 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 00:16:21 +0500 Subject: [PATCH 45/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c58de7465..6217ebc5a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -351,7 +351,7 @@ jobs: name: πŸ“¦ Prepare release needs: [info] runs-on: ubuntu-latest - if: needs.info.outputs.exists + if: needs.info.outputs.exists == 'false' steps: - name: Debug if conditions run: | From c6057574bf665437668842733f086fc1f301e0e3 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 00:18:07 +0500 Subject: [PATCH 46/77] Update build.yml --- .github/workflows/build.yml | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6217ebc5a..6342f4b8d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -347,25 +347,11 @@ jobs: path: .pakku/multimc-overrides/${{ needs.info.outputs.project_full_name }}-multimc.zip if-no-files-found: error - prepare-release: - name: πŸ“¦ Prepare release - needs: [info] - runs-on: ubuntu-latest - if: needs.info.outputs.exists == 'false' - steps: - - name: Debug if conditions - run: | - echo "github.env.DEV_ENVIRONMENT: ${{ github.env.DEV_ENVIRONMENT == 'false' }}" - echo "needs.info.outputs.exists: ${{ needs.info.outputs.exists }}" - - echo "${{ github.env.RELEASE_ON_GITHUB == 'true' && github.env.DEV_ENVIRONMENT == 'false' }}" - echo "${{ env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' }}" - release-github: name: πŸš€ Release to GitHub needs: [info, build-modpack, build-server, build-multimc] runs-on: ubuntu-latest - if: ${{ github.env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' }} + if: needs.info.outputs.exists == 'false' outputs: url: ${{ steps.release.outputs.url }} @@ -434,7 +420,7 @@ jobs: name: πŸš€ Release to CurseForge needs: [info, build-modpack, build-server, release-github] runs-on: ubuntu-latest - if: github.env.DEV_ENVIRONMENT == 'false' && needs.info.outputs.exists == 'false' + if: needs.info.outputs.exists == 'false' outputs: id: ${{ steps.release.outputs.id }} From c7ad1ff050b026fd967ecabaa4622190c7c772b1 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 00:21:03 +0500 Subject: [PATCH 47/77] Update build.yml --- .github/workflows/build.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6342f4b8d..739c06741 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -201,7 +201,6 @@ jobs: name: πŸ“¦ Build Modpack needs: [info] runs-on: ubuntu-latest - if: false steps: - name: Checkout uses: actions/checkout@v4.2.2 @@ -256,7 +255,6 @@ jobs: name: πŸ“¦ Build Server needs: [info] runs-on: ubuntu-latest - if: false steps: - name: Checkout uses: actions/checkout@v4.2.2 @@ -300,7 +298,6 @@ jobs: name: πŸ“¦ Build MultiMC needs: [info] runs-on: ubuntu-latest - if: false steps: - name: Checkout uses: actions/checkout@v4.2.2 From b1e30f90b1d0bd84ae7a21b16dcc994437582bfa Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 00:39:45 +0500 Subject: [PATCH 48/77] Update pakku-lock.json --- pakku-lock.json | 61 ------------------------------------------------- 1 file changed, 61 deletions(-) diff --git a/pakku-lock.json b/pakku-lock.json index cd965bf5b..c49405223 100644 --- a/pakku-lock.json +++ b/pakku-lock.json @@ -2220,67 +2220,6 @@ } ] }, - { - "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", From fa22cd98fc47f168e35c4b168016c3c236b6e03e Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 18 Apr 2025 20:51:37 +0100 Subject: [PATCH 49/77] Removed firmalife sprinklers, since now you can put gt pipes through walls --- defaultconfigs/firmalife-server.toml | 2 - kubejs/assets/gtceu/lang/en_us.json | 2 + kubejs/server_scripts/firmalife/recipes.js | 116 +----------------- kubejs/startup_scripts/firmalife/constants.js | 11 +- kubejs/startup_scripts/gtceu/materials.js | 1 + 5 files changed, 17 insertions(+), 115 deletions(-) diff --git a/defaultconfigs/firmalife-server.toml b/defaultconfigs/firmalife-server.toml index 95913fda2..b801f92a7 100644 --- a/defaultconfigs/firmalife-server.toml +++ b/defaultconfigs/firmalife-server.toml @@ -1,6 +1,4 @@ [general] - #If true, the tumbler and the pumping station work magically with a redstone signal and no power required. - mechanicalPowerCheatMode = true #If true, sprinkler will not accept firmalife pipes and will instead require something that exposes a fluid capability, eg. a barrel. usePipesForSprinklers = false diff --git a/kubejs/assets/gtceu/lang/en_us.json b/kubejs/assets/gtceu/lang/en_us.json index 218963003..9f6a25bf3 100644 --- a/kubejs/assets/gtceu/lang/en_us.json +++ b/kubejs/assets/gtceu/lang/en_us.json @@ -5,6 +5,8 @@ "block.gtceu.ender_dome": "Enderarium", "block.gtceu.greenhouse": "Greenhouse", "block.gtceu.steam_bloomery": "Steam Bloomery", + "block.gtceu.copper_crate": "Copper Crate", + "block.gtceu.copper_drum": "Copper Drum", "block.gtceu.black_bronze_crate": "Black Bronze Crate", "block.gtceu.black_bronze_drum": "Black Bronze Drum", "block.gtceu.bismuth_bronze_crate": "Bismuth Bronze Crate", diff --git a/kubejs/server_scripts/firmalife/recipes.js b/kubejs/server_scripts/firmalife/recipes.js index e5f80d51b..42c34488a 100644 --- a/kubejs/server_scripts/firmalife/recipes.js +++ b/kubejs/server_scripts/firmalife/recipes.js @@ -2,36 +2,13 @@ const registerFirmaLifeRecipes = (event) => { - //#region Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ² - - event.remove({ id: 'firmalife:crafting/compost_tumbler' }) - event.remove({ id: 'firmalife:crafting/pumping_station' }) - event.remove({ id: 'firmalife:crafting/pumping_station2' }) - event.remove({ id: 'firmalife:crafting/pumping_station3' }) + global.FIRMALIFE_DISABLED_ITEMS.forEach(item => { + event.remove({ input: item }) + event.remove({ output: item }) + }) // - Chromium - // Ingot - event.remove({ id: 'firmalife:casting/chromium_ingot' }) - event.remove({ id: 'firmalife:casting/chromium_ingot_fire' }) - event.remove({ id: 'firmalife:heating/metal/chromium_ingot' }) - - // Double Ingot - event.remove({ id: 'firmalife:welding/chromium_double_ingot' }) - event.remove({ id: 'firmalife:heating/metal/chromium_double_ingot' }) - - // Sheet - event.remove({ id: 'firmalife:anvil/chromium_sheet' }) - event.remove({ id: 'firmalife:heating/metal/chromium_sheet' }) - - // Double Sheet - event.remove({ id: 'firmalife:welding/chromium_double_sheet' }) - event.remove({ id: 'firmalife:heating/metal/chromium_double_sheet' }) - - // Rod - event.remove({ id: 'firmalife:anvil/chromium_rod' }) - event.remove({ id: 'firmalife:heating/metal/chromium_rod' }) - // Ores event.remove({ id: 'firmalife:heating/ore/small_chromite' }) event.remove({ id: 'firmalife:heating/ore/poor_chromite' }) @@ -49,27 +26,6 @@ const registerFirmaLifeRecipes = (event) => { // - Stainless Steel event.remove({ id: 'firmalife:alloy/stainless_steel' }) - // Ingot - event.remove({ id: 'firmalife:casting/stainless_steel_ingot' }) - event.remove({ id: 'firmalife:casting/stainless_steel_ingot_fire' }) - event.remove({ id: 'firmalife:heating/metal/stainless_steel_ingot' }) - - // Double Ingot - event.remove({ id: 'firmalife:welding/stainless_steel_double_ingot' }) - event.remove({ id: 'firmalife:heating/metal/stainless_steel_double_ingot' }) - - // Sheet - event.remove({ id: 'firmalife:anvil/stainless_steel_sheet' }) - event.remove({ id: 'firmalife:heating/metal/stainless_steel_sheet' }) - - // Double Sheet - event.remove({ id: 'firmalife:welding/stainless_steel_double_sheet' }) - event.remove({ id: 'firmalife:heating/metal/stainless_steel_double_sheet' }) - - // Rod - event.remove({ id: 'firmalife:anvil/stainless_steel_rod' }) - event.remove({ id: 'firmalife:heating/stainless_steel_rod' }) - // Jar lid event.remove({ id: 'firmalife:heating/stainless_steel_jar_lid' }) @@ -176,48 +132,6 @@ const registerFirmaLifeRecipes = (event) => { //#region МСдная - event.shaped('firmalife:pumping_station', - [ - ' B ', - 'ACA', - ' D ' - ], { - A: 'firmalife:copper_pipe', - B: '#forge:plates/bronze', - C: '#tfc:barrels', - D: 'create:mechanical_pump' - }).id('tfg:shaped/pumping_station') - - event.shaped('firmalife:pumping_station', - [ - ' B ', - 'ACA', - ' D ' - ], { - A: 'firmalife:copper_pipe', - B: '#forge:plates/black_bronze', - C: '#tfc:barrels', - D: 'create:mechanical_pump' - }).id('tfg:shaped/pumping_station2') - - event.shaped('firmalife:pumping_station', - [ - ' B ', - 'ACA', - ' D ' - ], { - A: 'firmalife:copper_pipe', - B: '#forge:plates/bismuth_bronze', - C: '#tfc:barrels', - D: 'create:mechanical_pump' - }).id('tfg:shaped/pumping_station3') - - event.recipes.gtceu.bender('tfg:firmalife/copper_pipe') - .itemInputs('#forge:plates/copper') - .itemOutputs('8x firmalife:copper_pipe') - .circuit(3) - .duration(40) - .EUt(8) event.recipes.gtceu.bender('tfg:firmalife/sprinkler') .itemInputs('#forge:plates/copper') @@ -294,17 +208,6 @@ const registerFirmaLifeRecipes = (event) => { B: 'minecraft:glass' }).id('firmalife:crafting/greenhouse/copper_greenhouse_door') - // ΠŸΠΎΡ€Ρ‚ - event.shaped('firmalife:copper_greenhouse_port', [ - 'AA', - 'BC', - 'AA' - ], { - A: 'firmalife:reinforced_glass', - B: '#forge:rods/copper', - C: 'firmalife:copper_pipe' - }).id('firmalife:crafting/greenhouse/copper_greenhouse_port') - //#endregion //#region ЖСлСзная @@ -377,17 +280,6 @@ const registerFirmaLifeRecipes = (event) => { B: 'minecraft:glass' }).id('firmalife:crafting/greenhouse/iron_greenhouse_door') - // ΠŸΠΎΡ€Ρ‚ - event.shaped('firmalife:iron_greenhouse_port', [ - 'AA', - 'BC', - 'AA' - ], { - A: 'firmalife:reinforced_glass', - B: '#forge:rods/wrought_iron', - C: 'firmalife:copper_pipe' - }).id('firmalife:crafting/greenhouse/iron_greenhouse_port') - //#endregion //#region ΠΠ΅Ρ€ΠΆΠ°Π²Π΅ΡŽΡ‰Π°Ρ Ρ‚Π΅ΠΏΠ»ΠΈΡ†Π° diff --git a/kubejs/startup_scripts/firmalife/constants.js b/kubejs/startup_scripts/firmalife/constants.js index 18e0c26ec..8ff43704b 100644 --- a/kubejs/startup_scripts/firmalife/constants.js +++ b/kubejs/startup_scripts/firmalife/constants.js @@ -23,7 +23,16 @@ global.FIRMALIFE_DISABLED_ITEMS = [ 'firmalife:metal/bucket/stainless_steel', // Other - 'firmalife:compost_tumbler' + 'firmalife:compost_tumbler', + + // Greenhouse shit + 'firmalife:pumping_station', + 'firmalife:copper_pipe', + 'firmalife:oxidized_copper_pipe', + 'firmalife:irrigation_tank', + 'firmalife:iron_greenhouse_port', + 'firmalife:copper_greenhouse_port', + 'firmalife:treated_wood_greenhouse_port' ]; global.FIRMALIFE_HIDED_ITEMS = [ diff --git a/kubejs/startup_scripts/gtceu/materials.js b/kubejs/startup_scripts/gtceu/materials.js index e8105d667..7443de9ce 100644 --- a/kubejs/startup_scripts/gtceu/materials.js +++ b/kubejs/startup_scripts/gtceu/materials.js @@ -179,6 +179,7 @@ const registerGTCEuMaterialModification = (event) => { GTMaterials.CertusQuartz.addFlags(GENERATE_ROD); GTMaterials.NetherQuartz.addFlags(GENERATE_ROD); + GTMaterials.Copper.addFlags(GENERATE_FRAME); GTMaterials.BlackBronze.addFlags(GENERATE_FRAME); GTMaterials.BismuthBronze.addFlags(GENERATE_FRAME); From 0f89253e8d8101b8b747cb3f2545c1750a52c672 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 01:11:35 +0500 Subject: [PATCH 50/77] Update build.yml --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 739c06741..228405b6d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,7 @@ jobs: project_full_name: ${{ steps.pakku_info.outputs.name }}-${{ steps.check.outputs.version }} changelog: ${{ steps.changelog.outputs.description }} diff: ${{ steps.read_diff.outputs.diff }} - exists: ${{ steps.check_tag.outputs.exists && env.DEV_ENVIRONMENT }} + release_exists: ${{ steps.check_tag.outputs.exists == 'true' && env.DEV_ENVIRONMENT == 'false' }} steps: - name: Checkout @@ -348,7 +348,7 @@ jobs: name: πŸš€ Release to GitHub needs: [info, build-modpack, build-server, build-multimc] runs-on: ubuntu-latest - if: needs.info.outputs.exists == 'false' + if: needs.info.outputs.release_exists == 'false' outputs: url: ${{ steps.release.outputs.url }} @@ -417,7 +417,7 @@ jobs: name: πŸš€ Release to CurseForge needs: [info, build-modpack, build-server, release-github] runs-on: ubuntu-latest - if: needs.info.outputs.exists == 'false' + if: needs.info.outputs.release_exists == 'false' outputs: id: ${{ steps.release.outputs.id }} From 9a85dd17d37fd07fab0b74f8be3e2ae79e9d02ae Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 01:15:26 +0500 Subject: [PATCH 51/77] 0.9.1 --- CHANGELOG.md | 3 +++ pakku.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 493dda9dd..0535a771f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,9 @@ ## [Unreleased] ### Changes +## [0.9.1] - 18.04.2025 +### Changes +- Manifest fix. ## [0.9.0] - 18.04.2025 ### Warning for upgrading your world diff --git a/pakku.json b/pakku.json index 4b66815a0..796b3396b 100644 --- a/pakku.json +++ b/pakku.json @@ -1,6 +1,6 @@ { "name": "TerraFirmaGreg-Modern", - "version": "0.9.0", + "version": "0.9.1", "description": "An innovative modpack that contains GregTech and TerraFirmaCraft on 1.20.x.", "author": "Exception, Xikaro", "overrides": [ From c88109ee7fd1ce9c8cbc55bfe3d9848c7f7173da Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 01:26:46 +0500 Subject: [PATCH 52/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 228405b6d..2ce9b768d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,7 @@ jobs: project_full_name: ${{ steps.pakku_info.outputs.name }}-${{ steps.check.outputs.version }} changelog: ${{ steps.changelog.outputs.description }} diff: ${{ steps.read_diff.outputs.diff }} - release_exists: ${{ steps.check_tag.outputs.exists == 'true' && env.DEV_ENVIRONMENT == 'false' }} + release_exists: ${{ steps.check_tag.outputs.exists == 'true' && github.env.DEV_ENVIRONMENT == 'false' }} steps: - name: Checkout From efe2e4b5897b39a9cf9739055a3d44614c33bc6e Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 01:30:04 +0500 Subject: [PATCH 53/77] Update build.yml --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2ce9b768d..44cd69b5a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,7 @@ jobs: project_full_name: ${{ steps.pakku_info.outputs.name }}-${{ steps.check.outputs.version }} changelog: ${{ steps.changelog.outputs.description }} diff: ${{ steps.read_diff.outputs.diff }} - release_exists: ${{ steps.check_tag.outputs.exists == 'true' && github.env.DEV_ENVIRONMENT == 'false' }} + release_exists: ${{ steps.check_tag.outputs.exists && github.env.DEV_ENVIRONMENT }} steps: - name: Checkout @@ -348,7 +348,7 @@ jobs: name: πŸš€ Release to GitHub needs: [info, build-modpack, build-server, build-multimc] runs-on: ubuntu-latest - if: needs.info.outputs.release_exists == 'false' + if: ${{ needs.info.outputs.release_exists == 'false'}} outputs: url: ${{ steps.release.outputs.url }} @@ -417,7 +417,7 @@ jobs: name: πŸš€ Release to CurseForge needs: [info, build-modpack, build-server, release-github] runs-on: ubuntu-latest - if: needs.info.outputs.release_exists == 'false' + if: ${{ needs.info.outputs.release_exists == 'false'}} outputs: id: ${{ steps.release.outputs.id }} From 1ea15a961bc2d213546b6e263e873539838bde5d Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 01:32:11 +0500 Subject: [PATCH 54/77] Update build.yml --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 228405b6d..44cd69b5a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,7 @@ jobs: project_full_name: ${{ steps.pakku_info.outputs.name }}-${{ steps.check.outputs.version }} changelog: ${{ steps.changelog.outputs.description }} diff: ${{ steps.read_diff.outputs.diff }} - release_exists: ${{ steps.check_tag.outputs.exists == 'true' && env.DEV_ENVIRONMENT == 'false' }} + release_exists: ${{ steps.check_tag.outputs.exists && github.env.DEV_ENVIRONMENT }} steps: - name: Checkout @@ -348,7 +348,7 @@ jobs: name: πŸš€ Release to GitHub needs: [info, build-modpack, build-server, build-multimc] runs-on: ubuntu-latest - if: needs.info.outputs.release_exists == 'false' + if: ${{ needs.info.outputs.release_exists == 'false'}} outputs: url: ${{ steps.release.outputs.url }} @@ -417,7 +417,7 @@ jobs: name: πŸš€ Release to CurseForge needs: [info, build-modpack, build-server, release-github] runs-on: ubuntu-latest - if: needs.info.outputs.release_exists == 'false' + if: ${{ needs.info.outputs.release_exists == 'false'}} outputs: id: ${{ steps.release.outputs.id }} From dc8adedfaf684da0f722e4fe11d428aedc9a79bc Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 01:34:11 +0500 Subject: [PATCH 55/77] test --- CHANGELOG.md | 2 +- pakku.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0535a771f..5f3ce408e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [Unreleased] +## [0.9.2] ### Changes ## [0.9.1] - 18.04.2025 diff --git a/pakku.json b/pakku.json index 796b3396b..681652810 100644 --- a/pakku.json +++ b/pakku.json @@ -1,6 +1,6 @@ { "name": "TerraFirmaGreg-Modern", - "version": "0.9.1", + "version": "0.9.2", "description": "An innovative modpack that contains GregTech and TerraFirmaCraft on 1.20.x.", "author": "Exception, Xikaro", "overrides": [ From 6b8cfb63f944d5642173ba64c16fd8678e34af59 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 01:42:27 +0500 Subject: [PATCH 56/77] Update build.yml --- .github/workflows/build.yml | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 44cd69b5a..14542017d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,6 +25,7 @@ jobs: project_full_name: ${{ steps.pakku_info.outputs.name }}-${{ steps.check.outputs.version }} changelog: ${{ steps.changelog.outputs.description }} diff: ${{ steps.read_diff.outputs.diff }} + exists: ${{ steps.check_tag.outputs.exists }} release_exists: ${{ steps.check_tag.outputs.exists && github.env.DEV_ENVIRONMENT }} steps: @@ -205,6 +206,19 @@ jobs: - name: Checkout uses: actions/checkout@v4.2.2 + - name: Debug + shell: bash + run: | + echo "Debugging..." + echo "Project Version: ${{ needs.info.outputs.project_version }}" + echo "Project Name: ${{ needs.info.outputs.project_name }}" + echo "Project Full Name: ${{ needs.info.outputs.project_full_name }}" + echo "Changelog: ${{ needs.info.outputs.changelog }}" + echo "Diff: ${{ needs.info.outputs.diff }}" + echo "Exists: ${{ needs.info.outputs.exists }}" + echo "Release Exists: ${{ needs.info.outputs.release_exists }}" + echo "Dev Environment: ${{ env.DEV_ENVIRONMENT }}" + - name: πŸ”„ Replace strings shell: bash run: | @@ -348,7 +362,7 @@ jobs: name: πŸš€ Release to GitHub needs: [info, build-modpack, build-server, build-multimc] runs-on: ubuntu-latest - if: ${{ needs.info.outputs.release_exists == 'false'}} + if: needs.info.outputs.release_exists == 'false' outputs: url: ${{ steps.release.outputs.url }} @@ -417,7 +431,7 @@ jobs: name: πŸš€ Release to CurseForge needs: [info, build-modpack, build-server, release-github] runs-on: ubuntu-latest - if: ${{ needs.info.outputs.release_exists == 'false'}} + if: needs.info.outputs.release_exists == 'false' outputs: id: ${{ steps.release.outputs.id }} From 692d0a444c9b2feb6e8ae05f71b9d55d9cdbfbea Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 01:48:33 +0500 Subject: [PATCH 57/77] Update build.yml --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 14542017d..3e42579f5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,7 +26,7 @@ jobs: changelog: ${{ steps.changelog.outputs.description }} diff: ${{ steps.read_diff.outputs.diff }} exists: ${{ steps.check_tag.outputs.exists }} - release_exists: ${{ steps.check_tag.outputs.exists && github.env.DEV_ENVIRONMENT }} + release_exists: ${{ steps.check_tag.outputs.exists && env.DEV_ENVIRONMENT }} steps: - name: Checkout @@ -192,6 +192,7 @@ jobs: πŸ“ƒ **Dev Environment**: `${{ env.DEV_ENVIRONMENT }}` πŸ“ƒ **Tag Exists**: `${{ steps.check_tag.outputs.exists }}` + πŸ“ƒ **A release will be made**: `${{ steps.check_tag.outputs.exists == 'true' && env.DEV_ENVIRONMENT == 'false' }}` ${{ steps.changelog.outputs.description }} From 0a4109055a3d1f52f9faaef99dc2276fc0b5371b Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 01:50:54 +0500 Subject: [PATCH 58/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3e42579f5..42762451d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -192,7 +192,7 @@ jobs: πŸ“ƒ **Dev Environment**: `${{ env.DEV_ENVIRONMENT }}` πŸ“ƒ **Tag Exists**: `${{ steps.check_tag.outputs.exists }}` - πŸ“ƒ **A release will be made**: `${{ steps.check_tag.outputs.exists == 'true' && env.DEV_ENVIRONMENT == 'false' }}` + πŸ“ƒ **A release will be made**: `${{ steps.check_tag.outputs.exists && env.DEV_ENVIRONMENT }}` ${{ steps.changelog.outputs.description }} From 31adef602cbc4c9b5c980e005d6505dcabe76f47 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 01:57:34 +0500 Subject: [PATCH 59/77] Update build.yml --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 42762451d..a985fe852 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,7 +26,7 @@ jobs: changelog: ${{ steps.changelog.outputs.description }} diff: ${{ steps.read_diff.outputs.diff }} exists: ${{ steps.check_tag.outputs.exists }} - release_exists: ${{ steps.check_tag.outputs.exists && env.DEV_ENVIRONMENT }} + release_exists: ${{ steps.check_tag.outputs.exists == 'false' && env.DEV_ENVIRONMENT }} steps: - name: Checkout @@ -192,7 +192,7 @@ jobs: πŸ“ƒ **Dev Environment**: `${{ env.DEV_ENVIRONMENT }}` πŸ“ƒ **Tag Exists**: `${{ steps.check_tag.outputs.exists }}` - πŸ“ƒ **A release will be made**: `${{ steps.check_tag.outputs.exists && env.DEV_ENVIRONMENT }}` + πŸ“ƒ **A release will be made**: `${{ steps.check_tag.outputs.exists == 'false' && env.DEV_ENVIRONMENT }}` ${{ steps.changelog.outputs.description }} From 54534abaadb8f10827a27103ec262ead8cb78990 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 02:16:56 +0500 Subject: [PATCH 60/77] Update build.yml --- .github/workflows/build.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a985fe852..6e45e6b03 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,7 +26,7 @@ jobs: changelog: ${{ steps.changelog.outputs.description }} diff: ${{ steps.read_diff.outputs.diff }} exists: ${{ steps.check_tag.outputs.exists }} - release_exists: ${{ steps.check_tag.outputs.exists == 'false' && env.DEV_ENVIRONMENT }} + make_release: ${{ steps.check_tag.outputs.exists == 'false' && env.DEV_ENVIRONMENT == 'false' }} steps: - name: Checkout @@ -192,7 +192,7 @@ jobs: πŸ“ƒ **Dev Environment**: `${{ env.DEV_ENVIRONMENT }}` πŸ“ƒ **Tag Exists**: `${{ steps.check_tag.outputs.exists }}` - πŸ“ƒ **A release will be made**: `${{ steps.check_tag.outputs.exists == 'false' && env.DEV_ENVIRONMENT }}` + πŸ“ƒ **Make Release**: `${{ steps.check_tag.outputs.exists == 'false' && env.DEV_ENVIRONMENT == 'false' }}` ${{ steps.changelog.outputs.description }} @@ -214,10 +214,8 @@ jobs: echo "Project Version: ${{ needs.info.outputs.project_version }}" echo "Project Name: ${{ needs.info.outputs.project_name }}" echo "Project Full Name: ${{ needs.info.outputs.project_full_name }}" - echo "Changelog: ${{ needs.info.outputs.changelog }}" - echo "Diff: ${{ needs.info.outputs.diff }}" echo "Exists: ${{ needs.info.outputs.exists }}" - echo "Release Exists: ${{ needs.info.outputs.release_exists }}" + echo "Release Exists: ${{ needs.info.outputs.make_release }}" echo "Dev Environment: ${{ env.DEV_ENVIRONMENT }}" - name: πŸ”„ Replace strings @@ -363,7 +361,7 @@ jobs: name: πŸš€ Release to GitHub needs: [info, build-modpack, build-server, build-multimc] runs-on: ubuntu-latest - if: needs.info.outputs.release_exists == 'false' + if: ${{ needs.info.outputs.make_release }} outputs: url: ${{ steps.release.outputs.url }} @@ -432,7 +430,7 @@ jobs: name: πŸš€ Release to CurseForge needs: [info, build-modpack, build-server, release-github] runs-on: ubuntu-latest - if: needs.info.outputs.release_exists == 'false' + if: ${{ needs.info.outputs.make_release }} outputs: id: ${{ steps.release.outputs.id }} From 5ad9f0e5e2245f374431ca9c603ef79424315116 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 02:23:40 +0500 Subject: [PATCH 61/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6e45e6b03..14b54a1fc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -361,7 +361,7 @@ jobs: name: πŸš€ Release to GitHub needs: [info, build-modpack, build-server, build-multimc] runs-on: ubuntu-latest - if: ${{ needs.info.outputs.make_release }} + if: ${{ needs.info.outputs.make_release == 'true' }} outputs: url: ${{ steps.release.outputs.url }} From 2d11eb7aee99d1e6e496ca056fde2a0db1e3ff77 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 02:30:08 +0500 Subject: [PATCH 62/77] Update build.yml --- .github/workflows/build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 14b54a1fc..edd8d805f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -415,6 +415,7 @@ jobs: with: name: ${{ needs.info.outputs.project_version }} tag_name: ${{ needs.info.outputs.project_version }} + target_commitish: ${{ github.ref_name }} body: | ${{ needs.info.outputs.changelog }} ${{ steps.format_diff.outputs.text }} @@ -430,7 +431,7 @@ jobs: name: πŸš€ Release to CurseForge needs: [info, build-modpack, build-server, release-github] runs-on: ubuntu-latest - if: ${{ needs.info.outputs.make_release }} + if: false outputs: id: ${{ steps.release.outputs.id }} @@ -528,6 +529,7 @@ jobs: name: πŸ“± Discord Message needs: [info, release-curseforge, release-github] runs-on: ubuntu-latest + if: false steps: - name: βœ‚οΈ Truncate Changelog id: truncated From 9c44e6298deac4a8ae7e6f77af34ce154c2119d6 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 02:34:25 +0500 Subject: [PATCH 63/77] final --- .github/workflows/build.yml | 14 +------------- CHANGELOG.md | 2 +- pakku.json | 2 +- 3 files changed, 3 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index edd8d805f..430acffc7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -207,17 +207,6 @@ jobs: - name: Checkout uses: actions/checkout@v4.2.2 - - name: Debug - shell: bash - run: | - echo "Debugging..." - echo "Project Version: ${{ needs.info.outputs.project_version }}" - echo "Project Name: ${{ needs.info.outputs.project_name }}" - echo "Project Full Name: ${{ needs.info.outputs.project_full_name }}" - echo "Exists: ${{ needs.info.outputs.exists }}" - echo "Release Exists: ${{ needs.info.outputs.make_release }}" - echo "Dev Environment: ${{ env.DEV_ENVIRONMENT }}" - - name: πŸ”„ Replace strings shell: bash run: | @@ -431,7 +420,7 @@ jobs: name: πŸš€ Release to CurseForge needs: [info, build-modpack, build-server, release-github] runs-on: ubuntu-latest - if: false + if: ${{ needs.info.outputs.make_release == 'true' }} outputs: id: ${{ steps.release.outputs.id }} @@ -529,7 +518,6 @@ jobs: name: πŸ“± Discord Message needs: [info, release-curseforge, release-github] runs-on: ubuntu-latest - if: false steps: - name: βœ‚οΈ Truncate Changelog id: truncated diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f3ce408e..0535a771f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [0.9.2] +## [Unreleased] ### Changes ## [0.9.1] - 18.04.2025 diff --git a/pakku.json b/pakku.json index 681652810..796b3396b 100644 --- a/pakku.json +++ b/pakku.json @@ -1,6 +1,6 @@ { "name": "TerraFirmaGreg-Modern", - "version": "0.9.2", + "version": "0.9.1", "description": "An innovative modpack that contains GregTech and TerraFirmaCraft on 1.20.x.", "author": "Exception, Xikaro", "overrides": [ From 6638cba2d2250d7548e54071caa55b64b49f5ea0 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 02:45:22 +0500 Subject: [PATCH 64/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 430acffc7..f43bed2e6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -145,7 +145,7 @@ jobs: id: determine_version shell: bash run: | - if [ ${{ env.DEV_ENVIRONMENT }} || steps.pakku_info.outputs.version ]; then + if [ ${{ env.DEV_ENVIRONMENT }} ]; then echo "version=unreleased" >> $GITHUB_OUTPUT else echo "version=${{ steps.pakku_info.outputs.version }}" >> $GITHUB_OUTPUT From 4ad2cd13cb853e31ccd58043a2a91d009447939b Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 02:51:23 +0500 Subject: [PATCH 65/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f43bed2e6..9384085b8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -163,7 +163,7 @@ jobs: id: check shell: bash run: | - if [ ${{ env.DEV_ENVIRONMENT }} || ${{ steps.changelog.outcome }} == 'failure' ]; then + if [ ${{ env.DEV_ENVIRONMENT || steps.changelog.outcome == 'failure' }} ]; then echo "version=build_#${{ github.run_number }}" >> $GITHUB_OUTPUT echo "status=Unreleased" >> $GITHUB_OUTPUT else From 9346dd97147dd6a0b5795d01aa09f135a2450836 Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 03:48:29 +0500 Subject: [PATCH 66/77] fix mmc --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9384085b8..3685397d7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -334,7 +334,7 @@ jobs: mkdir -p .pakku/multimc-overrides/flame mv -vf ./build/.cache/curseforge/manifest.json .pakku/multimc-overrides/flame/manifest.json mv -vf ./build/.cache/curseforge/overrides .pakku/multimc-overrides/.minecraft - mv -vf ./mods .pakku/multimc-overrides/.minecraft/mods + mv -vf ./mods .pakku/multimc-overrides/.minecraft cd .pakku/multimc-overrides/ zip -r ${{ needs.info.outputs.project_full_name }}-multimc.zip icon.png mmc-pack.json instance.cfg .minecraft/ flame/ From b5244df636fb575ab28ab20427fac82137d47f0e Mon Sep 17 00:00:00 2001 From: Xikaro Date: Sat, 19 Apr 2025 03:52:26 +0500 Subject: [PATCH 67/77] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3685397d7..cc67b91d5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -334,7 +334,7 @@ jobs: mkdir -p .pakku/multimc-overrides/flame mv -vf ./build/.cache/curseforge/manifest.json .pakku/multimc-overrides/flame/manifest.json mv -vf ./build/.cache/curseforge/overrides .pakku/multimc-overrides/.minecraft - mv -vf ./mods .pakku/multimc-overrides/.minecraft + mv -vf ./mods/* .pakku/multimc-overrides/.minecraft/mods/ cd .pakku/multimc-overrides/ zip -r ${{ needs.info.outputs.project_full_name }}-multimc.zip icon.png mmc-pack.json instance.cfg .minecraft/ flame/ From 236402cc5196b76defc041b54fe7af5c93995a10 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sat, 19 Apr 2025 13:43:31 +0100 Subject: [PATCH 68/77] buffed the LV glowstone recipe --- kubejs/server_scripts/minecraft/recipes.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/kubejs/server_scripts/minecraft/recipes.js b/kubejs/server_scripts/minecraft/recipes.js index 063b83570..359710340 100644 --- a/kubejs/server_scripts/minecraft/recipes.js +++ b/kubejs/server_scripts/minecraft/recipes.js @@ -817,12 +817,11 @@ const registerMinecraftRecipes = (event) => { //#region Glowstone event.recipes.gtceu.mixer('gtceu:lv_glowstone') - .inputFluids(Fluid.of('gtceu:creosote', 1000)) - .itemInputs('gtceu:gold_dust', 'minecraft:redstone', 'gtceu:sulfur_dust', 'gtceu:coal_dust') - .itemOutputs('minecraft:glowstone_dust') + .itemInputs('gtceu:gold_dust', 'minecraft:redstone', 'gtceu:sulfur_dust') + .itemOutputs('2x minecraft:glowstone_dust') .circuit(32) .duration(1200) - .EUt(32) + .EUt(30) //#endregion From c2606c0c7bf9a143c6f7dccd58da906b8dee1d2e Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sat, 19 Apr 2025 13:43:44 +0100 Subject: [PATCH 69/77] added recipe to empty the crucible --- kubejs/server_scripts/tfc/recipes.js | 1 + 1 file changed, 1 insertion(+) diff --git a/kubejs/server_scripts/tfc/recipes.js b/kubejs/server_scripts/tfc/recipes.js index 4e560b4ff..38f7dbf67 100644 --- a/kubejs/server_scripts/tfc/recipes.js +++ b/kubejs/server_scripts/tfc/recipes.js @@ -135,6 +135,7 @@ const registerTFCRecipes = (event) => { //#endregion + event.shapeless('tfc:crucible', ['tfc:crucible']).id('tfg:empty_crucible') // ДомСнная ΠΏΠ΅Ρ‡ΡŒ event.shaped('tfc:blast_furnace', [ From c4e05d0b5988a387a3a9e0ac813a1711581a10e8 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sat, 19 Apr 2025 13:47:15 +0100 Subject: [PATCH 70/77] disabled enchants on generated GT tools --- config/gtceu.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/gtceu.yaml b/config/gtceu.yaml index 090c3c3bf..acc5d5331 100644 --- a/config/gtceu.yaml +++ b/config/gtceu.yaml @@ -87,7 +87,7 @@ recipes: # Whether tools should have enchants or not. Like the flint sword getting fire aspect. # Default: true - enchantedTools: true + enchantedTools: false worldgen: # Rubber Tree spawn chance (decimal % per chunk) From 49380e069585545fcc4ae5f06f8f72bda07f93e8 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sat, 19 Apr 2025 14:07:31 +0100 Subject: [PATCH 71/77] Fixes #894 and #893 --- .../quests/chapters/lv__low_voltage.snbt | 1 - .../quests/chapters/questsstoneage.snbt | 16 +++++----------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/config/ftbquests/quests/chapters/lv__low_voltage.snbt b/config/ftbquests/quests/chapters/lv__low_voltage.snbt index 114006062..db0817f6c 100644 --- a/config/ftbquests/quests/chapters/lv__low_voltage.snbt +++ b/config/ftbquests/quests/chapters/lv__low_voltage.snbt @@ -1368,7 +1368,6 @@ "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" } ] diff --git a/config/ftbquests/quests/chapters/questsstoneage.snbt b/config/ftbquests/quests/chapters/questsstoneage.snbt index d78ad7781..8c9e68bd9 100644 --- a/config/ftbquests/quests/chapters/questsstoneage.snbt +++ b/config/ftbquests/quests/chapters/questsstoneage.snbt @@ -1354,17 +1354,9 @@ type: "item" } { - count: 16L - id: "3C41311574D24CBC" - item: { - Count: 1 - id: "ftbfiltersystem:smart_filter" - tag: { - "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(minecraft:planks)" - } - } - optional_task: true - title: "{quests.tasktype.item.any} #minecraft:planks" + count: 32L + id: "58388551672A8588" + item: { Count: 32, id: "minecraft:ladder" } type: "item" } ] @@ -1598,6 +1590,7 @@ { id: "625810E1A0D28993" item: "gtceu:wood_crate" + optional_task: true type: "item" } { @@ -1609,6 +1602,7 @@ "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(tfcastikorcarts:supply_cart)" } } + optional_task: true title: "{quests.tasktype.item.any} #tfcastikorcarts:supply_cart" type: "item" } From 46f5b0768e36ac3a02e08a66ba599125182d8d19 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sat, 19 Apr 2025 14:08:44 +0100 Subject: [PATCH 72/77] nerfed kapok growth speed so it isn't so OP --- defaultconfigs/tfc-server.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/defaultconfigs/tfc-server.toml b/defaultconfigs/tfc-server.toml index b92381f36..580368763 100644 --- a/defaultconfigs/tfc-server.toml +++ b/defaultconfigs/tfc-server.toml @@ -394,7 +394,7 @@ # # Days for a kapok tree sapling to be ready to grow into a full tree. #Range: > 0 - kapokSaplingGrowthDays = 7 + kapokSaplingGrowthDays = 9 # # Days for a mangrove tree sapling to be ready to grow into a full tree. #Range: > 0 From de5db35e709c147ce974e1fb096b80c541949f81 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sat, 19 Apr 2025 14:16:32 +0100 Subject: [PATCH 73/77] added recipes to turn leaves into biomass --- kubejs/server_scripts/gregtech/recipes.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index e03eebeef..4e83ca7af 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -218,6 +218,20 @@ const registerGTCEURecipes = (event) => { .duration(128) .EUt(3) + event.recipes.gtceu.brewery('biomass_from_leaves') + .itemInputs('#minecraft:leaves') + .inputFluids(Fluid.of('minecraft:water', 20)) + .outputFluids(Fluid.of('gtceu:biomass', 20)) + .duration(128) + .EUt(3) + + event.recipes.gtceu.brewery('biomass_from_fallen_leaves') + .itemInputs('#tfc:fallen_leaves') + .inputFluids(Fluid.of('minecraft:water', 20)) + .outputFluids(Fluid.of('gtceu:biomass', 20)) + .duration(128) + .EUt(3) + //#endregion //#region Π’Ρ‹Ρ…ΠΎΠ΄: Π Ρ‹Π±ΡŒΠ΅ масло From c83e05e473d894aacb83c7a4f848299c6398db27 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sat, 19 Apr 2025 14:16:43 +0100 Subject: [PATCH 74/77] added recipe to turn saplings into sticks --- kubejs/server_scripts/tfc/recipes.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kubejs/server_scripts/tfc/recipes.js b/kubejs/server_scripts/tfc/recipes.js index 38f7dbf67..f1ce0d7b3 100644 --- a/kubejs/server_scripts/tfc/recipes.js +++ b/kubejs/server_scripts/tfc/recipes.js @@ -137,6 +137,8 @@ const registerTFCRecipes = (event) => { event.shapeless('tfc:crucible', ['tfc:crucible']).id('tfg:empty_crucible') + event.shapeless('2x minecraft:stick', ['#minecraft:saplings', '#forge:tools/knives']).id('tfg:strip_saplings') + // ДомСнная ΠΏΠ΅Ρ‡ΡŒ event.shaped('tfc:blast_furnace', [ 'AAA', From 823508cba164ef3573e9f76d9f77bad2297dbd71 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sat, 19 Apr 2025 14:27:26 +0100 Subject: [PATCH 75/77] changed mud brick recipes so they don't need mortar any more Fixes #622 Fixes #513 --- kubejs/server_scripts/tfc/recipes.dirt.js | 34 +++++++++++++++-------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/kubejs/server_scripts/tfc/recipes.dirt.js b/kubejs/server_scripts/tfc/recipes.dirt.js index dc6f9cb88..f8d57e721 100644 --- a/kubejs/server_scripts/tfc/recipes.dirt.js +++ b/kubejs/server_scripts/tfc/recipes.dirt.js @@ -85,20 +85,31 @@ function registerTFCDirtRecipes(event) { // ΠšΠΈΡ€ΠΏΠΈΡ‡ -> Π‘Π»ΠΎΠΊ ΠΊΠΈΡ€ΠΏΠΈΡ‡Π΅ΠΉ event.shaped(`tfc:mud_bricks/${mud}`, [ - 'ABA', - 'BAB', - 'ABA' + 'AA', + 'AA' ], { - A: `tfc:mud_brick/${mud}`, - B: '#tfc:mortar' + A: `tfc:mud_brick/${mud}` }).id(`tfc:crafting/soil/${mud}_mud_bricks`) - event.recipes.gtceu.assembler(`mud_bricks_${mud}`) - .itemInputs(`5x tfc:mud_brick/${mud}`) - .inputFluids(Fluid.of('gtceu:concrete', 72)) - .itemOutputs(`4x tfc:mud_bricks/${mud}`) - .duration(50) - .EUt(2) + event.shaped(`tfc:mud_bricks/${mud}_stairs`, [ + 'A ', + 'AA' + ], { + A: `tfc:mud_brick/${mud}` + }).id(`tfc:crafting/soil/${mud}_mud_bricks_stairs`) + + event.shaped(`tfc:mud_bricks/${mud}_slab`, [ + 'AA' + ], { + A: `tfc:mud_brick/${mud}` + }).id(`tfc:crafting/soil/${mud}_mud_bricks_slab`) + + event.shaped(`2x tfc:mud_bricks/${mud}_wall`, [ + 'AAA', + 'AAA' + ], { + A: `tfc:mud_brick/${mud}` + }).id(`tfc:crafting/soil/${mud}_mud_bricks_wall`) // Π‘Π»ΠΎΠΊ ΠΊΠΈΡ€ΠΏΠΈΡ‡Π΅ΠΉ -> Π‘Ρ‚ΡƒΠΏΠ΅Π½ΠΈ event.remove({ id: `tfc:crafting/soil/${mud}_mud_bricks_stairs` }) @@ -117,7 +128,6 @@ function registerTFCDirtRecipes(event) { event.stonecutting(`tfc:mud_bricks/${mud}_wall`, `tfc:mud_bricks/${mud}`) .id(`tfc:stonecutting/soil/${mud}_mud_bricks_wall`) - }) //#endregion From 1e77335fedbf6a8d491200de627c46e29781e132 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sat, 19 Apr 2025 14:36:12 +0100 Subject: [PATCH 76/77] Updated early ore processing part 2 to align with actual recipes --- .../quests/chapters/questsstoneage.snbt | 35 +++++++++++++------ kubejs/assets/tfg/lang/en_us.json | 5 +-- 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/config/ftbquests/quests/chapters/questsstoneage.snbt b/config/ftbquests/quests/chapters/questsstoneage.snbt index 8c9e68bd9..45881d159 100644 --- a/config/ftbquests/quests/chapters/questsstoneage.snbt +++ b/config/ftbquests/quests/chapters/questsstoneage.snbt @@ -2084,18 +2084,33 @@ description: ["{quests.stone_age.crush_crushed_ore.desc}"] id: "050444CE0EA04FDF" subtitle: "{quests.stone_age.crush_crushed_ore.subtitle}" - tasks: [{ - id: "3138448022A39769" - item: { - Count: 1 - id: "ftbfiltersystem:smart_filter" - tag: { - "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(forge:impure_dusts)" + tasks: [ + { + id: "3138448022A39769" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(forge:impure_dusts)" + } } + title: "Any #forge:impure_dusts" + type: "item" } - title: "Any #forge:impure_dusts" - type: "item" - }] + { + disable_toast: true + id: "6D4743145560A61F" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "ftbfiltersystem:item_tag(forge:tools/hammers)" + } + } + title: "Any #forge:tools/hammers" + type: "item" + } + ] title: "{quests.stone_age.crush_crushed_ore.title}" x: 17.0d y: 11.0d diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index c118df0f4..11a2f418a 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -204,6 +204,7 @@ "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", + "tfc.recipe.barrel.tfg.barrel.soak_hardwood_strip": "Soaking Hardwood Strips", "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", @@ -1228,8 +1229,8 @@ "quests.stone_age.crush_ore.subtitle": "Getting more from your ores", "quests.stone_age.crush_ore.desc": "The Quern is only the first step into processing your ores! Proper ore processing is a large, complex beast that you'll learn more about as you progress, and can be used to extract much more usable metal and other byproducts per each ore you mine. To start with though, we'll turn those raw ores you mined into Crushed Ore by putting it through the Quern. Just this first step is enough to increase the amount of mB your ore will melt into.", "quests.stone_age.crush_crushed_ore.title": "Early Ore Processing - Part 2", - "quests.stone_age.crush_crushed_ore.subtitle": "Quern it, again", - "quests.stone_age.crush_crushed_ore.desc": "Crushing a Crushed Ore again yields Impure Dust, further increasing it's mB yield.\n\nThis may be slow and tedious for now, but you'll soon unlock ways to do this faster and automatically!", + "quests.stone_age.crush_crushed_ore.subtitle": "Smash it with a hammer", + "quests.stone_age.crush_crushed_ore.desc": "Combine the Crushed Ore with a hammer in a crafting grid to turn it into Impure Dust, further increasing it's mB yield.\n\nThis may all be slow and tedious for now, but you'll soon unlock ways to do this faster and automatically!", "quests.stone_age.clean_dust.title": "Early Ore Processing - Part 3", "quests.stone_age.clean_dust.subtitle": "Wash that dirty dust", "quests.stone_age.clean_dust.desc": "Finally, dropping Impure Dusts in some water and leaving them for a few seconds will wash them, yielding dust, which is your ore's final form. It might even be worth as much as a full ingot now!", From e9997b03ce2a8dabd88ab6339f2756ab9e622230 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sat, 19 Apr 2025 14:45:36 +0100 Subject: [PATCH 77/77] Updated stone age ore processing quests --- .../quests/chapters/questsstoneage.snbt | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/config/ftbquests/quests/chapters/questsstoneage.snbt b/config/ftbquests/quests/chapters/questsstoneage.snbt index 45881d159..ab5f24629 100644 --- a/config/ftbquests/quests/chapters/questsstoneage.snbt +++ b/config/ftbquests/quests/chapters/questsstoneage.snbt @@ -2061,6 +2061,16 @@ { dependencies: ["5E186CD5E83BFDF0"] description: ["{quests.stone_age.crush_ore.desc}"] + icon: { + Count: 1 + ForgeCaps: { + "tfc:item_heat": { + heat: 0.0f + ticks: 0L + } + } + id: "gtceu:crushed_copper_ore" + } id: "2621BF784BEB7033" subtitle: "{quests.stone_age.crush_ore.subtitle}" tasks: [{ @@ -2082,6 +2092,16 @@ { dependencies: ["2621BF784BEB7033"] description: ["{quests.stone_age.crush_crushed_ore.desc}"] + icon: { + Count: 1 + ForgeCaps: { + "tfc:item_heat": { + heat: 0.0f + ticks: 0L + } + } + id: "gtceu:impure_copper_dust" + } id: "050444CE0EA04FDF" subtitle: "{quests.stone_age.crush_crushed_ore.subtitle}" tasks: [ @@ -2118,6 +2138,16 @@ { dependencies: ["050444CE0EA04FDF"] description: ["{quests.stone_age.clean_dust.desc}"] + icon: { + Count: 1 + ForgeCaps: { + "tfc:item_heat": { + heat: 0.0f + ticks: 0L + } + } + id: "gtceu:copper_dust" + } id: "3462FD6E24F9BE0B" subtitle: "{quests.stone_age.clean_dust.subtitle}" tasks: [{