From 822a088096cbaabaec7b8902651715846e1ac87b Mon Sep 17 00:00:00 2001 From: Leonardo Date: Sat, 28 Aug 2021 00:36:45 +0200 Subject: [PATCH] fixed loading --- .../lod/handlers/LodDimensionFileHandler.java | 19 +++++++++---------- .../com/seibel/lod/objects/LodDimension.java | 2 +- .../com/seibel/lod/render/LodRenderer.java | 2 +- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/seibel/lod/handlers/LodDimensionFileHandler.java b/src/main/java/com/seibel/lod/handlers/LodDimensionFileHandler.java index 5a79272dc..346399c9c 100644 --- a/src/main/java/com/seibel/lod/handlers/LodDimensionFileHandler.java +++ b/src/main/java/com/seibel/lod/handlers/LodDimensionFileHandler.java @@ -125,12 +125,12 @@ public class LodDimensionFileHandler * Return the LodRegion region at the given coordinates. * (null if the file doesn't exist) */ - public LodRegion loadRegionFromFile(RegionPos regionPos, byte detailLevel) + public LodRegion loadRegionFromFile(byte detailLevel, RegionPos regionPos) { int regionX = regionPos.x; int regionZ = regionPos.z; - LodRegion region = null; - for (byte tempDetailLevel = detailLevel; tempDetailLevel <= LodUtil.REGION_DETAIL_LEVEL; tempDetailLevel++) + LodRegion region = new LodRegion(LodUtil.REGION_DETAIL_LEVEL,regionPos); + for (byte tempDetailLevel = LodUtil.REGION_DETAIL_LEVEL; tempDetailLevel >= detailLevel; tempDetailLevel--) { try { @@ -179,7 +179,7 @@ public class LodDimensionFileHandler ", version requested: " + LOD_SAVE_FILE_VERSION + " File was been deleted."); - continue; + break; } else if (fileVersion > LOD_SAVE_FILE_VERSION) { // the file we are reading is a newer version, @@ -190,23 +190,20 @@ public class LodDimensionFileHandler ", version requested: " + LOD_SAVE_FILE_VERSION + " this region will not be written to in order to protect the newer file."); - continue; + break; } } else { // there is no data in this file bufferedReader.close(); - continue; + break; } // this file is a readable version, begin reading the file data = bufferedReader.readLine(); bufferedReader.close(); - region = new LodRegion(new LevelContainer(data), regionPos); - if (tempDetailLevel >= detailLevel) - region.expand(detailLevel); - break; + region.addLevel(new LevelContainer(data)); } catch (Exception e) { // the buffered reader encountered a @@ -215,6 +212,8 @@ public class LodDimensionFileHandler e.printStackTrace(); } } + if (region.getMinDetailLevel() >= detailLevel) + region.expand(detailLevel); return region; } diff --git a/src/main/java/com/seibel/lod/objects/LodDimension.java b/src/main/java/com/seibel/lod/objects/LodDimension.java index 5a27846f6..3e0dae902 100644 --- a/src/main/java/com/seibel/lod/objects/LodDimension.java +++ b/src/main/java/com/seibel/lod/objects/LodDimension.java @@ -659,7 +659,7 @@ public class LodDimension public LodRegion getRegionFromFile(RegionPos regionPos, byte detailLevel) { if (fileHandler != null) - return fileHandler.loadRegionFromFile(regionPos, detailLevel); + return fileHandler.loadRegionFromFile(detailLevel, regionPos); else return null; } diff --git a/src/main/java/com/seibel/lod/render/LodRenderer.java b/src/main/java/com/seibel/lod/render/LodRenderer.java index bc1e65da8..22375940b 100644 --- a/src/main/java/com/seibel/lod/render/LodRenderer.java +++ b/src/main/java/com/seibel/lod/render/LodRenderer.java @@ -275,7 +275,7 @@ public class LodRenderer //===========================// // set the required open GL settings - GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_LINE); + GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_FILL); //GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_LINE); //GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glDisable(GL11.GL_TEXTURE_2D);