Trait mc_core::world::source::LevelSource [−][src]
pub trait LevelSource {
fn request_chunk_load(
&mut self,
req: ChunkLoadRequest
) -> Result<(), (LevelSourceError, ChunkLoadRequest)> { ... }
fn poll_chunk(
&mut self
) -> Option<Result<ProtoChunk, (LevelSourceError, ChunkLoadRequest)>> { ... }
fn request_chunk_save(
&mut self,
req: ChunkSaveRequest
) -> Result<(), LevelSourceError> { ... }
}Expand description
Level loader trait to implement for each different loader such as disk or generator loaders, combine these two types of loaders to save and load change in a chunk to avoid generating twice.
Provided methods
fn request_chunk_load(
&mut self,
req: ChunkLoadRequest
) -> Result<(), (LevelSourceError, ChunkLoadRequest)>
fn request_chunk_load(
&mut self,
req: ChunkLoadRequest
) -> Result<(), (LevelSourceError, ChunkLoadRequest)>
Request loading of the chunk at the given position. If you return an error, you must
return back the given ChunkInfo together with the LevelSourceError. If you return
Ok(()) you must give a result later when calling poll_chunk. This operation
must be non-blocking.
fn poll_chunk(
&mut self
) -> Option<Result<ProtoChunk, (LevelSourceError, ChunkLoadRequest)>>
fn poll_chunk(
&mut self
) -> Option<Result<ProtoChunk, (LevelSourceError, ChunkLoadRequest)>>
Poll the next loaded chunk that is ready to be inserted into the level’s chunk storage.
Every requested load chunk request_chunk_load method that returned Ok(()) should
return some some result here, even if it’s an error. This operation must be
non-blocking.
fn request_chunk_save(
&mut self,
req: ChunkSaveRequest
) -> Result<(), LevelSourceError>
fn request_chunk_save(
&mut self,
req: ChunkSaveRequest
) -> Result<(), LevelSourceError>
Request saving of the chunk at the given position. This operation must be non-blocking.
