mirror of
https://github.com/mat-1/azalea.git
synced 2025-08-02 06:16:04 +00:00
fix chunks incorrectly being forgotten sometimes
mojang WHY are chunk positions read z first and then x 😭
This commit is contained in:
parent
da96a7663a
commit
5b7ed4852c
1 changed files with 50 additions and 30 deletions
|
@ -308,43 +308,63 @@ async fn handle(mut bot: Client, event: Event, _state: State) -> anyhow::Result<
|
|||
bot.chat(&format!("block: {block:?}"));
|
||||
}
|
||||
"debugchunks" => {
|
||||
println!("shared:");
|
||||
{
|
||||
println!("shared:");
|
||||
|
||||
let partial_instance_lock = bot.component::<InstanceHolder>().partial_instance;
|
||||
let local_chunk_storage = &partial_instance_lock.read().chunks;
|
||||
let mut ecs = bot.ecs.lock();
|
||||
|
||||
let mut total_loaded_chunks_count = 0;
|
||||
for (chunk_pos, chunk) in &bot.world().read().chunks.map {
|
||||
if let Some(chunk) = chunk.upgrade() {
|
||||
let in_range = local_chunk_storage.in_range(chunk_pos);
|
||||
println!(
|
||||
"{chunk_pos:?} has {} references{}",
|
||||
std::sync::Arc::strong_count(&chunk) - 1,
|
||||
if in_range { "" } else { " (out of range)" }
|
||||
);
|
||||
total_loaded_chunks_count += 1;
|
||||
let instance_holder = bot.query::<&InstanceHolder>(&mut ecs).clone();
|
||||
drop(ecs);
|
||||
let local_chunk_storage = &instance_holder.partial_instance.read().chunks;
|
||||
let shared_chunk_storage = instance_holder.instance.read();
|
||||
|
||||
let mut total_loaded_chunks_count = 0;
|
||||
for (chunk_pos, chunk) in &shared_chunk_storage.chunks.map {
|
||||
if let Some(chunk) = chunk.upgrade() {
|
||||
let in_range = local_chunk_storage.in_range(chunk_pos);
|
||||
println!(
|
||||
"{chunk_pos:?} has {} references{}",
|
||||
std::sync::Arc::strong_count(&chunk) - 1,
|
||||
if in_range { "" } else { " (out of range)" }
|
||||
);
|
||||
total_loaded_chunks_count += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
println!("local:");
|
||||
println!("local:");
|
||||
println!("view range: {}", local_chunk_storage.view_range());
|
||||
println!("view center: {:?}", local_chunk_storage.view_center());
|
||||
|
||||
let mut local_loaded_chunks_count = 0;
|
||||
for (i, chunk) in local_chunk_storage.chunks().enumerate() {
|
||||
if let Some(chunk) = chunk {
|
||||
let chunk_pos = local_chunk_storage.chunk_pos_from_index(i);
|
||||
println!(
|
||||
"{chunk_pos:?} has {} references",
|
||||
std::sync::Arc::strong_count(&chunk)
|
||||
);
|
||||
local_loaded_chunks_count += 1;
|
||||
let mut local_loaded_chunks_count = 0;
|
||||
for (i, chunk) in local_chunk_storage.chunks().enumerate() {
|
||||
if let Some(chunk) = chunk {
|
||||
let chunk_pos = local_chunk_storage.chunk_pos_from_index(i);
|
||||
println!(
|
||||
"{chunk_pos:?} (#{i}) has {} references",
|
||||
std::sync::Arc::strong_count(&chunk)
|
||||
);
|
||||
local_loaded_chunks_count += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
println!("total loaded chunks: {total_loaded_chunks_count}");
|
||||
println!(
|
||||
"local loaded chunks: {local_loaded_chunks_count}/{}",
|
||||
local_chunk_storage.chunks().collect::<Vec<_>>().len()
|
||||
);
|
||||
println!("total loaded chunks: {total_loaded_chunks_count}");
|
||||
println!(
|
||||
"local loaded chunks: {local_loaded_chunks_count}/{}",
|
||||
local_chunk_storage.chunks().collect::<Vec<_>>().len()
|
||||
);
|
||||
}
|
||||
{
|
||||
let local_chunk_storage_lock = bot.partial_world();
|
||||
let local_chunk_storage = local_chunk_storage_lock.read();
|
||||
let current_chunk_loaded = local_chunk_storage
|
||||
.chunks
|
||||
.limited_get(&ChunkPos::from(bot.position()));
|
||||
|
||||
bot.chat(&format!(
|
||||
"current chunk loaded: {}",
|
||||
current_chunk_loaded.is_some()
|
||||
));
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue