Alpha Release: additions 0.9.0 (#880)

Signed-off-by: Pyritie <pyritie@gmail.com>
Signed-off-by: TomPlop <tomdidome@gmail.com>
Signed-off-by: Adora <adoradyne.58@gmail.com>
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 <leon.trol@mail.ru>
Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com>
Signed-off-by: Xikaro <55663835+Xikaro@users.noreply.github.com>
Co-authored-by: Xikaro <os.valerievich@ya.ru>
Co-authored-by: Nebby <78170922+Nebby1999@users.noreply.github.com>
Co-authored-by: Redeix <brayden.j.m.ford@gmail.com>
Co-authored-by: TomPlop <tomdidome@gmail.com>
Co-authored-by: aidie8 <aidenvanzuilen@gmail.com>
Co-authored-by: Xikaro <55663835+Xikaro@users.noreply.github.com>
Co-authored-by: Zleub <debray.arnaud@gmail.com>
Co-authored-by: Adora <adoradyne.58@gmail.com>
Co-authored-by: Curtis Merrill <curtis.r.merrill@gmail.com>
Co-authored-by: julia <97713533+juliakity@users.noreply.github.com>
Co-authored-by: GamerDadDave <gamerdaddave@gmail.com>
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 <leon.trol@mail.ru>
Co-authored-by: Redeix <59435925+Redeix@users.noreply.github.com>
Co-authored-by: Nebby1999 <nebby131999@gmail.com>
This commit is contained in:
Pyritie 2025-04-18 10:49:56 +01:00 committed by GitHub
parent ec2e3cd3c4
commit 189f5aebce
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
94 changed files with 4858 additions and 2300 deletions

13
.github/README.md vendored
View file

@ -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

View file

@ -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