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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
20 changes: 10 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
name: IronAgeFurniture 26.2 CI
name: IronAgeFurniture 26.3 CI

on:
push:
branches:
- master-26.2
- master-26.3
- 'feature/**'
pull_request:
branches:
- master-26.2
- master-26.3

permissions:
contents: read

concurrency:
group: iron-age-furniture-26.2-${{ github.workflow }}-${{ github.ref }}
group: iron-age-furniture-26.3-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
Expand Down Expand Up @@ -50,7 +50,7 @@ jobs:
| tee "$RUNNER_TEMP/cold-forge-bootstrap.log"
grep -F "OreSpawn Mavenizer compatibility runtime: Java 25.0.3" \
"$RUNNER_TEMP/cold-forge-bootstrap.log"
grep -F "OreSpawn Mavenizer compatibility: applied 0 rule(s) for net.minecraftforge:forge:26.2-65.1.0 (explicit no-op)" \
grep -F "OreSpawn Mavenizer compatibility: applied 0 rule(s) for net.minecraftforge:forge:26.3-66.0.2 (explicit no-op)" \
"$RUNNER_TEMP/cold-forge-bootstrap.log"
find "$GRADLE_USER_HOME" .gradle/mavenizer \
-name '*.orespawn-compatibility' -type f -print0 \
Expand Down Expand Up @@ -111,21 +111,21 @@ jobs:
- name: Upload audited release candidate
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: iron-age-furniture-26.2-${{ github.sha }}
name: iron-age-furniture-26.3-${{ github.sha }}
if-no-files-found: error
retention-days: 30
path: |
build/libs/iron-age-furniture-0.3.0.2602001.jar
build/libs/iron-age-furniture-0.3.0.2602001-sources.jar
build/libs/iron-age-furniture-0.3.0.2602001-javadoc.jar
build/libs/iron-age-furniture-0.3.0.2603001.jar
build/libs/iron-age-furniture-0.3.0.2603001-sources.jar
build/libs/iron-age-furniture-0.3.0.2603001-javadoc.jar
build/release/SHA256SUMS
CHANGELOG.md

- name: Upload diagnostics on failure
if: failure()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: iron-age-furniture-26.2-diagnostics-${{ github.sha }}
name: iron-age-furniture-26.3-diagnostics-${{ github.sha }}
if-no-files-found: ignore
retention-days: 14
path: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ name: CodeQL
on:
push:
branches:
- master-26.2
- master-26.3
- 'feature/**'
pull_request:
branches:
- master-26.2
- master-26.3
schedule:
- cron: '43 7 * * 4'

Expand Down
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-26.2
- master-26.3
- 'feature/**'
pull_request:
branches:
- master-26.2
- master-26.3

permissions:
contents: read
Expand Down
20 changes: 9 additions & 11 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
# IronAgeFurniture 0.3.0.2602001
# IronAgeFurniture 0.3.0.2603001

- Port IronAgeFurniture to Minecraft 26.2 and Forge 65.1.0 on Java 25.
- Retain Pale Oak and the complete contemporary Biomes O' Plenty furniture family, including Origin Oak.
- Validate built-in texture paths and every optional wood model semantically against the exact pinned Biomes O' Plenty jar.
- Omit Oh The Biomes We've Gone and Immersive Engineering because neither integration supports this target matrix.
- Generate Forge 65 item definitions and target-native conditional recipe and advancement data.
- Carry forward the deterministic checked-in furniture catalog, scoped BOP cherry remap, and positive BOP runtime probe.
- Fix recipe advancements so furniture unlocks only when its actual ingredient is obtained, including conditional BOP recipes.
- Restore normal wooden-furniture fire behaviour while keeping Crimson and Warped furniture non-flammable.
- Restore throwable lava lamps, water shattering with the glass sound and obsidean-chunk drop, and safe creative-mode removal.
- Preserve transparent glass and visible contents while glow, lava, and red lamps are falling.
- Port IronAgeFurniture to Minecraft 26.3 and Forge 66.0.2 on Java 25.
- Retain the complete vanilla wood catalog, including Pale Oak, plus the existing furniture, lighting, flammability, lava-lamp, and save-compatibility behavior.
- Preserve lava-filled floor and wall sconces when they become waterlogged by converting them to the matching waterlogged empty sconce and dropping exactly one obsidian chunk without replacing the supporting block.
- Omit Biomes O' Plenty, Oh The Biomes We've Gone, and Immersive Engineering furniture because none currently provides a compatible Forge 26.3 release.
- Generate Minecraft 26.3 item definitions and target-native recipe and advancement data from the deterministic checked-in furniture catalog.
- Retain the scoped BOP-cherry registry mappings so retired IronAgeFurniture IDs continue to map to vanilla Cherry furniture.
- Update redstone connectivity overrides and recipe-unlock criteria for the Minecraft 26.3 APIs and data schema.
- Provide reproducible Eclipse/Buildship setup with the exact Temurin Java 25 toolchain, processed resources, and a production-only Forge classpath.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@

IronAgeFurniture adds chairs, stools, benches, lighting, and other ye olde-style furniture to Minecraft.

This branch targets Minecraft 26.2 with Forge 65.1.0. Its current complete version is `0.3.0.2602001` and its Maven coordinate is `zone.moddev.mc:iron-age-furniture:0.3.0.2602001`.
This branch targets Minecraft 26.3 with Forge 66.0.2. Its current complete version is `0.3.0.2603001` and its Maven coordinate is `zone.moddev.mc:iron-age-furniture:0.3.0.2603001`.

## Optional integrations

Biomes O' Plenty furniture is enabled only when Biomes O' Plenty is present. It is not a hard dependency. This target supports the complete contemporary BOP wood family, including Origin Oak. Oh The Biomes We've Gone and Immersive Engineering furniture are intentionally unavailable because neither integration has a compatible release for this target.
No optional biome or engineering integration currently has a compatible Forge 26.3 release, so this target contains the complete vanilla wood catalog only. Biomes O' Plenty, Oh The Biomes We've Gone, and Immersive Engineering furniture can be reintroduced after their owning mods publish compatible builds that can be pinned and tested.

Recipes and recipe advancements for BOP furniture are loaded conditionally with the integration. Existing IronAgeFurniture BOP Cherry furniture remaps to vanilla Cherry.
The scoped missing-mapping aliases for retired IronAgeFurniture Biomes O' Plenty Cherry IDs remain so those IDs continue to resolve to the equivalent vanilla Cherry furniture.

## Build

Use the checked-in Gradle wrapper and exact Temurin Java 25.0.3+9 toolchain. The checksum-sealed Mavenizer fixture also runs under Java 25 and prepares Forge without downloading build tools dynamically in CI.

```text
gradlew.bat clean check build javadoc verifyReleaseArtifacts verifyReleaseChecksums
gradlew.bat clean check build javadoc verifyReleaseArtifacts writeReleaseChecksums verifyReleaseChecksums
```

Generate reproducible Eclipse/Buildship metadata with:
Expand All @@ -26,6 +26,6 @@ gradlew.bat prepareEclipse verifyEclipseProductionClasspath

Release publication is initiated manually from the protected default-branch dispatcher after the exact target commit has passed hosted CI. Building locally does not tag or publish a release.

Furniture registrations and their matching blockstates, models, recipes, advancements, and translations are generated from `gradle/furniture-catalog.json`. Normal builds verify committed output without changing it; run `gradlew.bat updateFurnitureCatalog` only when intentionally changing the catalog.
Furniture registrations and their matching blockstates, models, recipes, advancements, item definitions, and translations are generated from `gradle/furniture-catalog.json`. Normal builds verify committed output without changing it; run `gradlew.bat updateFurnitureCatalog` only when intentionally changing the catalog.

The Java API namespace is `zone.moddev.mc.ironagefurniture`. The persistent Forge mod, registry, resource, data, configuration, and saved-world namespace remains `ironagefurniture`.
Loading
Loading