mod container;
mod crafting;
mod identity;
mod inventory;
mod item;
mod recipe_book;
mod spatial;
pub use container::VirtualContainerSlots;
pub use crafting::CraftingGrid;
pub use identity::{EntityKind, Health, PlayerRef, Sneaking};
pub use inventory::Inventory;
pub use item::{DroppedItem, Lifetime, OpenContainer, PickupDelay};
pub use recipe_book::KnownRecipes;
pub use spatial::{BlockPosition, BoundingBox, ChunkPosition, Position, Rotation, Velocity};
pub trait Component: Send + Sync + 'static {}
pub type EntityId = u32;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub enum Phase {
Input,
Validate,
Simulate,
Process,
Output,
Post,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn phase_ordering() {
assert!(Phase::Input < Phase::Validate);
assert!(Phase::Validate < Phase::Simulate);
assert!(Phase::Simulate < Phase::Process);
assert!(Phase::Process < Phase::Output);
assert!(Phase::Output < Phase::Post);
}
}