also add contributors to /pumpkin command Co-Authored-By: Fyor <90567841+fyordev@users.noreply.github.com> Co-Authored-By: MartV0 <34748938+martv0@users.noreply.github.com> Co-Authored-By: FabseGP <fabsegp@fabseman.space>
65 lines
1.3 KiB
Rust
65 lines
1.3 KiB
Rust
use std::str;
|
|
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
#[derive(Deserialize, Serialize, Clone)]
|
|
#[serde(tag = "type")]
|
|
pub enum ChunkConfig {
|
|
#[serde(rename = "anvil")]
|
|
Anvil(AnvilChunkConfig),
|
|
#[serde(rename = "linear")]
|
|
Linear(LinearChunkConfig),
|
|
}
|
|
|
|
impl Default for ChunkConfig {
|
|
fn default() -> Self {
|
|
Self::Anvil(AnvilChunkConfig::default())
|
|
}
|
|
}
|
|
|
|
#[derive(Deserialize, Serialize, Default, Clone)]
|
|
#[serde(default)]
|
|
pub struct AnvilChunkConfig {
|
|
pub compression: ChunkCompression,
|
|
pub write_in_place: bool,
|
|
}
|
|
|
|
#[derive(Deserialize, Serialize, Clone)]
|
|
pub struct ChunkCompression {
|
|
pub algorithm: Compression,
|
|
pub level: u32,
|
|
}
|
|
|
|
impl Default for ChunkCompression {
|
|
fn default() -> Self {
|
|
Self {
|
|
algorithm: Compression::LZ4,
|
|
level: 6,
|
|
}
|
|
}
|
|
}
|
|
|
|
#[derive(Deserialize, Serialize, Clone, Copy)]
|
|
pub enum Compression {
|
|
/// `GZip` Compression
|
|
GZip,
|
|
/// `ZLib` Compression
|
|
ZLib,
|
|
/// LZ4 Compression (since 24w04a)
|
|
LZ4,
|
|
/// Custom compression algorithm (since 24w05a)
|
|
Custom,
|
|
}
|
|
|
|
#[derive(Deserialize, Serialize, Default, Clone)]
|
|
pub struct LinearChunkConfig {
|
|
pub linear_version: LinearVersion,
|
|
}
|
|
|
|
#[derive(Deserialize, Serialize, Default, Clone)]
|
|
pub enum LinearVersion {
|
|
#[default]
|
|
V1,
|
|
// TODO: V2,
|
|
}
|