Added new render/generation distance calculator

This commit is contained in:
Leonardo
2021-08-25 13:44:53 +02:00
parent 1755a252b1
commit b44900e3f0
4 changed files with 21 additions and 3 deletions
@@ -3,6 +3,7 @@ package com.seibel.lod.util;
import com.seibel.lod.enums.DistanceGenerationMode;
import com.seibel.lod.enums.LodDetail;
import com.seibel.lod.handlers.LodConfig;
import net.minecraft.client.Minecraft;
public class DetailDistanceUtil
{
@@ -89,11 +90,20 @@ public class DetailDistanceUtil
switch (LodConfig.CLIENT.lodDistanceCalculatorType.get())
{
case LINEAR:
initial = Math.min(maxDistance/maxDetail, 1024);
initial = Math.min(maxDistance*2/maxDetail, 1024);
return (detail * initial);
case QUADRATIC:
initial = LodConfig.CLIENT.lodQuality.get() * 128;
return (int) (Math.pow(2, detail) * initial);
case RENDER_DEPENDANT:
int realRenderDistance = Minecraft.getInstance().options.renderDistance * 16;
int border = 128;
byte detailAtBorder = (byte) 4;
if(detail > detailAtBorder){
return (detail * (border-realRenderDistance)/detailAtBorder + realRenderDistance);
}else{
return ((maxDetail - detail) * (maxDistance-border)/(maxDetail - detailAtBorder) + border);
}
}
return distance;
}