From 9ec3be8a48f8fc188257ca36a9621e6972bbb6d3 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Tue, 10 Aug 2021 17:23:43 +0200 Subject: [PATCH] Added different level --- .../seibel/lod/builders/LodNodeBufferBuilder.java | 14 ++++++++++++-- .../lodNodeTemplates/AbstractLodNodeTemplate.java | 3 ++- .../lodNodeTemplates/CubicLodNodeTemplate.java | 4 ++-- .../lodNodeTemplates/DynamicLodNodeTemplate.java | 3 ++- .../TriangularLodNodeTemplate.java | 3 ++- 5 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/seibel/lod/builders/LodNodeBufferBuilder.java b/src/main/java/com/seibel/lod/builders/LodNodeBufferBuilder.java index c90ac910e..3708f7108 100644 --- a/src/main/java/com/seibel/lod/builders/LodNodeBufferBuilder.java +++ b/src/main/java/com/seibel/lod/builders/LodNodeBufferBuilder.java @@ -274,10 +274,20 @@ public class LodNodeBufferBuilder // get the desired LodTemplate and // add this LOD to the buffer - + int distance = (int) Math.sqrt(Math.pow((mc.player.getX() - lod.startBlockPos.getX()),2) + Math.pow((mc.player.getZ() - lod.startBlockPos.getZ()),2)); + LodDetail detail; + if(distance < 200){ + detail = LodDetail.HALF; + }else if(distance < 400){ + detail = LodDetail.QUAD; + }else if(distance < 600){ + detail = LodDetail.DOUBLE; + }else{ + detail = LodDetail.SINGLE; + } LodConfig.CLIENT.lodTemplate.get(). template.addLodToBuffer(currentBuffer, lodDim, lod, - xOffset , yOffset, zOffset, renderer.debugging); + xOffset , yOffset, zOffset, renderer.debugging, detail); /* LodDetail detail = LodConfig.CLIENT.lodDetail.get(); for(int x = 0; x < detail.dataPointLengthCount; x++){ diff --git a/src/main/java/com/seibel/lod/builders/lodNodeTemplates/AbstractLodNodeTemplate.java b/src/main/java/com/seibel/lod/builders/lodNodeTemplates/AbstractLodNodeTemplate.java index 5afb5d092..a5c04c35f 100644 --- a/src/main/java/com/seibel/lod/builders/lodNodeTemplates/AbstractLodNodeTemplate.java +++ b/src/main/java/com/seibel/lod/builders/lodNodeTemplates/AbstractLodNodeTemplate.java @@ -19,6 +19,7 @@ package com.seibel.lod.builders.lodNodeTemplates; import java.awt.Color; +import com.seibel.lod.enums.LodDetail; import com.seibel.lod.objects.LodQuadTreeDimension; import com.seibel.lod.objects.LodQuadTreeNode; import com.seibel.lod.util.LodUtil; @@ -37,7 +38,7 @@ public abstract class AbstractLodNodeTemplate public abstract void addLodToBuffer(BufferBuilder buffer, LodQuadTreeDimension lodDim, LodQuadTreeNode lod, double xOffset, double yOffset, double zOffset, - boolean debugging); + boolean debugging, LodDetail detail) ; /** add the given position and color to the buffer */ protected void addPosAndColor(BufferBuilder buffer, diff --git a/src/main/java/com/seibel/lod/builders/lodNodeTemplates/CubicLodNodeTemplate.java b/src/main/java/com/seibel/lod/builders/lodNodeTemplates/CubicLodNodeTemplate.java index 87b55a289..67d18f0da 100644 --- a/src/main/java/com/seibel/lod/builders/lodNodeTemplates/CubicLodNodeTemplate.java +++ b/src/main/java/com/seibel/lod/builders/lodNodeTemplates/CubicLodNodeTemplate.java @@ -47,12 +47,12 @@ public class CubicLodNodeTemplate extends AbstractLodNodeTemplate public void addLodToBuffer(BufferBuilder buffer, LodQuadTreeDimension lodDim, LodQuadTreeNode lod, double xOffset, double yOffset, double zOffset, - boolean debugging) { + boolean debugging, LodDetail detail) { AxisAlignedBB bbox; // Add this LOD to the BufferBuilder int halfWidth = LodQuadTreeNode.CHUNK_WIDTH / 2; - LodDetail detail = LodConfig.CLIENT.lodDetail.get(); + //LodDetail detail = LodConfig.CLIENT.lodDetail.get(); /* bbox = generateBoundingBox( lod.getLodDataPoint().height, diff --git a/src/main/java/com/seibel/lod/builders/lodNodeTemplates/DynamicLodNodeTemplate.java b/src/main/java/com/seibel/lod/builders/lodNodeTemplates/DynamicLodNodeTemplate.java index 8b179fd21..4291edcba 100644 --- a/src/main/java/com/seibel/lod/builders/lodNodeTemplates/DynamicLodNodeTemplate.java +++ b/src/main/java/com/seibel/lod/builders/lodNodeTemplates/DynamicLodNodeTemplate.java @@ -17,6 +17,7 @@ */ package com.seibel.lod.builders.lodNodeTemplates; +import com.seibel.lod.enums.LodDetail; import com.seibel.lod.objects.LodQuadTreeDimension; import com.seibel.lod.objects.LodQuadTreeNode; @@ -37,7 +38,7 @@ public class DynamicLodNodeTemplate extends AbstractLodNodeTemplate public void addLodToBuffer(BufferBuilder buffer, LodQuadTreeDimension lodDim, LodQuadTreeNode lod, double xOffset, double yOffset, double zOffset, - boolean debugging) + boolean debugging, LodDetail detail) { System.err.println("DynamicLodTemplate not implemented!"); } diff --git a/src/main/java/com/seibel/lod/builders/lodNodeTemplates/TriangularLodNodeTemplate.java b/src/main/java/com/seibel/lod/builders/lodNodeTemplates/TriangularLodNodeTemplate.java index a03771e6c..028a1d230 100644 --- a/src/main/java/com/seibel/lod/builders/lodNodeTemplates/TriangularLodNodeTemplate.java +++ b/src/main/java/com/seibel/lod/builders/lodNodeTemplates/TriangularLodNodeTemplate.java @@ -17,6 +17,7 @@ */ package com.seibel.lod.builders.lodNodeTemplates; +import com.seibel.lod.enums.LodDetail; import com.seibel.lod.objects.LodQuadTreeDimension; import com.seibel.lod.objects.LodQuadTreeNode; @@ -35,7 +36,7 @@ public class TriangularLodNodeTemplate extends AbstractLodNodeTemplate public void addLodToBuffer(BufferBuilder buffer, LodQuadTreeDimension lodDim, LodQuadTreeNode lod, double xOffset, double yOffset, double zOffset, - boolean debugging) + boolean debugging, LodDetail detail) { System.err.println("DynamicLodTemplate not implemented!"); }