Skip to content
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
18 changes: 9 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
name: IronAgeFurniture 1.20.6 NeoForge CI
name: IronAgeFurniture 1.21.1 NeoForge CI

on:
push:
branches:
- master-1.20.6-neo
- master-1.21.1-neo
- 'feature/**'
pull_request:
branches:
- master-1.20.6-neo
- master-1.21.1-neo

permissions:
contents: read

concurrency:
group: iron-age-furniture-1.20.6-neoforge-${{ github.workflow }}-${{ github.ref }}
group: iron-age-furniture-1.21.1-neoforge-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
Expand Down Expand Up @@ -81,20 +81,20 @@ jobs:
- name: Upload audited release candidate
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: iron-age-furniture-1.20.6-neoforge-${{ github.sha }}
name: iron-age-furniture-1.21.1-neoforge-${{ github.sha }}
if-no-files-found: error
retention-days: 30
path: |
build/libs/iron-age-furniture-0.3.0.120062.jar
build/libs/iron-age-furniture-0.3.0.120062-sources.jar
build/libs/iron-age-furniture-0.3.0.120062-javadoc.jar
build/libs/iron-age-furniture-0.3.0.121012.jar
build/libs/iron-age-furniture-0.3.0.121012-sources.jar
build/libs/iron-age-furniture-0.3.0.121012-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-1.20.6-neoforge-diagnostics-${{ github.sha }}
name: iron-age-furniture-1.21.1-neoforge-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-1.20.6-neo
- master-1.21.1-neo
- 'feature/**'
pull_request:
branches:
- master-1.20.6-neo
- master-1.21.1-neo
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-1.20.6-neo
- master-1.21.1-neo
- 'feature/**'
pull_request:
branches:
- master-1.20.6-neo
- master-1.21.1-neo

permissions:
contents: read
Expand Down
19 changes: 13 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
# IronAgeFurniture 0.3.0.120062
# IronAgeFurniture 0.3.0.121012

- Translate IronAgeFurniture to Minecraft 1.20.6 and NeoForge 20.6.139 on Java 21.
- Replace Forge conditional wrappers with native `neoforge:conditions` and use NeoForge registry aliases for legacy BOP cherry furniture.
- Retain the complete contemporary Biomes O' Plenty furniture family and its conditional recipes and advancements.
- Omit Biomes We've Gone and Immersive Engineering furniture because neither integration has a compatible release for this target.
- Carry forward the deterministic checked-in furniture catalog, scoped BOP cherry remap, and positive optional-integration runtime probe.
- Advance IronAgeFurniture to Minecraft 1.21.1 and NeoForge 21.1.247 on Java 21.
- Move recipes and recipe advancements to Minecraft 1.21's singular data directories and retain native `neoforge:conditions`.
- Retain contemporary Biomes O' Plenty furniture, add 25 Oh The Biomes We've Gone wood families, and restore Immersive Engineering treated-wood furniture.
- Correct every BOP and BWG model to use its matching texture and update the retained Immersive Engineering models for the `wooden_decoration` texture layout.
- Update legacy vanilla texture paths for iron sconces and treated-wood bench upholstery.
- Remap IronAgeFurniture's legacy BOP cherry IDs to vanilla cherry, and defensible BYG furniture IDs to their BWG replacements.
- Expand the deterministic catalog and positive optional-integration runtime probe across BOP, BWG, and Immersive Engineering.
- Fix recipe advancements so furniture unlocks only when its actual ingredient is obtained, including conditional optional-mod 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 waterlogging when lamps and other waterloggable furniture are placed or fall into water.
- Provide reproducible Eclipse/Buildship setup with the exact Temurin Java 21 toolchain, processed resources, and a duplicate-free NeoForge classpath.

This is a release candidate changelog. Publication requires the protected default-branch release workflow.
12 changes: 10 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,17 @@

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

This branch targets Minecraft 1.20.6 with NeoForge 20.6.139. Its current complete version is `0.3.0.120062` and its Maven coordinate is `zone.moddev.mc:iron-age-furniture:0.3.0.120062`.
This branch targets Minecraft 1.21.1 with NeoForge 21.1.247. Its current complete version is `0.3.0.121012` and its Maven coordinate is `zone.moddev.mc:iron-age-furniture:0.3.0.121012`.

## Optional integrations

Biomes O' Plenty, Oh The Biomes We've Gone, and Immersive Engineering furniture is enabled only when the corresponding mod is present. None of these mods is a hard dependency. Recipes and recipe advancements for optional furniture are loaded conditionally with their integration.

Existing IronAgeFurniture BOP Cherry furniture remaps to vanilla Cherry, while supported legacy BYG furniture names remap to their BWG replacements when BWG is installed.

## Build

Use the checked-in Gradle wrapper with Temurin Java 21.0.7+6. The checked-in Mavenizer compatibility fixture uses Temurin Java 25.0.3+9; the Java 8 installation retained in CI is only a launcher toolchain needed by the Forge preparation stack.
Use the checked-in Gradle wrapper with Temurin Java 21.0.7+6. This NeoForge target uses NeoGradle directly and does not need the Forge Mavenizer preparation fixture.

```text
gradlew.bat clean check build javadoc verifyReleaseArtifacts verifyReleaseChecksums
Expand All @@ -18,6 +24,8 @@ Generate reproducible Eclipse/Buildship metadata with:
gradlew.bat prepareEclipse verifyEclipseProductionClasspath
```

Run this command from a terminal before the first Eclipse import or Gradle refresh. It records the exact Temurin 21.0.7+6 installation in the machine-local Buildship preferences; otherwise Eclipse may select a different runtime that is rejected by the pinned-toolchain check.

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.
Expand Down
Loading
Loading