chore: update linear format from v1 to v2

This commit is contained in:
Alexander Medvedev 2026-04-18 08:35:48 +02:00
parent 2b4e3bb332
commit 9dd9754b4e
5 changed files with 612 additions and 412 deletions

7
Cargo.lock generated
View File

@ -3051,6 +3051,7 @@ dependencies = [
"tokio-util", "tokio-util",
"tracing", "tracing",
"uuid", "uuid",
"xxhash-rust",
] ]
[[package]] [[package]]
@ -5516,6 +5517,12 @@ version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4"
[[package]]
name = "xxhash-rust"
version = "0.8.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3"
[[package]] [[package]]
name = "yoke" name = "yoke"
version = "0.8.2" version = "0.8.2"

View File

@ -18,7 +18,7 @@ pub enum ChunkConfig {
impl Default for ChunkConfig { impl Default for ChunkConfig {
fn default() -> Self { fn default() -> Self {
Self::Anvil(AnvilChunkConfig::default()) Self::Linear(LinearChunkConfig::default())
} }
} }

View File

@ -41,6 +41,7 @@ dashmap.workspace = true
flate2.workspace = true flate2.workspace = true
lz4-java-wrc.workspace = true lz4-java-wrc.workspace = true
ruzstd.workspace = true ruzstd.workspace = true
xxhash-rust = { version = "0.8", features = ["xxh64"] }
itertools.workspace = true itertools.workspace = true
enum_dispatch.workspace = true enum_dispatch.workspace = true

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,4 @@
use crate::chunk::format::linear::LinearV2File;
use crate::chunk_system::{ChunkListener, ChunkLoading, GenerationSchedule, LevelChannel}; use crate::chunk_system::{ChunkListener, ChunkLoading, GenerationSchedule, LevelChannel};
use crate::generation::generator::VanillaGenerator; use crate::generation::generator::VanillaGenerator;
use crate::lighting::DynamicLightEngine; use crate::lighting::DynamicLightEngine;
@ -6,7 +7,7 @@ use crate::{
block::{RawBlockState, entities::BlockEntity}, block::{RawBlockState, entities::BlockEntity},
chunk::{ chunk::{
ChunkData, ChunkEntityData, ChunkReadingError, ChunkData, ChunkEntityData, ChunkReadingError,
format::{anvil::AnvilChunkFile, linear::LinearFile}, format::anvil::AnvilChunkFile,
io::{Dirtiable, FileIO, LoadedData, file_manager::ChunkFileManager}, io::{Dirtiable, FileIO, LoadedData, file_manager::ChunkFileManager},
palette::has_random_ticking_fluid, palette::has_random_ticking_fluid,
}, },
@ -163,16 +164,16 @@ impl Level {
let chunk_saver: Arc<dyn FileIO<Data = SyncChunk>> = match &level_config.chunk { let chunk_saver: Arc<dyn FileIO<Data = SyncChunk>> = match &level_config.chunk {
ChunkConfig::Linear(config) => Arc::new( ChunkConfig::Linear(config) => Arc::new(
ChunkFileManager::<LinearFile<ChunkData>>::new(config.clone()), ChunkFileManager::<LinearV2File<ChunkData>>::new(config.clone()),
), ),
ChunkConfig::Anvil(config) => Arc::new( ChunkConfig::Anvil(config) => Arc::new(
ChunkFileManager::<AnvilChunkFile<ChunkData>>::new(config.clone()), ChunkFileManager::<AnvilChunkFile<ChunkData>>::new(config.clone()),
), ),
}; };
let entity_saver: Arc<dyn FileIO<Data = SyncEntityChunk>> = match &level_config.chunk { let entity_saver: Arc<dyn FileIO<Data = SyncEntityChunk>> = match &level_config.chunk {
ChunkConfig::Linear(config) => Arc::new( ChunkConfig::Linear(config) => Arc::new(ChunkFileManager::<
ChunkFileManager::<LinearFile<ChunkEntityData>>::new(config.clone()), LinearV2File<ChunkEntityData>,
), >::new(config.clone())),
ChunkConfig::Anvil(config) => Arc::new(ChunkFileManager::< ChunkConfig::Anvil(config) => Arc::new(ChunkFileManager::<
AnvilChunkFile<ChunkEntityData>, AnvilChunkFile<ChunkEntityData>,
>::new(config.clone())), >::new(config.clone())),