Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
* text=auto eol=lf
*.bat text eol=crlf
*.png binary
*.ogg binary
*.jar binary
*.zip binary
88 changes: 49 additions & 39 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,96 +1,105 @@
name: Steam Advantage 1.12 CI
name: Steam Advantage 1.13 CI

on:
push:
branches:
- master-1.12.2
- 'feature/**'
branches: [master-1.13.2, 'feature/**']
pull_request:
branches:
- master-1.12.2
branches: [master-1.13.2]

permissions:
contents: read

concurrency:
group: steamadvantage-1.12-${{ github.workflow }}-${{ github.ref }}
group: steamadvantage-1.13-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
name: Build, test, and audit
runs-on: ubuntu-latest
timeout-minutes: 75

timeout-minutes: 105
steps:
- name: Check out SteamAdvantage
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Check out pinned PowerAdvantage
- name: Check out pinned OreSpawn
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/OreSpawn
ref: 6a7c2bb07b9a7771128812fcc07d185f7d9df58b
path: .ci-dependencies/OreSpawn
- name: Use canonical LF dependency inputs
# Base Metals predates archive text normalization; its LF artifact is separately pinned.
run: git config --global core.autocrlf false
- name: Check out pinned Base Metals
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/BaseMetals
ref: 1376a20d7d5ba22d3abc77dc34b49a2c88943697
path: .ci-dependencies/BaseMetals
- name: Check out PowerAdvantage 1.13.2
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/PowerAdvantage
ref: 40811a0be37174a0633998eb3d820d95755d35e8
ref: 6a845ad68eb1e34dcdd793dceb9cb528be22cedf
path: .ci-dependencies/PowerAdvantage

- name: Install Java 8 toolchain
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '8.0.502+7'

- name: Install Java 17 for Gradle
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: microsoft
java-version: '17'

- name: Set up Gradle
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6

- name: Build pinned PowerAdvantage development jar
id: poweradvantage
- name: Build 1.13.2 dependency chain
id: dependencies
shell: bash
run: |
set -euo pipefail
dependency="$GITHUB_WORKSPACE/.ci-dependencies/PowerAdvantage"
mirror="$RUNNER_TEMP/reborncore-mirror"
chmod +x "$dependency/gradlew"
(
cd "$dependency"
bash gradle/stage-reborncore-release.sh "$mirror"
./gradlew deobfJar verifyReleaseDependencies \
-PrebornCoreVerificationRepository="$mirror" --no-daemon --stacktrace
)
jar="$dependency/build/libs-dev/PowerAdvantage-2.4.1.112021-deobf.jar"
test -f "$jar"
echo "jar=$jar" >> "$GITHUB_OUTPUT"

orespawn="$GITHUB_WORKSPACE/.ci-dependencies/OreSpawn"
basemetals="$GITHUB_WORKSPACE/.ci-dependencies/BaseMetals"
power="$GITHUB_WORKSPACE/.ci-dependencies/PowerAdvantage"
chmod +x "$orespawn/gradlew" "$basemetals/gradlew" "$power/gradlew"
(cd "$orespawn" && ./gradlew jar --no-daemon --stacktrace)
(cd "$basemetals" && ./gradlew jar --no-daemon --stacktrace)
osjar="$orespawn/build/libs-dev/OreSpawn-4.1.0.113021-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.0.1.113021-deobf.jar"
(cd "$power" && ./gradlew jar verifyReleaseDependencies -PbaseMetalsDeobfJar="$bmjar" -PoreSpawnDeobfJar="$osjar" --no-daemon --stacktrace)
powerjar="$power/build/libs-dev/PowerAdvantage-2.4.4.113021-deobf.jar"
test -f "$osjar" && test -f "$bmjar" && test -f "$powerjar"
echo "orespawn=$osjar" >> "$GITHUB_OUTPUT"
echo "basemetals=$bmjar" >> "$GITHUB_OUTPUT"
echo "power=$powerjar" >> "$GITHUB_OUTPUT"
echo "power_ref=$(git -C "$power" rev-parse HEAD)" >> "$GITHUB_OUTPUT"
- name: Build and audit release artifacts
run: >-
./gradlew clean check build javadoc verifyReleaseDependencies verifyReleaseArtifacts
writeReleaseChecksums verifyEclipseProductionClasspath
-PpowerAdvantageDeobfJar=${{ steps.poweradvantage.outputs.jar }}
-PpowerAdvantageDeobfJar=${{ steps.dependencies.outputs.power }}
-Ppoweradvantage_source_ref=${{ steps.dependencies.outputs.power_ref }}
-PbaseMetalsDeobfJar=${{ steps.dependencies.outputs.basemetals }}
-PoreSpawnDeobfJar=${{ steps.dependencies.outputs.orespawn }}
--no-daemon --stacktrace

- name: Upload audited release candidate
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: SteamAdvantage-1.12.2-${{ github.sha }}
name: SteamAdvantage-1.13.2-${{ github.sha }}
if-no-files-found: error
retention-days: 30
path: |
build/libs/SteamAdvantage-2.2.1.112021.jar
build/libs/SteamAdvantage-2.2.1.112021-sources.jar
build/libs/SteamAdvantage-2.2.1.112021-javadoc.jar
build/libs/SteamAdvantage-2.2.5.113021.jar
build/libs/SteamAdvantage-2.2.5.113021-sources.jar
build/libs/SteamAdvantage-2.2.5.113021-javadoc.jar
build/release/SHA256SUMS
CHANGELOG.txt

- name: Upload diagnostics on failure
if: failure()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: SteamAdvantage-1.12.2-diagnostics-${{ github.sha }}
name: SteamAdvantage-1.13.2-diagnostics-${{ github.sha }}
if-no-files-found: ignore
retention-days: 14
path: |
Expand All @@ -99,3 +108,4 @@ jobs:
build/*-run/logs/**
build/problems/**
.ci-dependencies/PowerAdvantage/build/reports/**
.ci-dependencies/PowerAdvantage/build/libs-dev/*.jar
73 changes: 41 additions & 32 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,9 @@ name: CodeQL

on:
push:
branches:
- master-1.12.2
- 'feature/**'
branches: [master-1.13.2, 'feature/**']
pull_request:
branches:
- master-1.12.2
branches: [master-1.13.2]
schedule:
- cron: '53 7 * * 4'

Expand All @@ -20,62 +17,74 @@ jobs:
analyze:
name: Analyze Java
runs-on: ubuntu-latest
timeout-minutes: 60

timeout-minutes: 90
steps:
- name: Check out SteamAdvantage
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Check out pinned PowerAdvantage
- name: Check out pinned OreSpawn
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/OreSpawn
ref: 6a7c2bb07b9a7771128812fcc07d185f7d9df58b
path: .ci-dependencies/OreSpawn
- name: Use canonical LF dependency inputs
# Base Metals predates archive text normalization; its LF artifact is separately pinned.
run: git config --global core.autocrlf false
- name: Check out pinned Base Metals
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/BaseMetals
ref: 1376a20d7d5ba22d3abc77dc34b49a2c88943697
path: .ci-dependencies/BaseMetals
- name: Check out PowerAdvantage 1.13.2
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/PowerAdvantage
ref: 40811a0be37174a0633998eb3d820d95755d35e8
ref: 6a845ad68eb1e34dcdd793dceb9cb528be22cedf
path: .ci-dependencies/PowerAdvantage

- name: Install Java 8 toolchain
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '8.0.502+7'

- name: Install Java 17 for Gradle
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: microsoft
java-version: '17'

- name: Set up Gradle
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6

- name: Build pinned PowerAdvantage development jar
id: poweradvantage
- name: Build 1.13.2 dependency chain
id: dependencies
shell: bash
run: |
set -euo pipefail
dependency="$GITHUB_WORKSPACE/.ci-dependencies/PowerAdvantage"
mirror="$RUNNER_TEMP/reborncore-mirror"
chmod +x "$dependency/gradlew"
(
cd "$dependency"
bash gradle/stage-reborncore-release.sh "$mirror"
./gradlew deobfJar verifyReleaseDependencies \
-PrebornCoreVerificationRepository="$mirror" --no-daemon --stacktrace
)
jar="$dependency/build/libs-dev/PowerAdvantage-2.4.1.112021-deobf.jar"
test -f "$jar"
echo "jar=$jar" >> "$GITHUB_OUTPUT"

orespawn="$GITHUB_WORKSPACE/.ci-dependencies/OreSpawn"
basemetals="$GITHUB_WORKSPACE/.ci-dependencies/BaseMetals"
power="$GITHUB_WORKSPACE/.ci-dependencies/PowerAdvantage"
chmod +x "$orespawn/gradlew" "$basemetals/gradlew" "$power/gradlew"
(cd "$orespawn" && ./gradlew jar --no-daemon --stacktrace)
(cd "$basemetals" && ./gradlew jar --no-daemon --stacktrace)
osjar="$orespawn/build/libs-dev/OreSpawn-4.1.0.113021-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.0.1.113021-deobf.jar"
(cd "$power" && ./gradlew jar verifyReleaseDependencies -PbaseMetalsDeobfJar="$bmjar" -PoreSpawnDeobfJar="$osjar" --no-daemon --stacktrace)
powerjar="$power/build/libs-dev/PowerAdvantage-2.4.4.113021-deobf.jar"
test -f "$osjar" && test -f "$bmjar" && test -f "$powerjar"
echo "orespawn=$osjar" >> "$GITHUB_OUTPUT"
echo "basemetals=$bmjar" >> "$GITHUB_OUTPUT"
echo "power=$powerjar" >> "$GITHUB_OUTPUT"
echo "power_ref=$(git -C "$power" rev-parse HEAD)" >> "$GITHUB_OUTPUT"
- name: Initialize CodeQL
uses: github/codeql-action/init@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4
with:
languages: java-kotlin

- name: Compile SteamAdvantage production code
run: |
chmod +x ./gradlew
./gradlew clean classes --rerun-tasks --no-build-cache --no-daemon --stacktrace \
-PpowerAdvantageDeobfJar=${{ steps.poweradvantage.outputs.jar }}

-PpowerAdvantageDeobfJar=${{ steps.dependencies.outputs.power }} \
-Ppoweradvantage_source_ref=${{ steps.dependencies.outputs.power_ref }} \
-PbaseMetalsDeobfJar=${{ steps.dependencies.outputs.basemetals }} \
-PoreSpawnDeobfJar=${{ steps.dependencies.outputs.orespawn }}
- name: Analyze
uses: github/codeql-action/analyze@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4
4 changes: 2 additions & 2 deletions .github/workflows/validate-gradle-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ name: Validate Gradle Wrapper
on:
push:
branches:
- master-1.12.2
- master-1.13.2
- 'feature/**'
pull_request:
branches:
- master-1.12.2
- master-1.13.2

permissions:
contents: read
Expand Down
22 changes: 22 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@
/run/
/run-data/
/run.*
/$run/
/eula.txt
/server.properties
/*.log
/classes/
/logs/
Expand Down Expand Up @@ -62,6 +65,25 @@
/replay_pid*.log

/secret.json
# Nested local tooling and generated output
AGENTS.md
AGENT.md
CLAUDE.md
GEMINI.md
ARCHITECT.md
agent-notes/
.codex/
.agent/
.agents/
.claude/
.gemini/
.cursor/
agent-*.md
codex-*.md
*.log
*.class
__pycache__/
*.pyc
/.DS_Store
/README.txt
/forge-*-changelog.txt
28 changes: 28 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,31 @@
Steam Advantage 2.2.5.113021

- Keep development archives identical in existing workspaces and fresh CI checkouts.
- Separate different steam equipment into distinct recipe-book cells while keeping same-output alternatives together.
- Restore legacy steam-parts chest loot through Power Advantage's native fallback when Additional Loot Tables is absent.
- Recheck all steam equipment acquisition and discovery paths in every recipe mode, including the electric boiler's wire ingredient.
- Add ingredient-triggered recipe-book discoveries for every crafting variant, without exposing crushing recipes or bypassing recipe modes.
- Prevent Eclipse builds from replacing processed mod metadata with unresolved source templates.
- Fix literal 1.13 blockstate model paths and replace removed normal selectors, preserving every orientation and registry identity.
- Add modern language aliases alongside legacy GUI keys and audit native client resources in the combined Advantage launch.
- Point generated Eclipse mod discovery at bin/main and audit it, preventing launches that omit Steam Advantage.
- Make tile-type registration generic inference explicit for Eclipse's compiler.
- Fix drill output into empty vanilla rear inventories and mark both inventories dirty after transfer.
- Preserve unfinished drill progress across chunk reloads and full restarts; reset it when a saved target state has changed.
- Keep legacy progress and target-coordinate NBT readable, with optional target-state snapshots for new saves.

- Migrate minecraft-prefixed dotted tile IDs from pre-modernization 1.12 saves without resetting machine contents, pressure, progress, or temperature.

- Port Steam Advantage to Minecraft 1.13.2, Forge 25.0.223, and the zone.moddev.mc implementation namespace.
- Register legacy block-state, tile, item, and NBT migrations with Power Advantage for direct 1.10 and 1.12 upgrades.
- Preserve drill facing, energy, inventory, movement, output, and helper-bit state through migration and full restart.
- Restore pump fluid from Tank with TankOut fallback and geothermal temperature from Temperature with Tempoerature fallback.
- Register all musket enchantments on the Forge mod registry bus.
- Restore vanilla-style crusher comparator levels from 0 through 15.
- Accept Power and Mineralogy crude-oil aliases in the oil boiler without changing configured fuel overrides.
- Guard tagged recipes so reduced mod sets cannot drop required material ingredients.
- Add reproducible 1.13 release artifacts, dependency audits, Eclipse metadata, and Advantage Works coverage.

Steam Advantage 2.2.1.112021

- Move the Minecraft 1.12.2 build to ForgeGradle 7 and Gradle 9.6.1.
Expand Down
Loading
Loading