Skip to content

Commit a684e71

Browse files
authored
Merge pull request #39 from SkyBlade1978/feature/basepower-26.1.2-port
Bring basePower to Minecraft 26.1.2
2 parents f516305 + 6d71bff commit a684e71

176 files changed

Lines changed: 16577 additions & 929 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/test-base-metals-pin.sh‎

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ chmod +x "$scratch/bin/gh"
2424
export PATH="$scratch/bin:$PATH"
2525
commit=1111111111111111111111111111111111111111
2626
cd "$scratch/project"
27-
for minecraft in 1.20.6 1.21.1 1.21.11; do
27+
for minecraft in 1.20.6 1.21.1 1.21.11 26.1.2; do
2828
printf 'minecraft_version=%s\nbasemetals_source_commit=%s\n' "$minecraft" "$commit" > gradle.properties
2929
export EXPECTED_COMPARE="repos/MinecraftModDevelopmentMods/BaseMetals/compare/$commit...master-$minecraft"
3030
export GITHUB_OUTPUT="$scratch/output"
@@ -44,9 +44,11 @@ for minecraft in 1.20.6 1.21.1 1.21.11; do
4444
test ! -s "$GITHUB_OUTPUT"
4545
done
4646
done
47-
printf 'minecraft_version=invalid\nbasemetals_source_commit=%s\n' "$commit" > gradle.properties
48-
if bash "$verify" > "$scratch/invalid.log" 2>&1; then
49-
echo 'Incorrectly accepted an invalid target' >&2
50-
exit 1
51-
fi
47+
for minecraft in invalid 26.1 26.1.2/evil master-26.1.2 0.1.2; do
48+
printf 'minecraft_version=%s\nbasemetals_source_commit=%s\n' "$minecraft" "$commit" > gradle.properties
49+
if bash "$verify" > "$scratch/invalid.log" 2>&1; then
50+
echo "Incorrectly accepted an invalid target: $minecraft" >&2
51+
exit 1
52+
fi
53+
done
5254
echo 'PASS: target-derived Base Metals ancestry guards and rejection controls'

‎.github/verify-base-metals-pin.sh‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ if [[ ! "$commit" =~ ^[0-9a-f]{40}$ ]]; then
88
fi
99

1010
minecraft="$(sed -n 's/^minecraft_version=//p' gradle.properties)"
11-
if [[ ! "$minecraft" =~ ^1\.[0-9]+\.[0-9]+$ ]]; then
11+
if [[ ! "$minecraft" =~ ^(1|[2-9][0-9])\.[0-9]+\.[0-9]+$ ]]; then
1212
echo "::error::Expected a complete Minecraft target version in gradle.properties"
1313
exit 1
1414
fi

‎.github/workflows/ci.yml‎

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
name: basePower 1.21.11 CI
1+
name: basePower 26.1.2 CI
22

33
on:
44
push:
5-
branches: [master-1.21.11, 'feature/**']
5+
branches: [master-26.1.2, 'feature/**']
66
pull_request:
7-
branches: [master-1.21.11]
7+
branches: [master-26.1.2]
88

99
permissions:
1010
contents: read
1111

1212
concurrency:
13-
group: basepower-1.21.11-${{ github.workflow }}-${{ github.ref }}
13+
group: basepower-26.1.2-${{ github.workflow }}-${{ github.ref }}
1414
cancel-in-progress: true
1515

1616
jobs:
@@ -23,7 +23,7 @@ jobs:
2323
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
2424
- name: Test target-derived dependency guards
2525
run: bash .github/test-base-metals-pin.sh
26-
- name: Require the Base Metals pin on upstream master-1.21.11
26+
- name: Require the Base Metals pin on upstream master-26.1.2
2727
id: base-metals-pin
2828
env:
2929
GH_TOKEN: ${{ github.token }}
@@ -34,34 +34,24 @@ jobs:
3434
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
3535
with:
3636
repository: MinecraftModDevelopmentMods/OreSpawn
37-
ref: ecad75b24309a344f712d898d717c6a8823fc9f2
37+
ref: 101fd12b598934c353e417c57edc5c2bbefd5f53
3838
path: .ci-dependencies/OreSpawn
3939
- name: Check out pinned Base Metals
4040
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
4141
with:
4242
repository: MinecraftModDevelopmentMods/BaseMetals
43-
ref: 616d527e50e4bf0137eeb9c44fa586e34a0452a0
43+
ref: 331fa46914f854db71a8c33500cc559a8878b7d3
4444
path: .ci-dependencies/BaseMetals
45-
- name: Install pinned Java 25 Mavenizer runtime
45+
- name: Install Java 25 for Gradle, tools and Minecraft
4646
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
4747
with:
4848
distribution: temurin
4949
java-version: '25.0.3+9.0.LTS'
50-
- name: Install Java 8 launcher helper
51-
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
52-
with:
53-
distribution: temurin
54-
java-version: '8.0.502+7'
55-
- name: Install Java 21 for Gradle and production
56-
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
57-
with:
58-
distribution: temurin
59-
java-version: '21.0.7+6.0.LTS'
6050
- name: Use pinned build toolchains
6151
# These are Gradle project properties, not JVM system properties.
6252
shell: bash
6353
run: >-
64-
echo "MMD_GRADLE_TOOLCHAINS=-Porg.gradle.java.installations.paths=$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64
54+
echo "MMD_GRADLE_TOOLCHAINS=-Porg.gradle.java.installations.paths=$JAVA_HOME
6555
-Porg.gradle.java.installations.auto-detect=false
6656
-Porg.gradle.java.installations.auto-download=false" >> "$GITHUB_ENV"
6757
- name: Set up Gradle
@@ -78,8 +68,8 @@ jobs:
7868
(cd "$basemetals" && bash gradle/stage-orespawn-release.sh "$mirror")
7969
(cd "$orespawn" && bash gradlew $MMD_GRADLE_TOOLCHAINS jar --no-daemon --stacktrace)
8070
(cd "$basemetals" && bash gradlew $MMD_GRADLE_TOOLCHAINS jar -PorespawnVerificationRepository="$mirror" --no-daemon --stacktrace)
81-
osjar="$orespawn/build/libs/OreSpawn-4.1.0.121111.jar"
82-
bmjar="$basemetals/build/libs/BaseMetals-3.1.2.121111.jar"
71+
osjar="$orespawn/build/libs/OreSpawn-4.1.1.2601021.jar"
72+
bmjar="$basemetals/build/libs/BaseMetals-3.1.2.2601021.jar"
8373
test -f "$osjar" && test -f "$bmjar"
8474
echo "orespawn=$osjar" >> "$GITHUB_OUTPUT"
8575
echo "basemetals=$bmjar" >> "$GITHUB_OUTPUT"
@@ -90,12 +80,12 @@ jobs:
9080
writeReleaseChecksums verifyEclipseProductionClasspath
9181
-PbaseMetalsDeobfJar=${{ steps.dependencies.outputs.basemetals }}
9282
-PoreSpawnDeobfJar=${{ steps.dependencies.outputs.orespawn }}
93-
-Pforge61MavenizerJar=${{ steps.dependencies.outputs.mavenizer }}
83+
-Pforge64MavenizerJar=${{ steps.dependencies.outputs.mavenizer }}
9484
--no-daemon --stacktrace
9585
- name: Upload audited release candidate
9686
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
9787
with:
98-
name: basePower-1.21.11-${{ github.sha }}
88+
name: basePower-26.1.2-${{ github.sha }}
9989
if-no-files-found: error
10090
retention-days: 30
10191
path: |
@@ -106,7 +96,7 @@ jobs:
10696
if: failure()
10797
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
10898
with:
109-
name: basePower-1.21.11-diagnostics-${{ github.sha }}
99+
name: basePower-26.1.2-diagnostics-${{ github.sha }}
110100
if-no-files-found: ignore
111101
retention-days: 14
112102
path: |

‎.github/workflows/codeql-analysis.yml‎

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ name: CodeQL
22

33
on:
44
push:
5-
branches: [master-1.21.11, 'feature/**']
5+
branches: [master-26.1.2, 'feature/**']
66
pull_request:
7-
branches: [master-1.21.11]
7+
branches: [master-26.1.2]
88
schedule:
99
- cron: '47 7 * * 4'
1010

@@ -23,7 +23,7 @@ jobs:
2323
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
2424
- name: Test target-derived dependency guards
2525
run: bash .github/test-base-metals-pin.sh
26-
- name: Require the Base Metals pin on upstream master-1.21.11
26+
- name: Require the Base Metals pin on upstream master-26.1.2
2727
id: base-metals-pin
2828
env:
2929
GH_TOKEN: ${{ github.token }}
@@ -34,34 +34,24 @@ jobs:
3434
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
3535
with:
3636
repository: MinecraftModDevelopmentMods/OreSpawn
37-
ref: ecad75b24309a344f712d898d717c6a8823fc9f2
37+
ref: 101fd12b598934c353e417c57edc5c2bbefd5f53
3838
path: .ci-dependencies/OreSpawn
3939
- name: Check out pinned Base Metals
4040
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
4141
with:
4242
repository: MinecraftModDevelopmentMods/BaseMetals
43-
ref: 616d527e50e4bf0137eeb9c44fa586e34a0452a0
43+
ref: 331fa46914f854db71a8c33500cc559a8878b7d3
4444
path: .ci-dependencies/BaseMetals
45-
- name: Install pinned Java 25 Mavenizer runtime
45+
- name: Install Java 25 for Gradle, tools and Minecraft
4646
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
4747
with:
4848
distribution: temurin
4949
java-version: '25.0.3+9.0.LTS'
50-
- name: Install Java 8 launcher helper
51-
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
52-
with:
53-
distribution: temurin
54-
java-version: '8.0.502+7'
55-
- name: Install Java 21 for Gradle and production
56-
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
57-
with:
58-
distribution: temurin
59-
java-version: '21.0.7+6.0.LTS'
6050
- name: Use pinned build toolchains
6151
# These are Gradle project properties, not JVM system properties.
6252
shell: bash
6353
run: >-
64-
echo "MMD_GRADLE_TOOLCHAINS=-Porg.gradle.java.installations.paths=$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64
54+
echo "MMD_GRADLE_TOOLCHAINS=-Porg.gradle.java.installations.paths=$JAVA_HOME
6555
-Porg.gradle.java.installations.auto-detect=false
6656
-Porg.gradle.java.installations.auto-download=false" >> "$GITHUB_ENV"
6757
- name: Set up Gradle
@@ -79,8 +69,8 @@ jobs:
7969
chmod +x "$orespawn/gradlew" "$basemetals/gradlew"
8070
(cd "$orespawn" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar --no-daemon --stacktrace)
8171
(cd "$basemetals" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar -PorespawnVerificationRepository="$mirror" --no-daemon --stacktrace)
82-
echo "orespawn=$orespawn/build/libs/OreSpawn-4.1.0.121111.jar" >> "$GITHUB_OUTPUT"
83-
echo "basemetals=$basemetals/build/libs/BaseMetals-3.1.2.121111.jar" >> "$GITHUB_OUTPUT"
72+
echo "orespawn=$orespawn/build/libs/OreSpawn-4.1.1.2601021.jar" >> "$GITHUB_OUTPUT"
73+
echo "basemetals=$basemetals/build/libs/BaseMetals-3.1.2.2601021.jar" >> "$GITHUB_OUTPUT"
8474
echo "mavenizer=$mavenizer" >> "$GITHUB_OUTPUT"
8575
- name: Initialize CodeQL
8676
uses: github/codeql-action/init@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4
@@ -93,6 +83,6 @@ jobs:
9383
./gradlew $MMD_GRADLE_TOOLCHAINS clean classes verifyReleaseDependencies --rerun-tasks --no-build-cache --no-daemon --stacktrace \
9484
-PbaseMetalsDeobfJar=${{ steps.dependencies.outputs.basemetals }} \
9585
-PoreSpawnDeobfJar=${{ steps.dependencies.outputs.orespawn }} \
96-
-Pforge61MavenizerJar=${{ steps.dependencies.outputs.mavenizer }}
86+
-Pforge64MavenizerJar=${{ steps.dependencies.outputs.mavenizer }}
9787
- name: Analyze
9888
uses: github/codeql-action/analyze@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4

‎.github/workflows/validate-gradle-build.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ name: Validate Gradle Wrapper
33
on:
44
push:
55
branches:
6-
- master-1.21.11
6+
- master-26.1.2
77
- 'feature/**'
88
pull_request:
99
branches:
10-
- master-1.21.11
10+
- master-26.1.2
1111

1212
permissions:
1313
contents: read

‎CHANGELOG.txt‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,19 @@
1+
basePower 2.4.16.2601021 (Minecraft 26.1.2)
2+
3+
- Require OreSpawn 4.1.1 so old generation rules keep their saved settings without enabling duplicate modern ore rules.
4+
- Bring basePower to Forge 64 and Java 25 without renaming machines, items or saved data.
5+
- Use the new screen extraction API and native sprite clipping for fluid gauges.
6+
- Keep oil models tied to the current animated atlas, including after resource reloads.
7+
- Register only our own block textures in the atlas, so another mod's small entity textures cannot break client startup.
8+
- Use Minecraft's native container lock check and keep conveyors out of either locked half of a double chest.
9+
- Keep the returned container when the fuel helper consumes the last item in a stack.
10+
- Keep the saved enchantments on old dropped items and chest-minecart contents when Base Metals upgrades the world first.
11+
- Update old OreSpawn output block names without replacing saved generation settings. Keep backups and reports, and stop for review rather than guess when saved rules conflict.
12+
- Finish imported generation settings before opening the first world, including the old vanilla quartz name.
13+
- Move the existing farmer and toolsmith trades to Minecraft's native trade data and tags, keeping their prices and quantities.
14+
- Prepare selected, locked worlds before Minecraft relocates old world and player files. Keep world previews and fallback files read-only.
15+
- Keep the shared Base Metals migration hook and add new test evidence for this target. Machine, upgrade, restart, graphical and two-world endurance checks pass, and manual testing is accepted.
16+
117
basePower 2.4.15.121111 (Minecraft 1.21.11)
218

319
- Bring basePower to Forge 61 and Java 21, keeping the existing machine and world identities.

0 commit comments

Comments
 (0)