Step 3 of #39, for 26.1: Saturn builds and runs on Minecraft 26.1. The 26.1 jar also loads on the 26.1.1 and 26.1.2 hotfixes. 26.2 and 26.3 come in a follow-up, because 26.2 reworks the rendering API (screens move to Gui, and shader pipelines declare samplers through bind groups), and the glass shader depends on that.
Commits
Use emotes 0.1.2, which adds the 26.x builds.
Build with loom-back-compat and a Java toolchain per version. 1.21.x keeps the remapping Loom and Java 21. 26.x uses the plain Loom and Java 25, which foojay downloads when it's missing. CI installs both JDKs. buildAll collects jar where there's nothing to remap. fabric.mod.json now depends on fabric-api, because 26.x's Fabric API drops the old fabric alias. Nothing changes for the 1.21.x jars.
Build for Minecraft 26.1. Mostly renames: GuiGraphics became GuiGraphicsExtractor and render* became extract*. Stonecutter replacements handle the widespread ones. Version comments cover the camera's FOV and freelook hooks, the lightmap, the menu blur, the glass blur's projection, the key mapping helper and the splash screen. A new GuiRendererMixin draws Saturn's panorama instead of vanilla's; it's empty on older versions.
Draw hats and cloaks unlit on 26.1. 26.1 dropped the dragon's alpha pipeline, so an unlit entity-shader pipeline replaces it and world lighting no longer shows on cosmetics.
Checked
All 1.21.x versions and 26.1 compile. A Stonecutter round trip through 26.1 leaves src/ unchanged, and src/ compiles with 26.1 active.
On 26.1, a script found no missing mixin target names in the game jar.
26.1, 1.21.4 and 1.21.11 start in dev without errors. The 26.1 title screen shows Saturn's panorama and glass UI.
Hats and cloaks tested in a world on 26.1.
Notes
The Modrinth script tags each jar with the version in its file name only, so the 26.1 upload won't list 26.1.1 and 26.1.2 there, even though the jar runs on them.
Step 3 of #39, for 26.1: Saturn builds and runs on Minecraft 26.1. The 26.1 jar also loads on the 26.1.1 and 26.1.2 hotfixes. 26.2 and 26.3 come in a follow-up, because 26.2 reworks the rendering API (screens move to `Gui`, and shader pipelines declare samplers through bind groups), and the glass shader depends on that.
## Commits
- **Use emotes 0.1.2**, which adds the 26.x builds.
- **Build with loom-back-compat and a Java toolchain per version.** 1.21.x keeps the remapping Loom and Java 21. 26.x uses the plain Loom and Java 25, which foojay downloads when it's missing. CI installs both JDKs. `buildAll` collects `jar` where there's nothing to remap. `fabric.mod.json` now depends on `fabric-api`, because 26.x's Fabric API drops the old `fabric` alias. Nothing changes for the 1.21.x jars.
- **Build for Minecraft 26.1.** Mostly renames: `GuiGraphics` became `GuiGraphicsExtractor` and `render*` became `extract*`. Stonecutter replacements handle the widespread ones. Version comments cover the camera's FOV and freelook hooks, the lightmap, the menu blur, the glass blur's projection, the key mapping helper and the splash screen. A new `GuiRendererMixin` draws Saturn's panorama instead of vanilla's; it's empty on older versions.
- **Draw hats and cloaks unlit on 26.1.** 26.1 dropped the dragon's alpha pipeline, so an unlit entity-shader pipeline replaces it and world lighting no longer shows on cosmetics.
## Checked
- All 1.21.x versions and 26.1 compile. A Stonecutter round trip through 26.1 leaves `src/` unchanged, and `src/` compiles with 26.1 active.
- On 26.1, a script found no missing mixin target names in the game jar.
- 26.1, 1.21.4 and 1.21.11 start in dev without errors. The 26.1 title screen shows Saturn's panorama and glass UI.
- Hats and cloaks tested in a world on 26.1.
## Notes
- The Modrinth script tags each jar with the version in its file name only, so the 26.1 upload won't list 26.1.1 and 26.1.2 there, even though the jar runs on them.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Prepares the build for 26.x, which ships unobfuscated and needs Java 25
(#39):
- loom-back-compat applies the remapping Loom to 1.21.x and would apply
the plain one to 26.x. loom_version becomes loomx.loom_version.
- Each version compiles with its Java toolchain (21 for 1.21.x, 25 for
26.x), and the mixin configs take their compatibility level from it.
The foojay resolver downloads a missing JDK; CI installs 21 and 25.
- buildAll collects remapJar's output, or jar's where there's nothing
to remap.
- fabric.mod.json depends on fabric-api, Fabric API's mod id; 26.x's
jar no longer provides the old "fabric" alias.
Nothing changes for the 1.21.x jars.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Adds 26.1 as a Stonecutter version (step 3 of #39). Its jar also
loads on the 26.1.1 and 26.1.2 hotfixes.
Most of 26.1's changes are renames: the GUI's render methods became
extract methods and GuiGraphics became GuiGraphicsExtractor, which
Stonecutter replacements cover along with the moved render state
package and GuiRenderState's add methods. The rest are version
comments:
- The menu panorama is drawn by GuiRenderer from vanilla's cube map;
the new GuiRendererMixin swaps in Saturn's while a Saturn screen is
open (empty on older versions).
- The camera works out the FOV and aligns with its entity in
alignWithEntity, so the zoom and freelook hooks move to CameraMixin.
- Gamma and the menu blur are read while extracting render state.
- The glass blur's post chain takes a Projection and its buffer.
- The dragon's alpha render type is gone; capes use entityCutout.
- Fabric API renamed KeyBindingHelper to KeyMappingHelper.
The docs describe the 26.x build and Java 25.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Before 26.1 they use the dragon's alpha pipeline, whose shader only
samples the texture. entityCutout, which 26.1 used instead, applies
the lightmap and directional shading, so shadows and light from the
world showed on them. 26.1 builds the same unlit cutout from the
entity shader: the emissive snippet without the lightmap, plus
NO_CARDINAL_LIGHTING and NO_OVERLAY.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Step 3 of #39, for 26.1: Saturn builds and runs on Minecraft 26.1. The 26.1 jar also loads on the 26.1.1 and 26.1.2 hotfixes. 26.2 and 26.3 come in a follow-up, because 26.2 reworks the rendering API (screens move to
Gui, and shader pipelines declare samplers through bind groups), and the glass shader depends on that.Commits
buildAllcollectsjarwhere there's nothing to remap.fabric.mod.jsonnow depends onfabric-api, because 26.x's Fabric API drops the oldfabricalias. Nothing changes for the 1.21.x jars.GuiGraphicsbecameGuiGraphicsExtractorandrender*becameextract*. Stonecutter replacements handle the widespread ones. Version comments cover the camera's FOV and freelook hooks, the lightmap, the menu blur, the glass blur's projection, the key mapping helper and the splash screen. A newGuiRendererMixindraws Saturn's panorama instead of vanilla's; it's empty on older versions.Checked
src/unchanged, andsrc/compiles with 26.1 active.Notes
🤖 Generated with Claude Code