Skip to content

Commit de3622e

Browse files
committed
Default to empty vec
1 parent 680a659 commit de3622e

File tree

1 file changed

+39
-31
lines changed

1 file changed

+39
-31
lines changed

pumpkin-world/src/chunk/format/anvil.rs

+39-31
Original file line numberDiff line numberDiff line change
@@ -538,37 +538,45 @@ pub fn chunk_to_bytes(chunk_data: &ChunkData) -> Result<Vec<u8>, ChunkSerializin
538538
status: ChunkStatus::Full,
539539
heightmaps: chunk_data.heightmap.clone(),
540540
sections,
541-
block_ticks: chunk_data
542-
.block_ticks
543-
.try_read()
544-
.unwrap()
545-
.iter()
546-
.map(|tick| SerializedScheduledTick {
547-
x: tick.x,
548-
y: tick.y,
549-
z: tick.z,
550-
delay: tick.delay as i32,
551-
priority: tick.priority as i32,
552-
target_block: format!(
553-
"minecraft:{}",
554-
Block::from_id(tick.target_block_id).unwrap().name
555-
),
556-
})
557-
.collect(),
558-
fluid_ticks: chunk_data
559-
.fluid_ticks
560-
.try_read()
561-
.unwrap()
562-
.iter()
563-
.map(|tick| SerializedScheduledTick {
564-
x: tick.x,
565-
y: tick.y,
566-
z: tick.z,
567-
delay: tick.delay as i32,
568-
priority: tick.priority as i32,
569-
target_block: tick.target_block.name.to_string(),
570-
})
571-
.collect(),
541+
block_ticks: {
542+
if let Ok(block_ticks) = chunk_data.block_ticks.try_read() {
543+
block_ticks
544+
.iter()
545+
.map(|tick| SerializedScheduledTick {
546+
x: tick.x,
547+
y: tick.y,
548+
z: tick.z,
549+
delay: tick.delay as i32,
550+
priority: tick.priority as i32,
551+
target_block: format!(
552+
"minecraft:{}",
553+
Block::from_id(tick.target_block_id).unwrap().name
554+
),
555+
})
556+
.collect()
557+
} else {
558+
log::error!("Failed to read block ticks");
559+
vec![]
560+
}
561+
},
562+
fluid_ticks: {
563+
if let Ok(fluid_ticks) = chunk_data.fluid_ticks.try_read() {
564+
fluid_ticks
565+
.iter()
566+
.map(|tick| SerializedScheduledTick {
567+
x: tick.x,
568+
y: tick.y,
569+
z: tick.z,
570+
delay: tick.delay as i32,
571+
priority: tick.priority as i32,
572+
target_block: tick.target_block.name.to_string(),
573+
})
574+
.collect()
575+
} else {
576+
log::error!("Failed to read fluid ticks");
577+
vec![]
578+
}
579+
},
572580
};
573581

574582
let mut result = Vec::new();

0 commit comments

Comments
 (0)