From 7a94db77ef395e8ce4ff5f02891d91f3557ab4b3 Mon Sep 17 00:00:00 2001 From: cola98765 Date: Thu, 2 Dec 2021 10:24:14 +0100 Subject: [PATCH] small movements will no longer trigger buffer regen --- .../lod/core/enums/config/BufferRebuildTimes.java | 10 ++++++---- .../java/com/seibel/lod/core/render/LodRenderer.java | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/seibel/lod/core/enums/config/BufferRebuildTimes.java b/src/main/java/com/seibel/lod/core/enums/config/BufferRebuildTimes.java index de7ea7c41..3c5db0390 100644 --- a/src/main/java/com/seibel/lod/core/enums/config/BufferRebuildTimes.java +++ b/src/main/java/com/seibel/lod/core/enums/config/BufferRebuildTimes.java @@ -31,20 +31,22 @@ package com.seibel.lod.core.enums.config; */ public enum BufferRebuildTimes { - FREQUENT(1000, 500, 2500), + FREQUENT(1000, 500, 2500, 1), - NORMAL(2000, 1000, 5000), + NORMAL(2000, 1000, 5000, 4), - RARE(5000, 2000, 10000); + RARE(5000, 2000, 10000, 16); public final int playerMoveTimeout; public final int renderedChunkTimeout; public final int chunkChangeTimeout; + public final int playerMoveDistance; - BufferRebuildTimes(int playerMoveTimeout, int renderedChunkTimeout, int chunkChangeTimeout) + BufferRebuildTimes(int playerMoveTimeout, int renderedChunkTimeout, int chunkChangeTimeout, int playerMoveDistance) { this.playerMoveTimeout = playerMoveTimeout; this.renderedChunkTimeout = renderedChunkTimeout; this.chunkChangeTimeout = chunkChangeTimeout; + this.playerMoveDistance = playerMoveDistance; } } diff --git a/src/main/java/com/seibel/lod/core/render/LodRenderer.java b/src/main/java/com/seibel/lod/core/render/LodRenderer.java index cece526b2..2bb298b48 100644 --- a/src/main/java/com/seibel/lod/core/render/LodRenderer.java +++ b/src/main/java/com/seibel/lod/core/render/LodRenderer.java @@ -651,8 +651,8 @@ public class LodRenderer if (newTime - prevPlayerPosTime > CONFIG.client().advanced().buffers().getRebuildTimes().playerMoveTimeout) { if (LevelPosUtil.getDetailLevel(previousPos) == 0 - || MC.getPlayerChunkPos().getX() != LevelPosUtil.getPosX(previousPos) - || MC.getPlayerChunkPos().getZ() != LevelPosUtil.getPosZ(previousPos)) + || Math.abs(MC.getPlayerChunkPos().getX() - LevelPosUtil.getPosX(previousPos)) > CONFIG.client().advanced().buffers().getRebuildTimes().playerMoveDistance + || Math.abs(MC.getPlayerChunkPos().getZ() - LevelPosUtil.getPosZ(previousPos)) > CONFIG.client().advanced().buffers().getRebuildTimes().playerMoveDistance) { vanillaRenderedChunks = new boolean[vanillaRenderedChunksWidth][vanillaRenderedChunksWidth]; fullRegen = true;