Skip to content

Commit fbdc927

Browse files
committed
Fix meteor rotations being rendered on other players in third person
1 parent 4db6cbb commit fbdc927

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77

88
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
99
import com.llamalad7.mixinextras.injector.v2.WrapWithCondition;
10-
import meteordevelopment.meteorclient.MeteorClient;
11-
import meteordevelopment.meteorclient.mixininterface.IEntityRenderState;
1210
import meteordevelopment.meteorclient.mixininterface.IVec3d;
1311
import meteordevelopment.meteorclient.systems.modules.Modules;
1412
import meteordevelopment.meteorclient.systems.modules.render.Chams;
@@ -28,6 +26,8 @@
2826
import org.spongepowered.asm.mixin.injection.Inject;
2927
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
3028

29+
import static meteordevelopment.meteorclient.MeteorClient.mc;
30+
3131
@Mixin(PlayerEntityRenderer.class)
3232
public abstract class PlayerEntityRendererMixin {
3333
// Chams
@@ -45,7 +45,7 @@ public abstract class PlayerEntityRendererMixin {
4545
@Inject(method = "updateRenderState(Lnet/minecraft/client/network/AbstractClientPlayerEntity;Lnet/minecraft/client/render/entity/state/PlayerEntityRenderState;F)V", at = @At("RETURN"))
4646
private void updateRenderState$scale(AbstractClientPlayerEntity player, PlayerEntityRenderState state, float f, CallbackInfo info) {
4747
if (!chams.isActive() || !chams.players.get()) return;
48-
if (chams.ignoreSelf.get() && player == MeteorClient.mc.player) return;
48+
if (chams.ignoreSelf.get() && player == mc.player) return;
4949

5050
float v = chams.playersScale.get().floatValue();
5151
state.baseScale *= v;
@@ -82,7 +82,7 @@ public abstract class PlayerEntityRendererMixin {
8282

8383
@Inject(method = "updateRenderState(Lnet/minecraft/client/network/AbstractClientPlayerEntity;Lnet/minecraft/client/render/entity/state/PlayerEntityRenderState;F)V", at = @At("RETURN"))
8484
private void updateRenderState$rotations(AbstractClientPlayerEntity player, PlayerEntityRenderState state, float f, CallbackInfo info) {
85-
if (Rotations.rotating && ((IEntityRenderState) state).meteor$getEntity() == MeteorClient.mc.player) {
85+
if (Rotations.rotating && player == mc.player) {
8686
state.bodyYaw = Rotations.serverYaw;
8787
state.pitch = Rotations.serverPitch;
8888
}

src/main/java/meteordevelopment/meteorclient/mixininterface/IEntityRenderState.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,26 @@
55

66
package meteordevelopment.meteorclient.mixininterface;
77

8+
import meteordevelopment.meteorclient.mixin.EntityRenderDispatcherMixin;
9+
import net.minecraft.client.render.VertexConsumerProvider;
10+
import net.minecraft.client.render.entity.EntityRenderer;
11+
import net.minecraft.client.render.entity.state.EntityRenderState;
12+
import net.minecraft.client.util.math.MatrixStack;
813
import net.minecraft.entity.Entity;
914

1015
public interface IEntityRenderState {
16+
/**
17+
* Returns the entity that the render state refers to; necessary in scenarios when you want to perform an entity
18+
* rendering task with data that isn't present in the render state.<p>
19+
*
20+
* The entity is only set after the render state is retrieved in EntityRenderDispatcher#render, so make sure not
21+
* to call this before that point (e.g. mixing into an updateRenderState method), otherwise the entity returned will
22+
* not be the same one that the render state is referring to.
23+
*
24+
* @return The entity that the render state refers to
25+
*
26+
* @see EntityRenderDispatcherMixin#render$getAndUpdateRenderState(EntityRenderState, Entity, double, double, double, float, MatrixStack, VertexConsumerProvider, int, EntityRenderer)
27+
*/
1128
Entity meteor$getEntity();
1229

1330
void meteor$setEntity(Entity entity);

0 commit comments

Comments
 (0)