diff --git a/src/main/java/cloudburst/rejects/modules/SkeletonESP.java b/src/main/java/cloudburst/rejects/modules/SkeletonESP.java index 0223900..6f7f32e 100644 --- a/src/main/java/cloudburst/rejects/modules/SkeletonESP.java +++ b/src/main/java/cloudburst/rejects/modules/SkeletonESP.java @@ -4,10 +4,12 @@ import cloudburst.rejects.MeteorRejectsAddon; import meteordevelopment.orbit.EventHandler; import meteordevelopment.meteorclient.events.render.Render3DEvent; import meteordevelopment.meteorclient.settings.*; +import meteordevelopment.meteorclient.systems.config.Config; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.Freecam; import meteordevelopment.meteorclient.utils.player.PlayerUtils; +import meteordevelopment.meteorclient.utils.player.Rotations; import meteordevelopment.meteorclient.utils.render.color.Color; import meteordevelopment.meteorclient.utils.render.color.SettingColor; @@ -56,7 +58,8 @@ public class SkeletonESP extends Module { RenderSystem.enableCull(); mc.world.getEntities().forEach(entity -> { if (!(entity instanceof PlayerEntity)) return; - if (mc.options.getPerspective() == Perspective.FIRST_PERSON && !freecam.isActive() && (Entity)mc.player == entity) return; + if (mc.options.getPerspective() == Perspective.FIRST_PERSON && !freecam.isActive() && mc.player == entity) return; + int rotationHoldTicks = Config.get().rotationHoldTicks; Color skeletonColor = PlayerUtils.getPlayerColor((PlayerEntity)entity, skeletonColorSetting.get()); PlayerEntity playerEntity = (PlayerEntity) entity; @@ -66,13 +69,16 @@ public class SkeletonESP extends Module { PlayerEntityModel playerEntityModel = (PlayerEntityModel)livingEntityRenderer.getModel(); float h = MathHelper.lerpAngleDegrees(g, playerEntity.prevBodyYaw, playerEntity.bodyYaw); + if (mc.player == entity && Rotations.rotationTimer < rotationHoldTicks) h = Rotations.serverYaw; float j = MathHelper.lerpAngleDegrees(g, playerEntity.prevHeadYaw, playerEntity.headYaw); + if (mc.player == entity && Rotations.rotationTimer < rotationHoldTicks) j = Rotations.serverYaw; float q = playerEntity.limbAngle - playerEntity.limbDistance * (1.0F - g); float p = MathHelper.lerp(g, playerEntity.lastLimbDistance, playerEntity.limbDistance); float o = (float)playerEntity.age + g; float k = j - h; float m = MathHelper.lerp(g, playerEntity.prevPitch, playerEntity.getPitch()); + if (mc.player == entity && Rotations.rotationTimer < rotationHoldTicks) m = Rotations.serverPitch; playerEntityModel.setAngles(playerEntity, q, p, o, k, m); boolean sneaking = playerEntity.isSneaking(); @@ -84,7 +90,7 @@ public class SkeletonESP extends Module { ModelPart rightLeg = playerEntityModel.rightLeg; matrixStack.translate(footPos.x, footPos.y, footPos.z); - matrixStack.multiply(new Quaternion(new Vec3f(0, -1, 0), playerEntity.bodyYaw + 180, true)); + matrixStack.multiply(new Quaternion(new Vec3f(0, -1, 0), h + 180, true)); BufferBuilder bufferBuilder = Tessellator.getInstance().getBuffer(); bufferBuilder.begin(VertexFormat.DrawMode.DEBUG_LINES, VertexFormats.POSITION_COLOR); @@ -141,7 +147,7 @@ public class SkeletonESP extends Module { bufferBuilder.end(); BufferRenderer.draw(bufferBuilder); - matrixStack.multiply(new Quaternion(new Vec3f(0, 1, 0), playerEntity.bodyYaw + 180, true)); + matrixStack.multiply(new Quaternion(new Vec3f(0, 1, 0), h + 180, true)); matrixStack.translate(-footPos.x, -footPos.y, -footPos.z); }); RenderSystem.enableTexture();