Skip to main content

steel_utils/
lib.rs

1//! # Steel Utils
2//!
3//! This crate contains a collection of utilities used by the Steel Minecraft server.
4
5#![feature(const_trait_impl, const_cmp, derive_const, array_try_from_fn)]
6
7/// axis
8pub mod axis;
9/// Vanilla `BlockUtil` helpers.
10pub mod block_util;
11/// Climate system for biome selection.
12pub mod climate;
13pub mod codec;
14/// Packed RGB and ARGB colors.
15pub mod color;
16/// Direction enum for the six cardinal directions.
17pub mod direction;
18/// Deterministic concrete-type downcasting for erased Steel objects.
19pub mod downcast;
20mod front_vec;
21/// Shared geometry primitives.
22pub mod geometry;
23/// CRC32C hashing for component validation.
24pub mod hash;
25/// Java standard-library compatibility helpers.
26pub mod java;
27/// A module for custom locks.
28pub mod locks;
29/// Utilities for Steel logging.
30pub mod logger;
31/// Vanilla-compatible NBT helpers.
32pub mod nbt;
33pub mod random;
34/// helpful tools for registry
35pub mod registry;
36pub mod rotation;
37/// Data saving helpers
38pub mod saved_data;
39pub mod serial;
40pub mod text;
41pub mod threading;
42/// A module for common types.
43pub mod types;
44/// UUID extension trait for Minecraft NBT serialization.
45pub mod uuid_ext;
46/// Vanilla-compatible value provider types (`VerticalAnchor`,
47/// `HeightProvider`, `FloatProvider`).
48pub mod value_providers;
49
50#[rustfmt::skip]
51#[path = "generated/vanilla_translations/ids.rs"]
52#[expect(missing_docs, warnings)]
53pub mod translations;
54#[rustfmt::skip]
55#[path = "generated/vanilla_translations/registry.rs"]
56#[expect(missing_docs, warnings)]
57pub mod translations_registry;
58#[rustfmt::skip]
59#[path = "generated/entity_events.rs"]
60#[expect(missing_docs, warnings)]
61pub mod entity_events;
62#[rustfmt::skip]
63#[path = "generated/version.rs"]
64#[expect(missing_docs, warnings)]
65pub mod version;
66
67/// The Minecraft version this server supports.
68pub const MC_VERSION: &str = version::MINECRAFT_VERSION;
69
70pub use color::{ArgbColor, RgbColor};
71pub use direction::Direction;
72pub use downcast::{Downcast, DowncastType, DowncastTypeKey, ErasedType};
73pub use front_vec::FrontVec;
74pub use geometry::{BlockLocalAabb, BoundingBox, WorldAabb};
75pub use rotation::Rotation;
76pub use types::BlockPos;
77pub use types::BlockStateId;
78pub use types::ChunkPos;
79pub use types::GlobalPos;
80pub use types::Identifier;
81pub use types::PackedBlockPos;
82pub use types::PackedChunkLocalXZ;
83pub use types::PackedChunkPos;
84pub use types::PackedSectionBlockPos;
85pub use types::PackedSectionPos;
86pub use types::SectionPos;
87pub use uuid_ext::UuidExt;