Skip to content

Commit d0f2899

Browse files
committed
Bring basePower and old worlds to Minecraft 1.13.2
1 parent d4ebfea commit d0f2899

647 files changed

Lines changed: 4742 additions & 3829 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/workflows/ci.yml‎

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ permissions:
1010
contents: read
1111

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

1616
jobs:
@@ -30,12 +30,25 @@ jobs:
3030
- name: Use canonical LF dependency inputs
3131
# Base Metals predates archive text normalization; its LF artifact is separately pinned.
3232
run: git config --global core.autocrlf false
33+
- name: Read Base Metals development pin
34+
id: basemetals-pin
35+
shell: bash
36+
run: |
37+
set -euo pipefail
38+
ref=$(sed -n 's/^basemetals_source_commit=//p' gradle.properties)
39+
[[ "$ref" =~ ^[a-f0-9]{40}$ ]]
40+
echo "ref=$ref" >> "$GITHUB_OUTPUT"
3341
- name: Check out pinned Base Metals
3442
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
3543
with:
3644
repository: MinecraftModDevelopmentMods/BaseMetals
37-
ref: 1376a20d7d5ba22d3abc77dc34b49a2c88943697
45+
ref: ${{ steps.basemetals-pin.outputs.ref }}
3846
path: .ci-dependencies/BaseMetals
47+
- name: Install Java 25 for Mavenizer
48+
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
49+
with:
50+
distribution: temurin
51+
java-version: '25.0.3+9.0.LTS'
3952
- name: Install Java 8 toolchain
4053
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
4154
with:
@@ -57,9 +70,12 @@ jobs:
5770
basemetals="$GITHUB_WORKSPACE/.ci-dependencies/BaseMetals"
5871
chmod +x "$orespawn/gradlew" "$basemetals/gradlew"
5972
(cd "$orespawn" && ./gradlew jar --no-daemon --stacktrace)
60-
(cd "$basemetals" && ./gradlew jar --no-daemon --stacktrace)
73+
mirror="$RUNNER_TEMP/orespawn-mirror"
74+
(cd "$basemetals" && bash gradle/stage-orespawn-release.sh "$mirror" &&
75+
./gradlew jar "-PorespawnVerificationRepository=$mirror" --no-daemon --stacktrace)
76+
bm_version=$(sed -n 's/^basemetals_version=//p' gradle.properties)
6177
osjar="$orespawn/build/libs-dev/OreSpawn-4.1.0.113021-deobf.jar"
62-
bmjar="$basemetals/build/libs-dev/BaseMetals-3.0.1.113021-deobf.jar"
78+
bmjar="$basemetals/build/libs-dev/BaseMetals-$bm_version-deobf.jar"
6379
test -f "$osjar" && test -f "$bmjar"
6480
echo "orespawn=$osjar" >> "$GITHUB_OUTPUT"
6581
echo "basemetals=$bmjar" >> "$GITHUB_OUTPUT"
@@ -73,20 +89,21 @@ jobs:
7389
- name: Upload audited release candidate
7490
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
7591
with:
76-
name: PowerAdvantage-1.13.2-${{ github.sha }}
92+
name: basePower-1.13.2-${{ github.sha }}
7793
if-no-files-found: error
7894
retention-days: 30
7995
path: |
80-
build/libs/PowerAdvantage-2.4.4.113021.jar
81-
build/libs/PowerAdvantage-2.4.4.113021-sources.jar
82-
build/libs/PowerAdvantage-2.4.4.113021-javadoc.jar
96+
build/libs/basePower-2.4.5.113021.jar
97+
build/libs/basePower-2.4.5.113021-sources.jar
98+
build/libs/basePower-2.4.5.113021-javadoc.jar
99+
build/libs-dev/basePower-2.4.5.113021-deobf.jar
83100
build/release/SHA256SUMS
84101
CHANGELOG.txt
85102
- name: Upload diagnostics on failure
86103
if: failure()
87104
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
88105
with:
89-
name: PowerAdvantage-1.13.2-diagnostics-${{ github.sha }}
106+
name: basePower-1.13.2-diagnostics-${{ github.sha }}
90107
if-no-files-found: ignore
91108
retention-days: 14
92109
path: |

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

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,25 @@ jobs:
3030
- name: Use canonical LF dependency inputs
3131
# Base Metals predates archive text normalization; its LF artifact is separately pinned.
3232
run: git config --global core.autocrlf false
33+
- name: Read Base Metals development pin
34+
id: basemetals-pin
35+
shell: bash
36+
run: |
37+
set -euo pipefail
38+
ref=$(sed -n 's/^basemetals_source_commit=//p' gradle.properties)
39+
[[ "$ref" =~ ^[a-f0-9]{40}$ ]]
40+
echo "ref=$ref" >> "$GITHUB_OUTPUT"
3341
- name: Check out pinned Base Metals
3442
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
3543
with:
3644
repository: MinecraftModDevelopmentMods/BaseMetals
37-
ref: 1376a20d7d5ba22d3abc77dc34b49a2c88943697
45+
ref: ${{ steps.basemetals-pin.outputs.ref }}
3846
path: .ci-dependencies/BaseMetals
47+
- name: Install Java 25 for Mavenizer
48+
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
49+
with:
50+
distribution: temurin
51+
java-version: '25.0.3+9.0.LTS'
3952
- name: Install Java 8 toolchain
4053
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
4154
with:
@@ -57,9 +70,12 @@ jobs:
5770
basemetals="$GITHUB_WORKSPACE/.ci-dependencies/BaseMetals"
5871
chmod +x "$orespawn/gradlew" "$basemetals/gradlew"
5972
(cd "$orespawn" && ./gradlew jar --no-daemon --stacktrace)
60-
(cd "$basemetals" && ./gradlew jar --no-daemon --stacktrace)
73+
mirror="$RUNNER_TEMP/orespawn-mirror"
74+
(cd "$basemetals" && bash gradle/stage-orespawn-release.sh "$mirror" &&
75+
./gradlew jar "-PorespawnVerificationRepository=$mirror" --no-daemon --stacktrace)
76+
bm_version=$(sed -n 's/^basemetals_version=//p' gradle.properties)
6177
echo "orespawn=$orespawn/build/libs-dev/OreSpawn-4.1.0.113021-deobf.jar" >> "$GITHUB_OUTPUT"
62-
echo "basemetals=$basemetals/build/libs-dev/BaseMetals-3.0.1.113021-deobf.jar" >> "$GITHUB_OUTPUT"
78+
echo "basemetals=$basemetals/build/libs-dev/BaseMetals-$bm_version-deobf.jar" >> "$GITHUB_OUTPUT"
6379
- name: Initialize CodeQL
6480
uses: github/codeql-action/init@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4
6581
with:

‎.github/workflows/release-on-tag.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ permissions:
1010
contents: read
1111

1212
concurrency:
13-
group: poweradvantage-release-tag-${{ github.ref_name }}
13+
group: basepower-release-tag-${{ github.ref_name }}
1414
cancel-in-progress: false
1515

1616
jobs:
1717
validate-release-tag:
1818
name: Validate tag for manual release confirmation
19-
if: github.repository == 'MinecraftModDevelopmentMods/PowerAdvantage'
19+
if: github.repository == 'MinecraftModDevelopmentMods/basePower'
2020
runs-on: ubuntu-latest
2121
timeout-minutes: 10
2222

‎CHANGELOG.txt‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
2.4.5.113021 - basePower for Minecraft 1.13.2
2+
3+
- Bring basePower to Forge 1.13.2 under the basePower name.
4+
- Read both original Advantage and released base* worlds through the 1.13 block conversion, keeping machine inventories, fluid amounts and saved power.
5+
- Convert filled oil buckets and keep the original configuration files when importing settings.
6+
- Convert old vanilla item IDs in machine inventories, including sugar cane stored in growth chambers.
7+
- Put all three mods' player-facing items on one creative tab named basePower.
8+
19
Unreleased test-coverage repairs for 1.13.2
210

311
- Keep steel frames non-opaque on dedicated servers as well as clients.

‎README.md‎

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1-
# PowerAdvantage
1+
# basePower for Minecraft 1.13.2
22

3-
Power Advantage provides shared power, fluid, item transport, and compatibility APIs for its Minecraft 1.13.2 expansion mods.
3+
basePower continues DrCyano's Power Advantage with conveyors, filters, fluid plumbing and the shared systems used by baseSteam and baseElectric.
44

5-
This port keeps existing registry names and includes migration from 1.10 and 1.12.
6-
Always back up a world before upgrading, and check that its other mods also support the target version.
7-
The [qualification notes](docs/1.13/CURRENT-QUALIFICATION.md) separate tested scenarios from remaining gaps;
5+
- Use Forge 25.0.223, Java 8, Base Metals 3.0.2.113021 and MMD OreSpawn 4.1.0.113021. The older Base Metals 3.0.1 download can crash while converting an old world.
6+
- Back up the world and config. Replace the old Advantage or base* jars together, then open a copy of your world first. Save it, close Minecraft completely, and reopen the copy before upgrading your main world.
7+
8+
The upgrade understands original Advantage 1.10.2 and the released base* builds for 1.10.2 and 1.12.2. Check that the other mods in your world also support 1.13.2.
9+
10+
All three mods share the **basePower** creative tab. Look for the sprocket.
11+
The [base* upgrade notes](docs/1.13/BASE-IDENTITY-MIGRATION.md) separate tested scenarios from remaining gaps;
812
they are not a guarantee that an entire modpack can be upgraded without losses.
913

1014
Recipe-book discovery now follows relevant ingredients. See the [all-Advantage material checklist and automated discovery tests](docs/1.13/RECIPE-DISCOVERY.md). To regenerate the checked-in unlock JSON after changing recipes, run `node tools/generate-recipe-unlocks.js`; `check` rejects missing or stale ingredient criteria.
@@ -15,7 +19,7 @@ The [manufacturing progression audit](docs/1.13/MANUFACTURING-PROGRESSION.md) tr
1519

1620
The `master-1.13.2` build uses ForgeGradle 7.0.34 and Gradle 9.6.1. Run Gradle with Java 17; Gradle resolves the Java 8 production toolchain.
1721

18-
Build the pinned Base Metals `3.0.1.113021` and OreSpawn `4.1.0.113021` deobf jars in their sibling checkouts, then run:
22+
Build the pinned Base Metals `3.0.2.113021` and OreSpawn `4.1.0.113021` deobf jars in their sibling checkouts, then run:
1923

2024
```text
2125
gradlew.bat clean check build javadoc verifyReleaseDependencies verifyReleaseArtifacts writeReleaseChecksums verifyEclipseProductionClasspath
@@ -31,6 +35,7 @@ Advantage's own archives normalize text to LF.
3135
All Advantage archives also exclude empty directories left behind by older source layouts.
3236

3337
Release jars are written to `build/libs`; `deobfJar` writes the sibling-development jar to `build/libs-dev`.
38+
For publishing, use the [MMD release workflow](https://github.com/MinecraftModDevelopmentMods/basePower/actions/workflows/deploy-release.yml). It publishes the same checked jar to CurseForge and MMD Maven.
3439

3540
For Eclipse, import this repository as an existing Gradle project and run:
3641

@@ -53,7 +58,7 @@ The [client resource probe](test-rig/client-resources/README.md) checks native b
5358
The [stronger regression-test backport](docs/1.13/TEST-COVERAGE-BACKPORT.md)
5459
records the local repairs, tested jar hashes and remaining manual checks.
5560

56-
The implementation namespace is `zone.moddev.mc.poweradvantage`. The historical `cyano.poweradvantage.api` surface, including `FluidNetworkApi`, remains available to dependent mods. Registry names, fluids, tile IDs, NBT keys, OreSpawn provider IDs, and configuration meaning remain stable.
61+
The implementation namespace is `zone.moddev.mc.basepower`. The historical `cyano.poweradvantage.api` surface, including `FluidNetworkApi`, remains available. World migration translates old Advantage registry, fluid and tile names to the corresponding base* names while retaining saved machine data.
5762

5863
PowerAdvantage owns the shared pre-flattening migration hook used by all three Advantage mods. See [the 1.13 migration guide](docs/1.13/MIGRATION.md) before opening an irreplaceable 1.10 or 1.12 world. The [Advantage Works rig](test-rig/README.md) provides repeatable machine, restart, world-generation, and migration checks.
5964

0 commit comments

Comments
 (0)