From bd305a0269bbab9dac450a9f4160b0d458e709a9 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Tue, 24 Aug 2021 01:54:01 +0200 Subject: [PATCH] small fixes to tree generator new tree cutter --- .../com/seibel/lod/objects/LodDimension.java | 57 ++++++++++--------- .../com/seibel/lod/proxy/ClientProxy.java | 11 +++- .../com/seibel/lod/render/LodRenderer.java | 4 +- .../seibel/lod/util/DetailDistanceUtil.java | 8 +-- 4 files changed, 43 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/seibel/lod/objects/LodDimension.java b/src/main/java/com/seibel/lod/objects/LodDimension.java index 406665cc1..38210bedc 100644 --- a/src/main/java/com/seibel/lod/objects/LodDimension.java +++ b/src/main/java/com/seibel/lod/objects/LodDimension.java @@ -315,8 +315,6 @@ public class LodDimension LevelPos levelPos; LodRegion region; - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("cutting tree : \n"); for (int x = 0; x < regions.length; x++) { for (int z = 0; z < regions.length; z++) @@ -331,10 +329,8 @@ public class LodDimension if(DetailDistanceUtil.getDistanceCut(index + 1) > levelPos.minDistance(playerPosX, playerPosZ)){ region = regions[x][z]; - byte cutDetailLevel = (byte) (DetailDistanceUtil.getCutLodDetail(index).detailLevel); + byte cutDetailLevel = DetailDistanceUtil.getCutLodDetail(index).detailLevel; - stringBuilder.append(cutDetailLevel); - stringBuilder.append("\t"); if(region != null && cutDetailLevel > 0) { region.cutTree(cutDetailLevel); @@ -344,9 +340,7 @@ public class LodDimension } } } - stringBuilder.append("\n"); } - System.out.println(stringBuilder); } /** @@ -359,8 +353,6 @@ public class LodDimension RegionPos regionPos; LodRegion region; byte targetDetailLevel; - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("generating tree : \n"); for (int x = 0; x < regions.length; x++) { for (int z = 0; z < regions.length; z++) @@ -377,43 +369,31 @@ public class LodDimension region = regions[x][z]; //We require that the region we are checking is loaded with at least this level - targetDetailLevel = (byte) (DetailDistanceUtil.getLodDetail(index).detailLevel); + targetDetailLevel = DetailDistanceUtil.getLodDetail(index).detailLevel; if (region == null) { //First case, region has to be initialized //We check if there is a file at the target level - region = getRegionFromFile(regionPos, targetDetailLevel); + regions[x][z] = getRegionFromFile(regionPos, targetDetailLevel); //if there is no file we initialize the region - if (region == null) + if (regions[x][z] == null) { regions[x][z] = new LodRegion(targetDetailLevel, regionPos); - stringBuilder.append(targetDetailLevel); - stringBuilder.append("i"); - stringBuilder.append("\t"); - }else{ - stringBuilder.append(targetDetailLevel); - stringBuilder.append("l"); - stringBuilder.append("\t"); } }else if(region.getMinDetailLevel() > targetDetailLevel){ //Second case, region has been initialized but at a higher level //We expand the region by introducing the missing layer - stringBuilder.append(targetDetailLevel); - stringBuilder.append("e"); - stringBuilder.append("\t"); region.expand(targetDetailLevel); } break; } } } - stringBuilder.append("\n"); } - System.out.println(stringBuilder); } /** @@ -746,11 +726,32 @@ public class LodDimension @Override public String toString() { - String s = ""; + int regionX; + int regionZ; + LevelPos levelPos; + LodRegion region; - s += "dim: " + dimension.toString() + "\t"; - s += "(" + center.x + "," + center.z + ")"; + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append("Dimension : \n"); + for (int x = 0; x < regions.length; x++) + { + for (int z = 0; z < regions.length; z++) + { + region = regions[x][z]; + if(region == null) + { + stringBuilder.append("n"); + stringBuilder.append("\t"); - return s; + }else + { + stringBuilder.append(region.getMinDetailLevel()); + stringBuilder.append("\t"); + } + } + stringBuilder.append("\n"); + } + System.out.println(stringBuilder); + return stringBuilder.toString(); } } diff --git a/src/main/java/com/seibel/lod/proxy/ClientProxy.java b/src/main/java/com/seibel/lod/proxy/ClientProxy.java index 848f5d7f7..f2b2a20c4 100644 --- a/src/main/java/com/seibel/lod/proxy/ClientProxy.java +++ b/src/main/java/com/seibel/lod/proxy/ClientProxy.java @@ -99,9 +99,14 @@ public class ClientProxy LodDimension lodDim = lodWorld.getLodDimension(mc.player.level.dimensionType()); if (lodDim == null) return; - + + playerMoveEvent(lodDim); - + //System.out.println("memory needed " + lodDim.getMinMemoryNeeded() + " byte"); + + lodDim.treeCutter((int) mc.player.getX(),(int) mc.player.getZ()); + lodDim.treeGenerator((int) mc.player.getX(),(int) mc.player.getZ()); + System.out.println(lodDim); // comment out when creating a release applyConfigOverrides(); @@ -243,7 +248,7 @@ public class ClientProxy { lodWorld.saveAllDimensions(); lodDim.move(worldRegionOffset); - //LOGGER.info("offset: " + worldRegionOffset.x + "," + worldRegionOffset.z + "\t center: " + lodDim.getCenterX() + "," + lodDim.getCenterZ()); + LOGGER.info("offset: " + worldRegionOffset.x + "," + worldRegionOffset.z + "\t center: " + lodDim.getCenterX() + "," + lodDim.getCenterZ()); } } diff --git a/src/main/java/com/seibel/lod/render/LodRenderer.java b/src/main/java/com/seibel/lod/render/LodRenderer.java index 567cb95dc..9ca682606 100644 --- a/src/main/java/com/seibel/lod/render/LodRenderer.java +++ b/src/main/java/com/seibel/lod/render/LodRenderer.java @@ -439,8 +439,8 @@ public class LodRenderer if (fogQuality == FogQuality.FANCY) { - RenderSystem.fogStart(farPlaneBlockDistance * 1.5f); - RenderSystem.fogEnd(farPlaneBlockDistance * 2.0f); + RenderSystem.fogStart(farPlaneBlockDistance * 0.9f); + RenderSystem.fogEnd(farPlaneBlockDistance * 1f); } else if (fogQuality == FogQuality.FAST) { // for the far fog of the normal chunks diff --git a/src/main/java/com/seibel/lod/util/DetailDistanceUtil.java b/src/main/java/com/seibel/lod/util/DetailDistanceUtil.java index 628d38bcd..44d0d0c5a 100644 --- a/src/main/java/com/seibel/lod/util/DetailDistanceUtil.java +++ b/src/main/java/com/seibel/lod/util/DetailDistanceUtil.java @@ -6,7 +6,7 @@ import com.seibel.lod.handlers.LodConfig; public class DetailDistanceUtil { - private static double genMultiplier = 1.25; + private static double genMultiplier = 1; private static double cutMultiplier = 1.5; private static int minDetail = LodConfig.CLIENT.maxGenerationDetail.get().detailLevel; private static int maxDetail = LodUtil.REGION_DETAIL_LEVEL + 1; @@ -38,7 +38,6 @@ public class DetailDistanceUtil LodDetail.SINGLE}; private static LodDetail[] lodDetailsCut = { - LodDetail.FULL, LodDetail.FULL, LodDetail.HALF, LodDetail.QUAD, @@ -48,13 +47,14 @@ public class DetailDistanceUtil LodDetail.SINGLE, LodDetail.SINGLE, LodDetail.SINGLE, + LodDetail.SINGLE, LodDetail.SINGLE}; public static int getDistanceRendering(int detail) { int distance = 0; - int initial = LodConfig.CLIENT.lodQuality.get() * 256; - if(detail == minDetail) + int initial = LodConfig.CLIENT.lodQuality.get() * 128; + if(detail <= minDetail) return minDistance; if(detail == maxDetail) return maxDistance;