azalea_core/
heightmap_kind.rs1use std::{
4 fmt::{self, Display},
5 str::FromStr,
6};
7
8use azalea_buf::AzBuf;
9
10#[derive(AzBuf, Clone, Copy, Debug, Eq, Hash, PartialEq)]
14pub enum HeightmapKind {
15 WorldSurfaceWg,
16 WorldSurface,
17 OceanFloorWg,
18 OceanFloor,
19 MotionBlocking,
20 MotionBlockingNoLeaves,
21}
22
23impl FromStr for HeightmapKind {
24 type Err = ();
25
26 fn from_str(s: &str) -> Result<Self, Self::Err> {
27 match s {
28 "WORLD_SURFACE_WG" => Ok(HeightmapKind::WorldSurfaceWg),
29 "WORLD_SURFACE" => Ok(HeightmapKind::WorldSurface),
30 "OCEAN_FLOOR_WG" => Ok(HeightmapKind::OceanFloorWg),
31 "OCEAN_FLOOR" => Ok(HeightmapKind::OceanFloor),
32 "MOTION_BLOCKING" => Ok(HeightmapKind::MotionBlocking),
33 "MOTION_BLOCKING_NO_LEAVES" => Ok(HeightmapKind::MotionBlockingNoLeaves),
34 _ => Err(()),
35 }
36 }
37}
38
39impl Display for HeightmapKind {
40 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
41 match self {
42 HeightmapKind::WorldSurfaceWg => write!(f, "WORLD_SURFACE_WG"),
43 HeightmapKind::WorldSurface => write!(f, "WORLD_SURFACE"),
44 HeightmapKind::OceanFloorWg => write!(f, "OCEAN_FLOOR_WG"),
45 HeightmapKind::OceanFloor => write!(f, "OCEAN_FLOOR"),
46 HeightmapKind::MotionBlocking => write!(f, "MOTION_BLOCKING"),
47 HeightmapKind::MotionBlockingNoLeaves => write!(f, "MOTION_BLOCKING_NO_LEAVES"),
48 }
49 }
50}