diff --git a/src/main/java/com/replaymod/replay/mixin/entity_tracking/Mixin_EntityExt.java b/src/main/java/com/replaymod/replay/mixin/entity_tracking/Mixin_EntityExt.java index 993e9c6e..7b5642eb 100644 --- a/src/main/java/com/replaymod/replay/mixin/entity_tracking/Mixin_EntityExt.java +++ b/src/main/java/com/replaymod/replay/mixin/entity_tracking/Mixin_EntityExt.java @@ -3,25 +3,32 @@ package com.replaymod.replay.mixin.entity_tracking; import com.replaymod.replay.ext.EntityExt; import net.minecraft.entity.Entity; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; @Mixin(Entity.class) public abstract class Mixin_EntityExt implements EntityExt { - @Unique - private float trackedYaw; + @Shadow + public float yaw; + + @Shadow + public float pitch; @Unique - private float trackedPitch; + private float trackedYaw = Float.NaN; + + @Unique + private float trackedPitch = Float.NaN; @Override public float replaymod$getTrackedYaw() { - return this.trackedYaw; + return !Float.isNaN(this.trackedYaw) ? this.trackedYaw : this.yaw; } @Override public float replaymod$getTrackedPitch() { - return this.trackedPitch; + return !Float.isNaN(this.trackedPitch) ? this.trackedPitch : this.pitch; } @Override diff --git a/src/main/java/com/replaymod/replay/mixin/entity_tracking/Mixin_FixPartialUpdates.java b/src/main/java/com/replaymod/replay/mixin/entity_tracking/Mixin_FixPartialUpdates.java index 255102ae..2ffd980a 100644 --- a/src/main/java/com/replaymod/replay/mixin/entity_tracking/Mixin_FixPartialUpdates.java +++ b/src/main/java/com/replaymod/replay/mixin/entity_tracking/Mixin_FixPartialUpdates.java @@ -85,23 +85,23 @@ public class Mixin_FixPartialUpdates { @Unique private Entity entity; - @ModifyVariable(method = "onEntityUpdate", at = @At(value = "INVOKE", target = ENTITY_UPDATE), ordinal = 0) + @ModifyVariable(method = { "onEntityUpdate", "onEntityPosition" }, at = @At(value = "INVOKE", target = ENTITY_UPDATE), ordinal = 0) private Entity captureEntity(Entity entity) { return this.entity = entity; } - @Inject(method = "onEntityUpdate", at = @At("RETURN")) + @Inject(method = { "onEntityUpdate", "onEntityPosition" }, at = @At("RETURN")) private void resetEntityField(CallbackInfo ci) { this.entity = null; } - @ModifyArg(method = "onEntityUpdate", at = @At(value = "INVOKE", target = ENTITY_UPDATE), index = 3) + @ModifyArg(method = { "onEntityUpdate", "onEntityPosition" }, at = @At(value = "INVOKE", target = ENTITY_UPDATE), index = 3) private float captureTrackedYaw(float value) { ((EntityExt) this.entity).replaymod$setTrackedYaw(value); return value; } - @ModifyArg(method = "onEntityUpdate", at = @At(value = "INVOKE", target = ENTITY_UPDATE), index = 4) + @ModifyArg(method = { "onEntityUpdate", "onEntityPosition" }, at = @At(value = "INVOKE", target = ENTITY_UPDATE), index = 4) private float captureTrackedPitch(float value) { ((EntityExt) this.entity).replaymod$setTrackedPitch(value); return value; diff --git a/version.txt b/version.txt index 097a15a2..ec1cf33c 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -2.6.2 +2.6.3