refactor FileScanUtil

This commit is contained in:
James Seibel
2023-09-02 11:53:12 -05:00
parent 6976cb9bb0
commit a60f91ad00
3 changed files with 30 additions and 34 deletions
@@ -83,7 +83,7 @@ public class FullDataFileHandler implements IFullDataSourceProvider
{
LOGGER.warn("Unable to create full data folder, file saving may fail.");
}
FileScanUtil.scanFiles(saveStructure, level.getLevelWrapper(), this, null);
FileScanUtil.scanFullDataFiles(saveStructure, level.getLevelWrapper(), this);
}
// constructor helpers //
@@ -101,7 +101,7 @@ public class RenderSourceFileHandler implements ILodRenderSourceProvider
this.threadPoolMsg = new F3Screen.NestedMessage(this::f3Log);
FileScanUtil.scanFiles(saveStructure, level.getLevelWrapper(), null, this);
FileScanUtil.scanRenderFiles(saveStructure, level.getLevelWrapper(), this);
}
/** Returns what should be displayed in Minecraft's F3 debug menu */
@@ -35,7 +35,7 @@ import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
// Static util class??
/** Used to pull in the initial files used by both {@link IFullDataSourceProvider} and {@link ILodRenderSourceProvider}s. */
public class FileScanUtil
{
private static final Logger LOGGER = DhLoggerBuilder.getLogger();
@@ -43,41 +43,37 @@ public class FileScanUtil
public static final String LOD_FILE_POSTFIX = ".lod";
public static final String RENDER_FILE_POSTFIX = ".rlod";
public static void scanFiles(
AbstractSaveStructure saveStructure, ILevelWrapper levelWrapper,
@Nullable IFullDataSourceProvider dataSourceProvider,
@Nullable ILodRenderSourceProvider renderSourceProvider)
public static void scanFullDataFiles(AbstractSaveStructure saveStructure, ILevelWrapper levelWrapper, IFullDataSourceProvider dataSourceProvider)
{
if (dataSourceProvider != null)
try (Stream<Path> pathStream = Files.walk(saveStructure.getFullDataFolder(levelWrapper).toPath(), MAX_SCAN_DEPTH))
{
try (Stream<Path> pathStream = Files.walk(saveStructure.getFullDataFolder(levelWrapper).toPath(), MAX_SCAN_DEPTH))
{
List<File> files = pathStream.filter(
path -> path.toFile().getName().endsWith(LOD_FILE_POSTFIX) && path.toFile().isFile()
).map(Path::toFile).collect(Collectors.toList());
LOGGER.info("Found " + files.size() + " full data files for " + levelWrapper + " in " + saveStructure);
dataSourceProvider.addScannedFile(files);
}
catch (Exception e)
{
LOGGER.error("Failed to scan and collect full data files for " + levelWrapper + " in " + saveStructure, e);
}
List<File> files = pathStream.filter(
path -> path.toFile().getName().endsWith(LOD_FILE_POSTFIX) && path.toFile().isFile()
).map(Path::toFile).collect(Collectors.toList());
LOGGER.info("Found " + files.size() + " full data files for " + levelWrapper + " in " + saveStructure);
dataSourceProvider.addScannedFile(files);
}
if (renderSourceProvider != null)
catch (Exception e)
{
try (Stream<Path> pathStream = Files.walk(saveStructure.getRenderCacheFolder(levelWrapper).toPath(), MAX_SCAN_DEPTH))
{
List<File> files = pathStream.filter(
path -> path.toFile().getName().endsWith(RENDER_FILE_POSTFIX) && path.toFile().isFile()
).map(Path::toFile).collect(Collectors.toList());
LOGGER.info("Found " + files.size() + " render cache files for " + levelWrapper + " in " + saveStructure);
renderSourceProvider.addScannedFile(files);
}
catch (Exception e)
{
LOGGER.error("Failed to scan and collect cache files for " + levelWrapper + " in " + saveStructure, e);
}
LOGGER.error("Failed to scan and collect full data files for " + levelWrapper + " in " + saveStructure, e);
}
}
public static void scanRenderFiles(AbstractSaveStructure saveStructure, ILevelWrapper levelWrapper, ILodRenderSourceProvider renderSourceProvider)
{
try (Stream<Path> pathStream = Files.walk(saveStructure.getRenderCacheFolder(levelWrapper).toPath(), MAX_SCAN_DEPTH))
{
List<File> files = pathStream.filter(
path -> path.toFile().getName().endsWith(RENDER_FILE_POSTFIX) && path.toFile().isFile()
).map(Path::toFile).collect(Collectors.toList());
LOGGER.info("Found " + files.size() + " render cache files for " + levelWrapper + " in " + saveStructure);
renderSourceProvider.addScannedFile(files);
}
catch (Exception e)
{
LOGGER.error("Failed to scan and collect cache files for " + levelWrapper + " in " + saveStructure, e);
}
}