mirror of
https://github.com/neocturne/MinedMap.git
synced 2025-03-05 01:24:53 +01:00
core/region_processor: make regular processing errors non-fatal again
Never fail because of invalid save files.
This commit is contained in:
parent
09374d755e
commit
fd48f94f16
1 changed files with 40 additions and 24 deletions
|
@ -5,7 +5,7 @@ use std::{ffi::OsStr, path::Path, time::SystemTime};
|
||||||
use anyhow::{Context, Result};
|
use anyhow::{Context, Result};
|
||||||
use indexmap::IndexSet;
|
use indexmap::IndexSet;
|
||||||
use rayon::prelude::*;
|
use rayon::prelude::*;
|
||||||
use tracing::{debug, info};
|
use tracing::{debug, info, warn};
|
||||||
|
|
||||||
use super::common::*;
|
use super::common::*;
|
||||||
use crate::{
|
use crate::{
|
||||||
|
@ -168,6 +168,7 @@ impl<'a> RegionProcessor<'a> {
|
||||||
|
|
||||||
debug!("Processing region r.{}.{}.mca", coords.x, coords.z);
|
debug!("Processing region r.{}.{}.mca", coords.x, coords.z);
|
||||||
|
|
||||||
|
if let Err(err) = (|| -> Result<()> {
|
||||||
crate::nbt::region::from_file(input_path)?.foreach_chunk(
|
crate::nbt::region::from_file(input_path)?.foreach_chunk(
|
||||||
|chunk_coords, data: world::de::Chunk| {
|
|chunk_coords, data: world::de::Chunk| {
|
||||||
let Some(layer::LayerData {
|
let Some(layer::LayerData {
|
||||||
|
@ -192,7 +193,22 @@ impl<'a> RegionProcessor<'a> {
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
},
|
},
|
||||||
)?;
|
)
|
||||||
|
})() {
|
||||||
|
if output_timestamp.is_some() && lightmap_timestamp.is_some() {
|
||||||
|
warn!(
|
||||||
|
"Failed to process region {:?}, using old data: {:?}",
|
||||||
|
coords, err
|
||||||
|
);
|
||||||
|
return Ok(RegionProcessorStatus::ErrorOk);
|
||||||
|
} else {
|
||||||
|
warn!(
|
||||||
|
"Failed to process region {:?}, no old data available: {:?}",
|
||||||
|
coords, err
|
||||||
|
);
|
||||||
|
return Ok(RegionProcessorStatus::ErrorMissing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if Some(input_timestamp) > output_timestamp {
|
if Some(input_timestamp) > output_timestamp {
|
||||||
Self::save_region(&output_path, &processed_region, input_timestamp)?;
|
Self::save_region(&output_path, &processed_region, input_timestamp)?;
|
||||||
|
|
Loading…
Add table
Reference in a new issue