mirror of
https://github.com/neocturne/MinedMap.git
synced 2025-03-05 17:44:52 +01:00
Revert "minedmap: store region list in BTreeSet"
This reverts commit b53d34da3d
.
With the change of the mipmapper data structure, we need a conversion
step anyways, so we can keep using the Vec before mipmapping.
This commit is contained in:
parent
b63a18ad6f
commit
f9fc9efe8d
4 changed files with 10 additions and 12 deletions
|
@ -26,8 +26,8 @@ fn main() -> Result<()> {
|
||||||
let config = Config::new(args);
|
let config = Config::new(args);
|
||||||
|
|
||||||
let regions = RegionProcessor::new(&config).run()?;
|
let regions = RegionProcessor::new(&config).run()?;
|
||||||
TileRenderer::new(&config).run(regions.iter().copied())?;
|
TileRenderer::new(&config).run(®ions)?;
|
||||||
TileMipmapper::new(&config).run(regions)?;
|
TileMipmapper::new(&config).run(®ions)?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use std::{collections::BTreeSet, path::Path};
|
use std::path::Path;
|
||||||
|
|
||||||
use anyhow::{Context, Result};
|
use anyhow::{Context, Result};
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ impl<'a> RegionProcessor<'a> {
|
||||||
/// Iterates over all region files of a Minecraft save directory
|
/// Iterates over all region files of a Minecraft save directory
|
||||||
///
|
///
|
||||||
/// Returns a list of the coordinates of all processed regions
|
/// Returns a list of the coordinates of all processed regions
|
||||||
pub fn run(self) -> Result<BTreeSet<TileCoords>> {
|
pub fn run(self) -> Result<Vec<TileCoords>> {
|
||||||
let read_dir = self.config.region_dir.read_dir().with_context(|| {
|
let read_dir = self.config.region_dir.read_dir().with_context(|| {
|
||||||
format!(
|
format!(
|
||||||
"Failed to read directory {}",
|
"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.processed_dir)?;
|
||||||
fs::create_dir_all(&self.config.tile_dir(TileKind::Lightmap, 0))?;
|
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| {
|
for entry in read_dir.filter_map(|entry| entry.ok()).filter(|entry| {
|
||||||
// We are only interested in regular files
|
// We are only interested in regular files
|
||||||
|
@ -153,7 +153,7 @@ impl<'a> RegionProcessor<'a> {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret.insert(coords);
|
ret.push(coords);
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(ret)
|
Ok(ret)
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
use std::collections::BTreeSet;
|
|
||||||
|
|
||||||
use anyhow::{Context, Result};
|
use anyhow::{Context, Result};
|
||||||
|
|
||||||
use minedmap::{io::fs, types::*};
|
use minedmap::{io::fs, types::*};
|
||||||
|
@ -100,11 +98,11 @@ impl<'a> TileMipmapper<'a> {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn run(self, tiles: BTreeSet<TileCoords>) -> Result<Vec<TileCoordMap>> {
|
pub fn run(self, tiles: &[TileCoords]) -> Result<Vec<TileCoordMap>> {
|
||||||
let mut tile_stack = {
|
let mut tile_stack = {
|
||||||
let mut tile_map = TileCoordMap::default();
|
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);
|
tile_map.0.entry(z).or_default().insert(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -80,10 +80,10 @@ impl<'a> TileRenderer<'a> {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn run(self, regions: impl IntoIterator<Item = TileCoords>) -> Result<()> {
|
pub fn run(self, regions: &[TileCoords]) -> Result<()> {
|
||||||
fs::create_dir_all(&self.config.tile_dir(TileKind::Map, 0))?;
|
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) {
|
if let Err(err) = self.render_tile(coords) {
|
||||||
eprintln!("Failed to render tile {:?}: {:?}", coords, err);
|
eprintln!("Failed to render tile {:?}: {:?}", coords, err);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue