Better handling for unused blocks found during chunk load (Fixes #34)
This commit is contained in:
parent
d8b90b74bc
commit
027134f4c6
|
@ -614,7 +614,7 @@ impl World {
|
||||||
.map(|v| v.1)
|
.map(|v| v.1)
|
||||||
.unwrap_or(0) == 0 {
|
.unwrap_or(0) == 0 {
|
||||||
if bl_id >= section.block_map.len() {
|
if bl_id >= section.block_map.len() {
|
||||||
section.block_map.resize(bl_id + 1, (block::Air{}, 0));
|
section.block_map.resize(bl_id + 1, (block::Air{}, 0xFFFFF)); // Impossible to reach this value normally
|
||||||
}
|
}
|
||||||
let bl = block::Block::by_vanilla_id(bl_id as usize);
|
let bl = block::Block::by_vanilla_id(bl_id as usize);
|
||||||
section.block_map[bl_id] = (bl, 0);
|
section.block_map[bl_id] = (bl, 0);
|
||||||
|
@ -622,6 +622,9 @@ impl World {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let bmap = section.block_map.get_mut(bl_id).unwrap();
|
let bmap = section.block_map.get_mut(bl_id).unwrap();
|
||||||
|
if bmap.1 == 0xFFFFF {
|
||||||
|
bmap.1 = 0;
|
||||||
|
}
|
||||||
bmap.1 += 1;
|
bmap.1 += 1;
|
||||||
if block_entity::BlockEntityType::get_block_entity(bmap.0).is_some() {
|
if block_entity::BlockEntityType::get_block_entity(bmap.0).is_some() {
|
||||||
let pos = Position::new(
|
let pos = Position::new(
|
||||||
|
@ -637,7 +640,7 @@ impl World {
|
||||||
}
|
}
|
||||||
|
|
||||||
for entry in §ion.block_map {
|
for entry in §ion.block_map {
|
||||||
if entry.1 == 0 && match entry.0 { block::Air{} => false, _ => true } {
|
if entry.1 == 0xFFFFF {
|
||||||
section.rev_block_map.remove(&entry.0);
|
section.rev_block_map.remove(&entry.0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue