mirror of
https://github.com/neocturne/MinedMap.git
synced 2025-03-04 17:23:33 +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 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(())
|
||||
}
|
||||
|
|
|
@ -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<BTreeSet<TileCoords>> {
|
||||
pub fn run(self) -> Result<Vec<TileCoords>> {
|
||||
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)
|
||||
|
|
|
@ -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<TileCoords>) -> Result<Vec<TileCoordMap>> {
|
||||
pub fn run(self, tiles: &[TileCoords]) -> Result<Vec<TileCoordMap>> {
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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))?;
|
||||
|
||||
for coords in regions {
|
||||
for &coords in regions {
|
||||
if let Err(err) = self.render_tile(coords) {
|
||||
eprintln!("Failed to render tile {:?}: {:?}", coords, err);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue