diff --git a/core/src/main/java/com/seibel/lod/core/file/renderfile/ILodRenderSourceProvider.java b/core/src/main/java/com/seibel/lod/core/file/renderfile/ILodRenderSourceProvider.java index bf7141772..961e6b22c 100644 --- a/core/src/main/java/com/seibel/lod/core/file/renderfile/ILodRenderSourceProvider.java +++ b/core/src/main/java/com/seibel/lod/core/file/renderfile/ILodRenderSourceProvider.java @@ -10,7 +10,7 @@ import java.util.concurrent.CompletableFuture; /** * This represents LOD data that is stored in long term storage (IE LOD files stored on the hard drive)
- * Example: {@link RenderFileHandler RenderFileHandler}

+ * Example: {@link RenderSourceFileHandler RenderSourceFileHandler}

* * This is used to create {@link ColumnRenderSource}'s */ diff --git a/core/src/main/java/com/seibel/lod/core/file/renderfile/RenderMetaDataFile.java b/core/src/main/java/com/seibel/lod/core/file/renderfile/RenderMetaDataFile.java index 9c689045a..5c1265246 100644 --- a/core/src/main/java/com/seibel/lod/core/file/renderfile/RenderMetaDataFile.java +++ b/core/src/main/java/com/seibel/lod/core/file/renderfile/RenderMetaDataFile.java @@ -1,5 +1,6 @@ package com.seibel.lod.core.file.renderfile; +import com.seibel.lod.core.datatype.render.ColumnRenderLoader; import com.seibel.lod.core.datatype.render.ColumnRenderSource; import com.seibel.lod.core.datatype.render.AbstractRenderSourceLoader; import com.seibel.lod.core.datatype.full.sources.ChunkSizedFullDataSource; @@ -33,7 +34,7 @@ public class RenderMetaDataFile extends AbstractMetaDataFile // null - Nothing is loaded or being loaded AtomicReference data = new AtomicReference<>(null); - private final RenderFileHandler fileHandler; + private final RenderSourceFileHandler fileHandler; private boolean doesFileExist; @@ -46,11 +47,11 @@ public class RenderMetaDataFile extends AbstractMetaDataFile * NOTE: should only be used if there is NOT an existing file. * @throws IOException if a file already exists for this position */ - public static RenderMetaDataFile createNewFileForPos(RenderFileHandler fileHandler, DhSectionPos pos) throws IOException + public static RenderMetaDataFile createNewFileForPos(RenderSourceFileHandler fileHandler, DhSectionPos pos) throws IOException { return new RenderMetaDataFile(fileHandler, pos); } - private RenderMetaDataFile(RenderFileHandler fileHandler, DhSectionPos pos) throws IOException + private RenderMetaDataFile(RenderSourceFileHandler fileHandler, DhSectionPos pos) throws IOException { super(fileHandler.computeRenderFilePath(pos), pos); this.fileHandler = fileHandler; @@ -62,11 +63,11 @@ public class RenderMetaDataFile extends AbstractMetaDataFile * NOTE: should only be used if there IS an existing file. * @throws IOException if no file exists for this position */ - public static RenderMetaDataFile createFromExistingFile(RenderFileHandler fileHandler, File path) throws IOException + public static RenderMetaDataFile createFromExistingFile(RenderSourceFileHandler fileHandler, File path) throws IOException { return new RenderMetaDataFile(fileHandler, path); } - private RenderMetaDataFile(RenderFileHandler fileHandler, File path) throws IOException + private RenderMetaDataFile(RenderSourceFileHandler fileHandler, File path) throws IOException { super(path); this.fileHandler = fileHandler; diff --git a/core/src/main/java/com/seibel/lod/core/file/renderfile/RenderFileHandler.java b/core/src/main/java/com/seibel/lod/core/file/renderfile/RenderSourceFileHandler.java similarity index 96% rename from core/src/main/java/com/seibel/lod/core/file/renderfile/RenderFileHandler.java rename to core/src/main/java/com/seibel/lod/core/file/renderfile/RenderSourceFileHandler.java index d13e9a174..a0cc74d44 100644 --- a/core/src/main/java/com/seibel/lod/core/file/renderfile/RenderFileHandler.java +++ b/core/src/main/java/com/seibel/lod/core/file/renderfile/RenderSourceFileHandler.java @@ -2,7 +2,6 @@ package com.seibel.lod.core.file.renderfile; import com.google.common.collect.HashMultimap; import com.seibel.lod.core.datatype.full.IFullDataSource; -import com.seibel.lod.core.datatype.render.AbstractRenderSourceLoader; import com.seibel.lod.core.datatype.render.ColumnRenderSource; import com.seibel.lod.core.datatype.full.sources.ChunkSizedFullDataSource; import com.seibel.lod.core.datatype.transform.DataRenderTransformer; @@ -24,9 +23,10 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; -public class RenderFileHandler implements ILodRenderSourceProvider +public class RenderSourceFileHandler implements ILodRenderSourceProvider { public static final String RENDER_FILE_EXTENSION = ".rlod"; + public static final long RENDER_SOURCE_TYPE_ID = ColumnRenderSource.TYPE_ID; private static final Logger LOGGER = DhLoggerBuilder.getLogger(); @@ -42,7 +42,7 @@ public class RenderFileHandler implements ILodRenderSourceProvider - public RenderFileHandler(IFullDataSourceProvider sourceProvider, IDhClientLevel level, File saveRootDir) + public RenderSourceFileHandler(IFullDataSourceProvider sourceProvider, IDhClientLevel level, File saveRootDir) { this.fullDataSourceProvider = sourceProvider; this.level = level; @@ -339,9 +339,7 @@ public class RenderFileHandler implements ILodRenderSourceProvider //file.metaData.dataVersion.set(newDataVersion); file.metaData.dataLevel = currentRenderSource.getDataDetail(); - file.loader = AbstractRenderSourceLoader.getLoader(currentRenderSource.getClass(), currentRenderSource.getRenderVersion()); - file.dataType = currentRenderSource.getClass(); - file.metaData.dataTypeId = file.loader.renderTypeId; + file.metaData.dataTypeId = RENDER_SOURCE_TYPE_ID; file.metaData.loaderVersion = currentRenderSource.getRenderVersion(); file.save(currentRenderSource, this.level); } diff --git a/core/src/main/java/com/seibel/lod/core/level/DhClientLevel.java b/core/src/main/java/com/seibel/lod/core/level/DhClientLevel.java index 8ad018021..4821ea7ff 100644 --- a/core/src/main/java/com/seibel/lod/core/level/DhClientLevel.java +++ b/core/src/main/java/com/seibel/lod/core/level/DhClientLevel.java @@ -1,10 +1,10 @@ package com.seibel.lod.core.level; import com.seibel.lod.core.file.fullDatafile.IFullDataSourceProvider; +import com.seibel.lod.core.file.renderfile.RenderSourceFileHandler; import com.seibel.lod.core.render.LodQuadTree; import com.seibel.lod.core.util.FileScanUtil; import com.seibel.lod.core.file.fullDatafile.RemoteFullDataFileHandler; -import com.seibel.lod.core.file.renderfile.RenderFileHandler; import com.seibel.lod.core.pos.DhBlockPos2D; import com.seibel.lod.core.render.RenderBufferHandler; import com.seibel.lod.core.file.structure.ClientOnlySaveStructure; @@ -31,7 +31,7 @@ public class DhClientLevel implements IDhClientLevel private static final IMinecraftClientWrapper MC_CLIENT = SingletonInjector.INSTANCE.get(IMinecraftClientWrapper.class); public final ClientOnlySaveStructure save; public final RemoteFullDataFileHandler dataFileHandler; - public final RenderFileHandler renderFileHandler; + public final RenderSourceFileHandler renderSourceFileHandler; public final RenderBufferHandler renderBufferHandler; //TODO: Should this be owned by renderer? public final IClientLevelWrapper level; public LodRenderer renderer = null; @@ -45,12 +45,12 @@ public class DhClientLevel implements IDhClientLevel save.getDataFolder(level).mkdirs(); save.getRenderCacheFolder(level).mkdirs(); this.dataFileHandler = new RemoteFullDataFileHandler(this, save.getDataFolder(level)); - this.renderFileHandler = new RenderFileHandler(this.dataFileHandler, this, save.getRenderCacheFolder(level)); + this.renderSourceFileHandler = new RenderSourceFileHandler(this.dataFileHandler, this, save.getRenderCacheFolder(level)); this.tree = new LodQuadTree(this, Config.Client.Graphics.Quality.lodChunkRenderDistance.get() * 16, - MC_CLIENT.getPlayerBlockPos().x, MC_CLIENT.getPlayerBlockPos().z, this.renderFileHandler); + MC_CLIENT.getPlayerBlockPos().x, MC_CLIENT.getPlayerBlockPos().z, this.renderSourceFileHandler); this.renderBufferHandler = new RenderBufferHandler(this.tree); this.level = level; - FileScanUtil.scanFiles(save, level, this.dataFileHandler, this.renderFileHandler); + FileScanUtil.scanFiles(save, level, this.dataFileHandler, this.renderSourceFileHandler); LOGGER.info("Started DHLevel for {} with saves at {}", level, save); } @@ -110,12 +110,12 @@ public class DhClientLevel implements IDhClientLevel public int getMinY() { return this.level.getMinHeight(); } @Override - public CompletableFuture saveAsync() { return this.renderFileHandler.flushAndSave(); } + public CompletableFuture saveAsync() { return this.renderSourceFileHandler.flushAndSave(); } @Override public void close() { - this.renderFileHandler.close(); + this.renderSourceFileHandler.close(); LOGGER.info("Closed DHLevel for {}", this.level); } diff --git a/core/src/main/java/com/seibel/lod/core/level/DhClientServerLevel.java b/core/src/main/java/com/seibel/lod/core/level/DhClientServerLevel.java index 0dbf1b8e3..5d62b0d40 100644 --- a/core/src/main/java/com/seibel/lod/core/level/DhClientServerLevel.java +++ b/core/src/main/java/com/seibel/lod/core/level/DhClientServerLevel.java @@ -7,6 +7,7 @@ import com.seibel.lod.core.datatype.full.sources.ChunkSizedFullDataSource; import com.seibel.lod.core.datatype.full.sources.FullDataSource; import com.seibel.lod.core.datatype.transform.ChunkToLodBuilder; import com.seibel.lod.core.file.fullDatafile.IFullDataSourceProvider; +import com.seibel.lod.core.file.renderfile.RenderSourceFileHandler; import com.seibel.lod.core.generation.BatchGenerator; import com.seibel.lod.core.generation.WorldGenerationQueue; import com.seibel.lod.core.pos.DhLodPos; @@ -14,7 +15,6 @@ import com.seibel.lod.core.pos.DhSectionPos; import com.seibel.lod.core.render.LodQuadTree; import com.seibel.lod.core.file.fullDatafile.GeneratedFullDataFileHandler; import com.seibel.lod.core.util.FileScanUtil; -import com.seibel.lod.core.file.renderfile.RenderFileHandler; import com.seibel.lod.core.pos.DhBlockPos2D; import com.seibel.lod.core.render.RenderBufferHandler; import com.seibel.lod.core.file.structure.LocalSaveStructure; @@ -130,7 +130,7 @@ public class DhClientServerLevel implements IDhClientLevel, IDhServerLevel DhLodPos pos = data.getBBoxLodPos().convertToDetailLevel(FullDataSource.SECTION_SIZE_OFFSET); if (renderState != null) { - renderState.renderFileHandler.write(new DhSectionPos(pos.detailLevel, pos.x, pos.z), data); + renderState.renderSourceFileHandler.write(new DhSectionPos(pos.detailLevel, pos.x, pos.z), data); } else { @@ -264,7 +264,7 @@ public class DhClientServerLevel implements IDhClientLevel, IDhServerLevel RenderState renderState = this.renderStateRef.get(); if (renderState != null) { - return renderState.renderFileHandler.flushAndSave().thenCombine(this.dataFileHandler.flushAndSave(), (voidA, voidB) -> null); + return renderState.renderSourceFileHandler.flushAndSave().thenCombine(this.dataFileHandler.flushAndSave(), (voidA, voidB) -> null); } else { @@ -377,7 +377,7 @@ public class DhClientServerLevel implements IDhClientLevel, IDhServerLevel { public final IClientLevelWrapper clientLevel; public final LodQuadTree quadtree; - public final RenderFileHandler renderFileHandler; + public final RenderSourceFileHandler renderSourceFileHandler; public final LodRenderer renderer; @@ -387,13 +387,13 @@ public class DhClientServerLevel implements IDhClientLevel, IDhServerLevel DhClientServerLevel thisParent = DhClientServerLevel.this; this.clientLevel = clientLevel; - this.renderFileHandler = new RenderFileHandler(thisParent.dataFileHandler, thisParent, thisParent.saveStructure.getRenderCacheFolder(thisParent.serverLevel)); + this.renderSourceFileHandler = new RenderSourceFileHandler(thisParent.dataFileHandler, thisParent, thisParent.saveStructure.getRenderCacheFolder(thisParent.serverLevel)); this.quadtree = new LodQuadTree(DhClientServerLevel.this, Config.Client.Graphics.Quality.lodChunkRenderDistance.get() * LodUtil.CHUNK_WIDTH, - MC_CLIENT.getPlayerBlockPos().x, MC_CLIENT.getPlayerBlockPos().z, this.renderFileHandler); + MC_CLIENT.getPlayerBlockPos().x, MC_CLIENT.getPlayerBlockPos().z, this.renderSourceFileHandler); RenderBufferHandler renderBufferHandler = new RenderBufferHandler(this.quadtree); - FileScanUtil.scanFiles(thisParent.saveStructure, thisParent.serverLevel, null, this.renderFileHandler); + FileScanUtil.scanFiles(thisParent.saveStructure, thisParent.serverLevel, null, this.renderSourceFileHandler); this.renderer = new LodRenderer(renderBufferHandler); } @@ -403,7 +403,7 @@ public class DhClientServerLevel implements IDhClientLevel, IDhServerLevel { this.renderer.close(); this.quadtree.close(); - return this.renderFileHandler.flushAndSave(); + return this.renderSourceFileHandler.flushAndSave(); } }