mirror of
https://github.com/mat-1/azalea.git
synced 2024-09-19 22:52:32 +00:00
mor echunk stuff
This commit is contained in:
parent
0bd798045c
commit
477c367fc4
3 changed files with 9 additions and 25 deletions
|
@ -271,6 +271,8 @@ impl Client {
|
||||||
.lock()
|
.lock()
|
||||||
.await
|
.await
|
||||||
.world
|
.world
|
||||||
|
.as_mut()
|
||||||
|
.expect("World doesn't exist! We should've gotten a login packet by now.")
|
||||||
.replace_with_packet_data(&pos, &mut p.chunk_data.data.as_slice())
|
.replace_with_packet_data(&pos, &mut p.chunk_data.data.as_slice())
|
||||||
.unwrap();
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
Sent and receive Minecraft packets. You should probably use `azalea` or `azalea-client` instead.
|
Sent and receive Minecraft packets. You should probably use `azalea` or `azalea-client` instead.
|
||||||
|
|
||||||
The goal is to **only** support the latest Minecraft version in order to ease development.
|
The goal is to only support the latest Minecraft version in order to ease development.
|
||||||
|
|
||||||
This is not yet complete, search for `TODO` in the code for things that need to be done.
|
This is not yet complete, search for `TODO` in the code for things that need to be done.
|
||||||
|
|
||||||
Unfortunately, compiling the crate requires Rust nightly because specialization is not stable yet.
|
Unfortunately, using azalea-protocol requires Rust nightly because [specialization](https://github.com/rust-lang/rust/issues/31844) is not stable yet. Use `rustup default nightly` to enable it.
|
||||||
|
|
|
@ -38,17 +38,11 @@ impl World {
|
||||||
);
|
);
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
let existing_chunk = &self.storage[pos];
|
// let existing_chunk = &self.storage[pos];
|
||||||
if let Some(existing_chunk) = existing_chunk {
|
|
||||||
existing_chunk
|
let chunk = Arc::new(Mutex::new(Chunk::read_with_world(data, self)?));
|
||||||
.lock()
|
println!("Loaded chunk {:?}", chunk);
|
||||||
.expect("Couldn't get lock on existing chunk")
|
self.storage[pos] = Some(chunk);
|
||||||
.replace_with_packet_data(data)?;
|
|
||||||
} else {
|
|
||||||
let chunk = Arc::new(Mutex::new(Chunk::read_with_world(data, self)?));
|
|
||||||
println!("Loaded chunk {:?}", chunk);
|
|
||||||
self.storage[pos] = Some(chunk);
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -131,18 +125,6 @@ impl Chunk {
|
||||||
}
|
}
|
||||||
Ok(Chunk { sections })
|
Ok(Chunk { sections })
|
||||||
}
|
}
|
||||||
|
|
||||||
fn replace_with_packet_data(&mut self, data: &mut impl Read) -> Result<(), String> {
|
|
||||||
let section_count = self.sections.len();
|
|
||||||
|
|
||||||
// this should also replace block entities and set the heightmap
|
|
||||||
|
|
||||||
for i in 0..section_count {
|
|
||||||
self.sections[i] = Section::read_into(data)?;
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl McBufWritable for Chunk {
|
impl McBufWritable for Chunk {
|
||||||
|
|
Loading…
Reference in a new issue