Moving every version to one shared src/ with Stonecutter (#8) kept each version's behaviour. Where a newer version left out something an older one implements, the older code stays behind a version condition, and the newer side is marked with a TODO. These are the gaps it found, newest-versions-first:
Custom nametags on 1.21.9+.NametagsMixin hooks EntityRenderer.renderLabelIfPresent(…, VertexConsumerProvider, …). 1.21.9 moved label rendering to the render queue, so the mixin is empty there and NametagsMod does nothing. (impl/features/mixins/misc/NametagsMixin.java)
Splash screen loading-bar border on 1.21.9+.context.drawBorder is only called before 1.21.9. (saturnclient/mixin/SplashOverlayMixin.java)
Drag deltas on 1.21.9+.SaturnScreenFabric.mouseDragged passes 0.0, 0.0 to Saturn's screens; 1.21.8 passes the real deltas. Check whether offsetX/offsetY are the same values. (impl/ui/SaturnScreenFabric.java)
Screen resize on 1.21.11. The resize override is only hooked before 1.21.11, where Screen.resize changed signature. (impl/ui/SaturnScreenFabric.java)
World age on 1.21.11.WorldFeatureImpl.getWorldAge returns 0 on 1.21.11; older versions use world.getTime(). It's used by the TPS feature and the day counter. (impl/features/world/WorldFeatureImpl.java)
Title panorama and background blur on 1.21.6+. Saturn screens draw the rotating panorama and blur it by screen.backgroundBlur only before 1.21.6's GUI rewrite. Related to #23. (impl/ui/SaturnScreenFabric.java)
Role icon in player names on 1.21.6 and 1.21.7. It's added in PlayerEntityRendererMixin.updateRenderState by storing the player in the render state, which needs Fabric API's RenderStateDataKey (1.21.8+). 1.21.6/1.21.7 would need another way to pass the player to the name. (saturnclient/mixin/PlayerEntityRendererMixin.java)
Search src/ for TODO to find each spot. Once one is fixed, remove its version condition so every version runs the same code.
Moving every version to one shared `src/` with Stonecutter (#8) kept each version's behaviour. Where a newer version left out something an older one implements, the older code stays behind a version condition, and the newer side is marked with a `TODO`. These are the gaps it found, newest-versions-first:
- [x] **Custom nametags on 1.21.9+.** `NametagsMixin` hooks `EntityRenderer.renderLabelIfPresent(…, VertexConsumerProvider, …)`. 1.21.9 moved label rendering to the render queue, so the mixin is empty there and `NametagsMod` does nothing. (`impl/features/mixins/misc/NametagsMixin.java`)
- [x] **Splash screen loading-bar border on 1.21.9+.** `context.drawBorder` is only called before 1.21.9. (`saturnclient/mixin/SplashOverlayMixin.java`)
- [x] **Drag deltas on 1.21.9+.** `SaturnScreenFabric.mouseDragged` passes `0.0, 0.0` to Saturn's screens; 1.21.8 passes the real deltas. Check whether `offsetX`/`offsetY` are the same values. (`impl/ui/SaturnScreenFabric.java`)
- [x] **Screen resize on 1.21.11.** The `resize` override is only hooked before 1.21.11, where `Screen.resize` changed signature. (`impl/ui/SaturnScreenFabric.java`)
- [x] **World age on 1.21.11.** `WorldFeatureImpl.getWorldAge` returns 0 on 1.21.11; older versions use `world.getTime()`. It's used by the TPS feature and the day counter. (`impl/features/world/WorldFeatureImpl.java`)
- [x] **Title panorama and background blur on 1.21.6+.** Saturn screens draw the rotating panorama and blur it by `screen.backgroundBlur` only before 1.21.6's GUI rewrite. Related to #23. (`impl/ui/SaturnScreenFabric.java`)
- [x] **Role icon in player names on 1.21.6 and 1.21.7.** It's added in `PlayerEntityRendererMixin.updateRenderState` by storing the player in the render state, which needs Fabric API's `RenderStateDataKey` (1.21.8+). 1.21.6/1.21.7 would need another way to pass the player to the name. (`saturnclient/mixin/PlayerEntityRendererMixin.java`)
Search `src/` for `TODO` to find each spot. Once one is fixed, remove its version condition so every version runs the same code.
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.
Moving every version to one shared
src/with Stonecutter (#8) kept each version's behaviour. Where a newer version left out something an older one implements, the older code stays behind a version condition, and the newer side is marked with aTODO. These are the gaps it found, newest-versions-first:NametagsMixinhooksEntityRenderer.renderLabelIfPresent(…, VertexConsumerProvider, …). 1.21.9 moved label rendering to the render queue, so the mixin is empty there andNametagsModdoes nothing. (impl/features/mixins/misc/NametagsMixin.java)context.drawBorderis only called before 1.21.9. (saturnclient/mixin/SplashOverlayMixin.java)SaturnScreenFabric.mouseDraggedpasses0.0, 0.0to Saturn's screens; 1.21.8 passes the real deltas. Check whetheroffsetX/offsetYare the same values. (impl/ui/SaturnScreenFabric.java)resizeoverride is only hooked before 1.21.11, whereScreen.resizechanged signature. (impl/ui/SaturnScreenFabric.java)WorldFeatureImpl.getWorldAgereturns 0 on 1.21.11; older versions useworld.getTime(). It's used by the TPS feature and the day counter. (impl/features/world/WorldFeatureImpl.java)screen.backgroundBluronly before 1.21.6's GUI rewrite. Related to #23. (impl/ui/SaturnScreenFabric.java)PlayerEntityRendererMixin.updateRenderStateby storing the player in the render state, which needs Fabric API'sRenderStateDataKey(1.21.8+). 1.21.6/1.21.7 would need another way to pass the player to the name. (saturnclient/mixin/PlayerEntityRendererMixin.java)Search
src/forTODOto find each spot. Once one is fixed, remove its version condition so every version runs the same code.