From 060dca1574b96d90ac037907dd84c0947d735aa8 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Sat, 15 Jul 2023 18:21:40 -0500 Subject: [PATCH] Fix infinitely writing/creating FullDatafiles --- .../dataObjects/fullData/sources/CompleteFullDataSource.java | 1 + .../core/file/fullDatafile/FullDataFileHandler.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/sources/CompleteFullDataSource.java b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/sources/CompleteFullDataSource.java index 90946edeb..ea1d91959 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/sources/CompleteFullDataSource.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/sources/CompleteFullDataSource.java @@ -362,6 +362,7 @@ public class CompleteFullDataSource extends FullDataArrayAccessor implements IFu // the difference in detail levels is very large, // check if the posToWrite is in a corner of posToTest byte sectPerData = (byte) BitShiftUtil.powerOfTwo(posToWrite.sectionDetailLevel - posToTest.sectionDetailLevel - SECTION_SIZE_OFFSET); + LodUtil.assertTrue(sectPerData != 0); return posToTest.sectionX % sectPerData == 0 && posToTest.sectionZ % sectPerData == 0; } } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/FullDataFileHandler.java b/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/FullDataFileHandler.java index be90f4fc5..8b9717c8f 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/FullDataFileHandler.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/FullDataFileHandler.java @@ -373,7 +373,7 @@ public class FullDataFileHandler implements IFullDataSourceProvider private void writeChunkDataToMetaFile(DhSectionPos sectionPos, ChunkSizedFullDataAccessor chunkData) { FullDataMetaFile metaFile = this.fileBySectionPos.get(sectionPos); - if (metaFile == null) + if (metaFile == null && sectionPos.sectionDetailLevel <= this.topDetailLevel.get()) { // create a new file if one doesn't exist, // this is done so we don't end up with holes where LODs should have been generated