diff --git a/versions/1.21/src/main/java/org/saturnclient/impl/cosmetics/CloakFeatureRenderer.java b/versions/1.21/src/main/java/org/saturnclient/impl/cosmetics/CloakFeatureRenderer.java index 86cfd8b..6db0acb 100644 --- a/versions/1.21/src/main/java/org/saturnclient/impl/cosmetics/CloakFeatureRenderer.java +++ b/versions/1.21/src/main/java/org/saturnclient/impl/cosmetics/CloakFeatureRenderer.java @@ -2,28 +2,26 @@ package org.saturnclient.impl.cosmetics; import java.util.Arrays; +import org.apache.http.conn.routing.RouteInfo.LayerType; import org.saturnclient.client.player.SaturnPlayer; import org.saturnclient.config.Config; import org.saturnclient.cosmetics.Cloaks; +import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.entity.equipment.EquipmentModel; -import net.minecraft.client.render.entity.equipment.EquipmentModelLoader; -import net.minecraft.client.render.entity.equipment.EquipmentModel.LayerType; import net.minecraft.client.render.entity.feature.FeatureRenderer; import net.minecraft.client.render.entity.feature.FeatureRendererContext; import net.minecraft.client.render.entity.model.PlayerEntityModel; -import net.minecraft.client.render.entity.state.PlayerEntityRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.component.DataComponentTypes; -import net.minecraft.component.type.EquippableComponent; import net.minecraft.item.ItemStack; -import net.minecraft.item.equipment.EquipmentAsset; +import net.minecraft.item.Items; import net.minecraft.registry.RegistryKey; import net.minecraft.util.Identifier; +import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.RotationAxis; import net.minecraft.util.math.Vec3d; @@ -34,8 +32,8 @@ import net.minecraft.util.math.Vec3d; * - **Curving**: Curves when player velocity increases. * - **Wavey**: Makes the cloak feel like wind, when jump sprinting. */ -public class CloakFeatureRenderer extends FeatureRenderer { - private final EquipmentModelLoader equipmentModelLoader; +public class CloakFeatureRenderer + extends FeatureRenderer> { private static final int PARTS = 24; private final float[] segmentValues = new float[PARTS]; @@ -76,25 +74,12 @@ public class CloakFeatureRenderer extends FeatureRenderer context, - EquipmentModelLoader equipmentModelLoader) { - super(context); - this.equipmentModelLoader = equipmentModelLoader; + public CloakFeatureRenderer( + FeatureRendererContext> featureRendererContext) { + super(featureRendererContext); Arrays.fill(segmentValues, 0.0f); } - private boolean hasCustomModelForLayer(ItemStack stack, EquipmentModel.LayerType layerType) { - EquippableComponent equippableComponent = (EquippableComponent) stack - .get(DataComponentTypes.EQUIPPABLE); - if (equippableComponent != null && !equippableComponent.assetId().isEmpty()) { - EquipmentModel equipmentModel = this.equipmentModelLoader - .get((RegistryKey) equippableComponent.assetId().get()); - return !equipmentModel.getLayers(layerType).isEmpty(); - } else { - return false; - } - } - private void renderCapeQuad(VertexConsumer vertexConsumer, MatrixStack matrixStack, Vec3d bottomLeft, Vec3d bottomRight, Vec3d topRight, Vec3d topLeft, float u1, float v1, float u2, float v2, int light, int overlay, @@ -140,8 +125,7 @@ public class CloakFeatureRenderer extends FeatureRenderer= 20) { - float velX = Math.min(1.0f, playerEntityRenderState.field_53537 / 108.0f); - float rawVelY = playerEntityRenderState.field_53536; - float velY = (rawVelY > 4.0f ? rawVelY : 0.0f) / 16; + // if (now - lastUpdate >= 20) { + // float velX = Math.min(1.0f, entity.field_53537 / 108.0f); + // float rawVelY = playerEntityRenderState.field_53536; + // float velY = (rawVelY > 4.0f ? rawVelY : 0.0f) / 16; - float value = playerEntityRenderState.isSwimming ? 0.0f : velX + velY; + // float value = playerEntityRenderState.isSwimming ? 0.0f : velX + velY; - if (Config.cloakPhysics.value) { - updateSegmentValues(value); - } else { - float last = segmentValues[0]; - float maxStep = 0.02f; - float next = value; + // if (Config.cloakPhysics.value) { + // updateSegmentValues(value); + // } else { + // float last = segmentValues[0]; + // float maxStep = 0.02f; + // float next = value; - if (next > last) - next = Math.min(next, last + maxStep); - else if (next < last) - next = Math.max(next, last - maxStep); + // if (next > last) + // next = Math.min(next, last + maxStep); + // else if (next < last) + // next = Math.max(next, last - maxStep); - Arrays.fill(segmentValues, next); - } - lastUpdate = now; - } + // Arrays.fill(segmentValues, next); + // } + // lastUpdate = now; + // } - renderCape(matrixStack, vertexConsumer, playerEntityRenderState, light, OverlayTexture.DEFAULT_UV); + // renderCape(matrices, vertexConsumer, playerEntityRenderState, light, + // OverlayTexture.DEFAULT_UV); - matrixStack.pop(); + matrices.pop(); } + + // public void render(MatrixStack matrixStack, VertexConsumerProvider + // vertexConsumerProvider, int light, + // PlayerEntityRenderState playerEntityRenderState, float f, float g) { + // if (playerEntityRenderState.invisible || !playerEntityRenderState.capeVisible + // || playerEntityRenderState.skinTextures.capeTexture() != null) { + // return; + // } + + // SaturnPlayer player = SaturnPlayer.get(playerEntityRenderState.name); + + // if (player == null) { + // return; + // } + + // Identifier customCape = (Identifier) (Object) + // Cloaks.getCurrentCloakTexture(player.uuid); + // if (customCape == null + // || this.hasCustomModelForLayer(playerEntityRenderState.equippedChestStack, + // LayerType.WINGS)) { + // return; + // } + + // int minBrightness = 7; + // int blockLight = (light >> 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(RenderLayer.getEntityAlpha(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(1.0f, playerEntityRenderState.field_53537 / 108.0f); + // float rawVelY = playerEntityRenderState.field_53536; + // float velY = (rawVelY > 4.0f ? rawVelY : 0.0f) / 16; + + // float value = playerEntityRenderState.isSwimming ? 0.0f : velX + velY; + + // if (Config.cloakPhysics.value) { + // updateSegmentValues(value); + // } else { + // float last = segmentValues[0]; + // float maxStep = 0.02f; + // float next = value; + + // if (next > last) + // next = Math.min(next, last + maxStep); + // else if (next < last) + // next = Math.max(next, last - maxStep); + + // Arrays.fill(segmentValues, next); + // } + // lastUpdate = now; + // } + + // renderCape(matrixStack, vertexConsumer, playerEntityRenderState, light, + // OverlayTexture.DEFAULT_UV); + + // matrixStack.pop(); + // } } diff --git a/versions/1.21/src/main/java/org/saturnclient/impl/cosmetics/HatFeatureRenderer.java b/versions/1.21/src/main/java/org/saturnclient/impl/cosmetics/HatFeatureRenderer.java index f5a723d..a9b2b5d 100644 --- a/versions/1.21/src/main/java/org/saturnclient/impl/cosmetics/HatFeatureRenderer.java +++ b/versions/1.21/src/main/java/org/saturnclient/impl/cosmetics/HatFeatureRenderer.java @@ -4,25 +4,29 @@ import org.saturnclient.client.player.SaturnPlayer; import org.saturnclient.impl.cosmetics.obj.MtlLoader; import org.saturnclient.impl.cosmetics.obj.ObjModel; +import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.entity.feature.FeatureRenderer; import net.minecraft.client.render.entity.feature.FeatureRendererContext; import net.minecraft.client.render.entity.model.PlayerEntityModel; -import net.minecraft.client.render.entity.state.PlayerEntityRenderState; import net.minecraft.client.util.math.MatrixStack; -public class HatFeatureRenderer extends FeatureRenderer { - public HatFeatureRenderer(FeatureRendererContext context) { - super(context); +public class HatFeatureRenderer + extends FeatureRenderer> { + + public HatFeatureRenderer( + FeatureRendererContext> featureRendererContext) { + super(featureRendererContext); } @Override public void render(MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, - PlayerEntityRenderState state, float limbAngle, float limbDistance) { - SaturnPlayer player = SaturnPlayer.get(state.name); + AbstractClientPlayerEntity entity, float limbAngle, float limbDistance, float tickDelta, + float animationProgress, float headYaw, float headPitch) { + SaturnPlayer player = SaturnPlayer.get(entity.getUuid()); - if (state.invisible || player == null || player.hat.isEmpty()) { + if (entity.isInvisible() || player == null || player.hat.isEmpty()) { return; } diff --git a/versions/1.21/src/main/java/org/saturnclient/impl/cosmetics/utils/IdentifierUtils.java b/versions/1.21/src/main/java/org/saturnclient/impl/cosmetics/utils/IdentifierUtils.java index 4215c57..7da48e6 100644 --- a/versions/1.21/src/main/java/org/saturnclient/impl/cosmetics/utils/IdentifierUtils.java +++ b/versions/1.21/src/main/java/org/saturnclient/impl/cosmetics/utils/IdentifierUtils.java @@ -28,7 +28,7 @@ public class IdentifierUtils { int index = 0; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { - nativeImage.setColorArgb(x, y, pixels[index++]); + nativeImage.setColor(x, y, pixels[index++]); } } @@ -36,7 +36,7 @@ public class IdentifierUtils { for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { - nativeImage.setColorArgb(x, y, bufferedImage.getRGB(x, y)); + nativeImage.setColor(x, y, bufferedImage.getRGB(x, y)); } } diff --git a/versions/1.21/src/main/java/org/saturnclient/impl/ui/EntityDrawerImpl.java b/versions/1.21/src/main/java/org/saturnclient/impl/ui/EntityDrawerImpl.java index 9f9781f..d30b6f5 100644 --- a/versions/1.21/src/main/java/org/saturnclient/impl/ui/EntityDrawerImpl.java +++ b/versions/1.21/src/main/java/org/saturnclient/impl/ui/EntityDrawerImpl.java @@ -63,7 +63,7 @@ public class EntityDrawerImpl implements EntityDrawer { entityRenderDispatcher.setRenderShadows(false); if (renderScope instanceof RenderScopeImpl r) { r.draw((vertexConsumers) -> { - entityRenderDispatcher.render(entity, 0.0, 0.0, 0.0, 1.0F, + entityRenderDispatcher.render(entity, 0.0, 0.0, 0.0, 1.0F, 1.0f, r.matrices, vertexConsumers, 15728880); });