diff --git a/src/bin/minedmap/main.rs b/src/bin/minedmap/main.rs index 22fed56..5e89025 100644 --- a/src/bin/minedmap/main.rs +++ b/src/bin/minedmap/main.rs @@ -26,8 +26,8 @@ fn main() -> Result<()> { let config = Config::new(args); let regions = RegionProcessor::new(&config).run()?; - TileRenderer::new(&config).run(regions.iter().copied())?; - TileMipmapper::new(&config).run(regions)?; + TileRenderer::new(&config).run(®ions)?; + TileMipmapper::new(&config).run(®ions)?; Ok(()) } diff --git a/src/bin/minedmap/region_processor.rs b/src/bin/minedmap/region_processor.rs index c5d2a7c..854c506 100644 --- a/src/bin/minedmap/region_processor.rs +++ b/src/bin/minedmap/region_processor.rs @@ -1,4 +1,4 @@ -use std::{collections::BTreeSet, path::Path}; +use std::path::Path; use anyhow::{Context, Result}; @@ -120,7 +120,7 @@ impl<'a> RegionProcessor<'a> { /// Iterates over all region files of a Minecraft save directory /// /// Returns a list of the coordinates of all processed regions - pub fn run(self) -> Result> { + pub fn run(self) -> Result> { let read_dir = self.config.region_dir.read_dir().with_context(|| { format!( "Failed to read directory {}", @@ -131,7 +131,7 @@ impl<'a> RegionProcessor<'a> { fs::create_dir_all(&self.config.processed_dir)?; fs::create_dir_all(&self.config.tile_dir(TileKind::Lightmap, 0))?; - let mut ret = BTreeSet::new(); + let mut ret = Vec::new(); for entry in read_dir.filter_map(|entry| entry.ok()).filter(|entry| { // We are only interested in regular files @@ -153,7 +153,7 @@ impl<'a> RegionProcessor<'a> { ); } - ret.insert(coords); + ret.push(coords); } Ok(ret) diff --git a/src/bin/minedmap/tile_mipmapper.rs b/src/bin/minedmap/tile_mipmapper.rs index 8e1415e..f24a41e 100644 --- a/src/bin/minedmap/tile_mipmapper.rs +++ b/src/bin/minedmap/tile_mipmapper.rs @@ -1,5 +1,3 @@ -use std::collections::BTreeSet; - use anyhow::{Context, Result}; use minedmap::{io::fs, types::*}; @@ -100,11 +98,11 @@ impl<'a> TileMipmapper<'a> { }) } - pub fn run(self, tiles: BTreeSet) -> Result> { + pub fn run(self, tiles: &[TileCoords]) -> Result> { let mut tile_stack = { let mut tile_map = TileCoordMap::default(); - for TileCoords { x, z } in tiles { + for &TileCoords { x, z } in tiles { tile_map.0.entry(z).or_default().insert(x); } diff --git a/src/bin/minedmap/tile_renderer.rs b/src/bin/minedmap/tile_renderer.rs index ee79883..2956081 100644 --- a/src/bin/minedmap/tile_renderer.rs +++ b/src/bin/minedmap/tile_renderer.rs @@ -80,10 +80,10 @@ impl<'a> TileRenderer<'a> { }) } - pub fn run(self, regions: impl IntoIterator) -> Result<()> { + pub fn run(self, regions: &[TileCoords]) -> Result<()> { fs::create_dir_all(&self.config.tile_dir(TileKind::Map, 0))?; - for coords in regions { + for &coords in regions { if let Err(err) = self.render_tile(coords) { eprintln!("Failed to render tile {:?}: {:?}", coords, err); }