From 7ce54c85610cab872a996d86b8cc2452357342ad Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Mon, 23 Mar 2026 19:31:11 +0100 Subject: [PATCH 1/4] Fixed 1.21.5 end cosmetics shader --- .../impl/cosmetics/utils/ShaderUtils.java | 2 +- .../impl/cosmetics/utils/ShaderUtils.java | 21 ++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/cosmetics/utils/ShaderUtils.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/cosmetics/utils/ShaderUtils.java index 1375ae3..6d74c3f 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/cosmetics/utils/ShaderUtils.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/cosmetics/utils/ShaderUtils.java @@ -10,7 +10,7 @@ import net.minecraft.util.Identifier; public class ShaderUtils { public static final RenderLayer END_GATEWAY = RenderLayer.of( - "end_gateway_no_cull", + "end_gateway", VertexFormats.POSITION, DrawMode.QUADS, 1536, diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/cosmetics/utils/ShaderUtils.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/cosmetics/utils/ShaderUtils.java index 8bc2414..0af0765 100644 --- a/versions/1.21.5/src/main/java/org/saturnclient/impl/cosmetics/utils/ShaderUtils.java +++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/cosmetics/utils/ShaderUtils.java @@ -1,12 +1,31 @@ package org.saturnclient.impl.cosmetics.utils; +import com.mojang.blaze3d.pipeline.RenderPipeline; + +import net.minecraft.client.gl.RenderPipelines; import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.RenderPhase.Textures; +import net.minecraft.client.render.block.entity.EndPortalBlockEntityRenderer; import net.minecraft.util.Identifier; public class ShaderUtils { + public static final RenderPipeline END_GATEWAY_PIPELINE = RenderPipelines.register( + RenderPipeline.builder(new RenderPipeline.Snippet[] { RenderPipelines.RENDERTYPE_END_PORTAL_SNIPPET }) + .withLocation("pipeline/end_gateway") + .withShaderDefine("PORTAL_LAYERS", 16) + .withCull(false) + .build()); + + public static final RenderLayer END_GATEWAY = RenderLayer.of("end_gateway", 1536, false, false, + END_GATEWAY_PIPELINE, + RenderLayer.MultiPhaseParameters.builder() + .texture(Textures.create().add(EndPortalBlockEntityRenderer.SKY_TEXTURE, false, false) + .add(EndPortalBlockEntityRenderer.PORTAL_TEXTURE, false, false).build()) + .build(false)); + public static RenderLayer getRenderLayer(Identifier texture) { if (texture.getPath().endsWith("end.png")) { - return RenderLayer.getEndGateway(); + return END_GATEWAY; } else { return RenderLayer.getEntityAlpha(texture); } From d3cd883782c27b6cd363e14f854d9ed47d343b54 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Mon, 23 Mar 2026 20:33:10 +0100 Subject: [PATCH 2/4] Gif loading --- common | 2 +- .../impl/cosmetics/CloakFeatureRenderer.java | 4 ++-- .../saturnclient/impl/cosmetics/obj/ObjRenderer.java | 5 +++-- .../impl/cosmetics/utils/ShaderUtils.java | 12 +++++++++--- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/common b/common index ca42b00..8398c8c 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit ca42b0006766f5a0919dba141b2a4516d546d870 +Subproject commit 8398c8ce7a2682b465743ff86cd611625c90e404 diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/cosmetics/CloakFeatureRenderer.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/cosmetics/CloakFeatureRenderer.java index 6e414e5..e9fb196 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/cosmetics/CloakFeatureRenderer.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/cosmetics/CloakFeatureRenderer.java @@ -3,6 +3,7 @@ package org.saturnclient.impl.cosmetics; import java.util.Arrays; import org.saturnclient.client.player.SaturnPlayer; +import org.saturnclient.common.ref.asset.IdentifierRef; import org.saturnclient.config.Config; import org.saturnclient.cosmetics.Cloaks; import org.saturnclient.impl.cosmetics.utils.ShaderUtils; @@ -23,7 +24,6 @@ import net.minecraft.component.type.EquippableComponent; import net.minecraft.item.ItemStack; import net.minecraft.item.equipment.EquipmentAsset; import net.minecraft.registry.RegistryKey; -import net.minecraft.util.Identifier; import net.minecraft.util.math.RotationAxis; import net.minecraft.util.math.Vec3d; @@ -283,7 +283,7 @@ public class CloakFeatureRenderer extends FeatureRenderer Date: Mon, 23 Mar 2026 20:41:58 +0100 Subject: [PATCH 3/4] Gif loading --- common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common b/common index 8398c8c..eb40ece 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit 8398c8ce7a2682b465743ff86cd611625c90e404 +Subproject commit eb40ece9f630e9b084255d9dbe911874f3ebbcb9 From 9fbeac628ccb79cc63f58e5d3ee41a0d73f6c32a Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Mon, 23 Mar 2026 21:05:22 +0100 Subject: [PATCH 4/4] Refactoed 1.21.5 to work with new gif api --- common | 2 +- .../impl/cosmetics/utils/IdentifierUtils.java | 16 +++++++--------- .../impl/cosmetics/CloakFeatureRenderer.java | 4 ++-- .../impl/cosmetics/obj/ObjRenderer.java | 5 +++-- .../impl/cosmetics/utils/IdentifierUtils.java | 19 ++++++++++--------- .../impl/cosmetics/utils/ShaderUtils.java | 12 +++++++++--- .../impl/mixins/MatrixStackMixin.java | 1 - 7 files changed, 32 insertions(+), 27 deletions(-) diff --git a/common b/common index eb40ece..2b61942 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit eb40ece9f630e9b084255d9dbe911874f3ebbcb9 +Subproject commit 2b6194223afa1de47c79b50c9fca301739d701ff diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/cosmetics/utils/IdentifierUtils.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/cosmetics/utils/IdentifierUtils.java index 4215c57..7b9c20d 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/cosmetics/utils/IdentifierUtils.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/cosmetics/utils/IdentifierUtils.java @@ -42,11 +42,10 @@ public class IdentifierUtils { } - NativeImageBackedTexture texture = new NativeImageBackedTexture(nativeImage); - - SaturnClient.client.execute(() -> - SaturnClient.client.getTextureManager().registerTexture(identifier, texture) - ); + SaturnClient.client.execute(() -> { + NativeImageBackedTexture texture = new NativeImageBackedTexture(nativeImage); + SaturnClient.client.getTextureManager().registerTexture(identifier, texture); + }); } catch (Exception e) { SaturnClient.LOGGER.error("Failed to register texture: {}", identifierRef, e); @@ -62,9 +61,8 @@ public class IdentifierUtils { long end = System.currentTimeMillis(); SaturnClient.LOGGER.info( - "Registered {} textures in {}ms", - textures.size(), - (end - start) - ); + "Registered {} textures in {}ms", + textures.size(), + (end - start)); } } \ No newline at end of file diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/cosmetics/CloakFeatureRenderer.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/cosmetics/CloakFeatureRenderer.java index f06d9e9..54ce803 100644 --- a/versions/1.21.5/src/main/java/org/saturnclient/impl/cosmetics/CloakFeatureRenderer.java +++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/cosmetics/CloakFeatureRenderer.java @@ -3,6 +3,7 @@ package org.saturnclient.impl.cosmetics; import java.util.Arrays; import org.saturnclient.client.player.SaturnPlayer; +import org.saturnclient.common.ref.asset.IdentifierRef; import org.saturnclient.config.Config; import org.saturnclient.cosmetics.Cloaks; import org.saturnclient.impl.cosmetics.utils.ShaderUtils; @@ -23,7 +24,6 @@ import net.minecraft.component.type.EquippableComponent; import net.minecraft.item.ItemStack; import net.minecraft.item.equipment.EquipmentAsset; import net.minecraft.registry.RegistryKey; -import net.minecraft.util.Identifier; import net.minecraft.util.math.RotationAxis; import net.minecraft.util.math.Vec3d; @@ -283,7 +283,7 @@ public class CloakFeatureRenderer extends FeatureRenderer identifier.toString(), nativeImage); - - SaturnClient.client.execute(() -> - SaturnClient.client.getTextureManager().registerTexture(identifier, texture) - ); + SaturnClient.client.execute(() -> { + NativeImageBackedTexture texture = new NativeImageBackedTexture( + () -> identifier.toString(), + nativeImage); + + SaturnClient.client.getTextureManager().registerTexture(identifier, texture); + }); } catch (Exception e) { SaturnClient.LOGGER.error("Failed to register texture: {}", identifierRef, e); @@ -62,9 +64,8 @@ public class IdentifierUtils { long end = System.currentTimeMillis(); SaturnClient.LOGGER.info( - "Registered {} textures in {}ms", - textures.size(), - (end - start) - ); + "Registered {} textures in {}ms", + textures.size(), + (end - start)); } } \ No newline at end of file diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/cosmetics/utils/ShaderUtils.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/cosmetics/utils/ShaderUtils.java index 0af0765..9adf50d 100644 --- a/versions/1.21.5/src/main/java/org/saturnclient/impl/cosmetics/utils/ShaderUtils.java +++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/cosmetics/utils/ShaderUtils.java @@ -1,5 +1,8 @@ package org.saturnclient.impl.cosmetics.utils; +import org.saturnclient.common.ref.asset.IdentifierRef; +import org.saturnclient.cosmetics.utils.GifUtils; + import com.mojang.blaze3d.pipeline.RenderPipeline; import net.minecraft.client.gl.RenderPipelines; @@ -23,11 +26,14 @@ public class ShaderUtils { .add(EndPortalBlockEntityRenderer.PORTAL_TEXTURE, false, false).build()) .build(false)); - public static RenderLayer getRenderLayer(Identifier texture) { - if (texture.getPath().endsWith("end.png")) { + public static RenderLayer getRenderLayer(IdentifierRef texture) { + String path = texture.toString(); + if (path.endsWith(".gif")) { + return RenderLayer.getEntityAlpha((Identifier) (Object) GifUtils.get(texture)); + } else if (path.endsWith("end.png")) { return END_GATEWAY; } else { - return RenderLayer.getEntityAlpha(texture); + return RenderLayer.getEntityAlpha((Identifier) (Object) texture); } } } \ No newline at end of file diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/mixins/MatrixStackMixin.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/mixins/MatrixStackMixin.java index 5ae8f85..2823f6a 100644 --- a/versions/1.21.5/src/main/java/org/saturnclient/impl/mixins/MatrixStackMixin.java +++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/mixins/MatrixStackMixin.java @@ -1,5 +1,4 @@ package org.saturnclient.impl.mixins; -import org.joml.Quaternionf; import org.joml.Quaternionfc; import org.saturnclient.common.ref.render.MatrixStackRef; import org.saturnclient.common.ref.render.QuaternionfRef;