diff --git a/versions/1.21.11/src/main/java/org/saturnclient/impl/cosmetics/CloakFeatureRenderer.java b/versions/1.21.11/src/main/java/org/saturnclient/impl/cosmetics/CloakFeatureRenderer.java index ec3a287..06ccf14 100644 --- a/versions/1.21.11/src/main/java/org/saturnclient/impl/cosmetics/CloakFeatureRenderer.java +++ b/versions/1.21.11/src/main/java/org/saturnclient/impl/cosmetics/CloakFeatureRenderer.java @@ -11,10 +11,10 @@ import org.saturnclient.common.ref.asset.IdentifierRef; import org.saturnclient.config.Config; import org.saturnclient.cosmetics.Cloaks; import org.saturnclient.impl.cosmetics.utils.ShaderUtils; +import org.saturnclient.saturnclient.SaturnRenderState; import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.equipment.EquipmentModel; import net.minecraft.client.render.entity.equipment.EquipmentModelLoader; @@ -281,78 +281,15 @@ public class CloakFeatureRenderer extends FeatureRenderer> 4) & 0xF; - int skyLight = (light >> 20) & 0xF; - blockLight = Math.max(blockLight, minBrightness); - skyLight = Math.max(skyLight, minBrightness); - light = (skyLight << 20) | (blockLight << 4); - - VertexConsumer vertexConsumer = vertexConsumerProvider - .getBuffer(ShaderUtils.getRenderLayer(customCape)); - - matrixStack.push(); - - matrixStack.translate(0.0f, 0.0f, 0.12f); - - if (this.hasCustomModelForLayer(playerEntityRenderState.equippedChestStack, LayerType.HUMANOID)) { - matrixStack.translate(0.0F, -0.053125F, 0.06875F); - } - - if (playerEntityRenderState.isInSneakingPose) { - matrixStack.translate(0, 0.16f, 0.0f); - matrixStack.multiply(RotationAxis.POSITIVE_X.rotationDegrees(29.0f)); - } - - long now = System.currentTimeMillis(); - if (now - lastUpdate >= 20) { - float velX = Math.min(0.6f, playerEntityRenderState.field_53537 / 108.0f); - float rawVelY = playerEntityRenderState.field_53536; - float velY = (rawVelY > 3.4f ? rawVelY : rawVelY < -3.4f ? rawVelY : 0.0f) / 16; - - float value = Math.max(0.0f, Math.min(2.0f, playerEntityRenderState.isSwimming ? 0.0f : velX + velY)); - - if (Config.cloakPhysics.value) { - updateSegmentValues(segmentValues[0] + (value - segmentValues[0]) * 0.3f); - } else { - Arrays.fill(segmentValues, segmentValues[0] + (value - segmentValues[0]) * 0.05f); - } - lastUpdate = now; - } - - renderCape(matrixStack, vertexConsumer, playerEntityRenderState, light, OverlayTexture.DEFAULT_UV); - - matrixStack.pop(); - } - @Override public void render(MatrixStack matrices, OrderedRenderCommandQueue queue, int light, PlayerEntityRenderState state, float limbAngle, float limbDistance) { - if (state.playerName == null || state.invisible || !state.capeVisible + if (state.invisible || !state.capeVisible || state.skinTextures.cape() != null) { return; } - SaturnPlayer player = SaturnPlayer.get(state.playerName.getString()); + SaturnPlayer player = state.getData(SaturnRenderState.saturnDataKey); if (player == null) { return; diff --git a/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/SaturnRenderState.java b/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/SaturnRenderState.java new file mode 100644 index 0000000..25faaff --- /dev/null +++ b/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/SaturnRenderState.java @@ -0,0 +1,12 @@ +package org.saturnclient.saturnclient; + +import org.jspecify.annotations.NonNull; +import org.saturnclient.client.player.SaturnPlayer; + +import net.fabricmc.fabric.api.client.rendering.v1.RenderStateDataKey; + +public class SaturnRenderState { + @NonNull + public static RenderStateDataKey saturnDataKey = RenderStateDataKey + .create(() -> "saturn-client-player"); +} diff --git a/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/mixin/PlayerEntityRendererMixin.java b/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/mixin/PlayerEntityRendererMixin.java index 3187dc9..b6dce94 100644 --- a/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/mixin/PlayerEntityRendererMixin.java +++ b/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/mixin/PlayerEntityRendererMixin.java @@ -1,6 +1,5 @@ package org.saturnclient.saturnclient.mixin; -import net.fabricmc.fabric.api.client.rendering.v1.RenderStateDataKey; import net.minecraft.client.network.ClientPlayerLikeEntity; import net.minecraft.client.render.entity.EntityRendererFactory; import net.minecraft.client.render.entity.LivingEntityRenderer; @@ -12,11 +11,11 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.text.MutableText; import net.minecraft.text.Text; -import org.jspecify.annotations.NonNull; import org.saturnclient.client.player.Roles; import org.saturnclient.client.player.SaturnPlayer; import org.saturnclient.impl.cosmetics.CloakFeatureRenderer; import org.saturnclient.impl.cosmetics.HatFeatureRenderer; +import org.saturnclient.saturnclient.SaturnRenderState; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -26,9 +25,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; public abstract class PlayerEntityRendererMixin extends LivingEntityRenderer { - @NonNull - RenderStateDataKey saturnDataKey = RenderStateDataKey.create(() -> "saturn-client-player"); - protected PlayerEntityRendererMixin() { super(null, null, 0.0f); } @@ -49,7 +45,7 @@ public abstract class PlayerEntityRendererMixin SaturnPlayer player = SaturnPlayer.get(entity.getUuid()); - state.setData(saturnDataKey, player); + state.setData(SaturnRenderState.saturnDataKey, player); if (player != null) { MutableText iconText = Text.literal(Roles.getSaturnIndicator()) diff --git a/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/mixin/SplashOverlayMixin.java b/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/mixin/SplashOverlayMixin.java index 8317af0..daf1547 100644 --- a/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/mixin/SplashOverlayMixin.java +++ b/versions/1.21.11/src/main/java/org/saturnclient/saturnclient/mixin/SplashOverlayMixin.java @@ -155,8 +155,8 @@ public abstract class SplashOverlayMixin { reloadCompleteTime = Util.getMeasuringTimeMs(); + Window window = client.getWindow(); if (client.currentScreen != null) { - Window window = this.client.getWindow(); client.currentScreen.init(window.getScaledWidth(), window.getScaledHeight()); } }