private static LinkedList<Vector3f> vectors = new LinkedList<>();
@SubscribeEvent
public void renderWorld(RenderPlayerEvent.Post event) {
LocalPlayer player = Minecraft.getInstance().player;
vectors.add(new Vector3f((float) player.getX(), (float) player.getY(), (float) player.getZ()));
if (vectors.size() > 100) {
vectors.removeFirst();
}
PoseStack poseStack = event.getPoseStack();
VertexConsumer buffer = event.getMultiBufferSource().getBuffer(RenderType.debugQuads());
poseStack.pushPose();
Matrix4f pose = event.getPoseStack().last().pose();
float partialTick = event.getPartialTick();
pose.translate(
(float) -Mth.lerp(partialTick, player.xOld, player.getX()),
(float) -Mth.lerp(partialTick, player.yOld, player.getY()),
(float) -Mth.lerp(partialTick, player.zOld, player.getZ())
);
Vector3f[] array = vectors.toArray(new Vector3f[0]);
for (int i = 0; i < array.length - 1; i++) {
buffer.addVertex(pose, array[i].x, array[i].y, array[i].z).setColor(255, 255, 255, 255);
buffer.addVertex(pose, array[i].x, array[i].y + 1F, array[i].z).setColor(255, 255, 255, 0);
buffer.addVertex(pose, array[i + 1].x, array[i + 1].y + 1F, array[i + 1].z).setColor(255, 255, 255, 0);
buffer.addVertex(pose, array[i + 1].x, array[i + 1].y, array[i + 1].z).setColor(255, 255, 255, 255);
}
poseStack.popPose();
}