aboutsummaryrefslogtreecommitdiff
path: root/azalea-core/src/heightmap_kind.rs
diff options
context:
space:
mode:
authormat <27899617+mat-1@users.noreply.github.com>2026-01-12 02:09:41 -0600
committerGitHub <noreply@github.com>2026-01-12 02:09:41 -0600
commit1accbac964168af5fa0d87cb170389f0a9d01363 (patch)
tree1509b26c19beaa23a492289f6bf00d3958be44d5 /azalea-core/src/heightmap_kind.rs
parent58339b9d229592dee40e15b8648fe4075cc391f4 (diff)
downloadazalea-drasl-1accbac964168af5fa0d87cb170389f0a9d01363.tar.xz
Make Bevy dependencies optional in azalea-protocol (#303)
* Make Bevy dependencies optional in azalea-protocol * derive serde traits on Direction again * update docs for types that may not have Component
Diffstat (limited to 'azalea-core/src/heightmap_kind.rs')
-rw-r--r--azalea-core/src/heightmap_kind.rs50
1 files changed, 50 insertions, 0 deletions
diff --git a/azalea-core/src/heightmap_kind.rs b/azalea-core/src/heightmap_kind.rs
new file mode 100644
index 00000000..07100a77
--- /dev/null
+++ b/azalea-core/src/heightmap_kind.rs
@@ -0,0 +1,50 @@
+// (wg stands for worldgen)
+
+use std::{
+ fmt::{self, Display},
+ str::FromStr,
+};
+
+use azalea_buf::AzBuf;
+
+/// A type of world heightmap.
+///
+/// See `azalea_world::heightmap` for more info.
+#[derive(AzBuf, Clone, Copy, Debug, Eq, Hash, PartialEq)]
+pub enum HeightmapKind {
+ WorldSurfaceWg,
+ WorldSurface,
+ OceanFloorWg,
+ OceanFloor,
+ MotionBlocking,
+ MotionBlockingNoLeaves,
+}
+
+impl FromStr for HeightmapKind {
+ type Err = ();
+
+ fn from_str(s: &str) -> Result<Self, Self::Err> {
+ match s {
+ "WORLD_SURFACE_WG" => Ok(HeightmapKind::WorldSurfaceWg),
+ "WORLD_SURFACE" => Ok(HeightmapKind::WorldSurface),
+ "OCEAN_FLOOR_WG" => Ok(HeightmapKind::OceanFloorWg),
+ "OCEAN_FLOOR" => Ok(HeightmapKind::OceanFloor),
+ "MOTION_BLOCKING" => Ok(HeightmapKind::MotionBlocking),
+ "MOTION_BLOCKING_NO_LEAVES" => Ok(HeightmapKind::MotionBlockingNoLeaves),
+ _ => Err(()),
+ }
+ }
+}
+
+impl Display for HeightmapKind {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ match self {
+ HeightmapKind::WorldSurfaceWg => write!(f, "WORLD_SURFACE_WG"),
+ HeightmapKind::WorldSurface => write!(f, "WORLD_SURFACE"),
+ HeightmapKind::OceanFloorWg => write!(f, "OCEAN_FLOOR_WG"),
+ HeightmapKind::OceanFloor => write!(f, "OCEAN_FLOOR"),
+ HeightmapKind::MotionBlocking => write!(f, "MOTION_BLOCKING"),
+ HeightmapKind::MotionBlockingNoLeaves => write!(f, "MOTION_BLOCKING_NO_LEAVES"),
+ }
+ }
+}