Step 6 of #8. versions/1.21.4/src is gone, so all eight versions (1.21.4 to
1.21.11) build from src/.
1.21.4's differences from 1.21.5 are behind version comments:
- The end gateway render layer has no render pipeline before 1.21.5
(ShaderUtils: the pipeline field only exists from 1.21.5, and the layer
is a four-way chain).
- Hat head rotation, the NativeImageBackedTexture constructor, armor slots
(inventory.armor vs getEquippedStack), MatrixStackMixin's Quaternionf,
and inside the pre-1.21.6 implementations: prevHeadYaw, GUI lighting,
ModelTransformationMode, item depth, setShaderTexture and the blur
uniform call. Those are one-line version comments, since the pre-1.21.6
blocks are already inside /* */ on newer versions.
1.21.5's drawItem wrapped its body in a second isEmpty check after already
returning early for empty stacks; the redundant check is gone, so 1.21.4
and 1.21.5 share the body.
Freelook's zoom-out (FreelookMod.shouldZoomOut in GameRendererMixin) only
existed on 1.21.4. It doesn't depend on the Minecraft version, so it's
back on every version.
With no old copies left, the mc-<v> fallback in settings.gradle.kts and
scripts/port.sh are removed, and README and VERSION_GUIDE describe the
single layout.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
1.21.5 is the first version before the 1.21.6 GUI rewrite, which moved
GUI drawing from vertex consumers and a MatrixStack to render states and
a 2D Matrix3x2fStack.
- RenderScopeImpl and EntityDrawerImpl have two whole implementations,
one per side of 1.21.6 (a single >=1.21.6 / else split), instead of
conditionals scattered through them. Callers use RenderScopeImpl(context)
in every version; 1.21.5's did the same thing through its
(matrices, vertexConsumers) constructor.
- MatrixStackMixin (MatrixStack as a MatrixStackRef) is real before 1.21.6
and empty from 1.21.6, registered everywhere like NametagsMixin.
- DrawContextAccessor exposes the vertex consumers before 1.21.6 and the
GUI render state from it.
- Smaller changes: fog (BackgroundRenderer vs FogRenderer), the end
portal texture arguments (ShaderUtils, now a flat three-way chain), the
status effect sprite manager, and getIconId only from 1.21.6.
Features 1.21.6+ lacks stay on 1.21.5, with a TODO: the title panorama
behind Saturn screens and the background blur (screen.backgroundBlur,
see #23).
The 1.21.5 jar differs from the old one only in the helpers from earlier
steps, the RenderScopeImpl(context) calls, the empty SaturnRenderState
and unused Matrix3x2fStackRef, and 1.21.5's dead NameTagMixin (never
registered) being gone. 1.21.6-1.21.11 only gain the empty
MatrixStackMixin and its impl.mixins.json entry.
Co-Authored-By: Claude Opus 5.5 <[email protected]>