use num_enum::{IntoPrimitive, TryFromPrimitive};
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub enum GameVersion {
Default,
Palworld,
}
#[derive(Debug, Copy, Clone, PartialEq, Eq, TryFromPrimitive, IntoPrimitive)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[repr(i8)]
pub enum PalworldCompressionType {
None = 0x30,
Zlib = 0x31,
ZlibTwice = 0x32,
}
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum DeserializedGameVersion {
Default,
Palworld(PalworldCompressionType),
}
impl Default for DeserializedGameVersion {
#[inline]
fn default() -> Self {
DeserializedGameVersion::Default
}
}
impl DeserializedGameVersion {
#[cfg(feature = "serde")]
#[inline]
pub(crate) fn is_default(&self) -> bool {
matches!(self, DeserializedGameVersion::Default)
}
}
pub(crate) const PLZ_MAGIC: &[u8; 3] = b"PlZ";