2023-02-07 22:09:14 +01:00
|
|
|
mod block_types;
|
2023-02-12 19:02:00 +01:00
|
|
|
mod legacy_block_types;
|
2023-02-07 22:09:14 +01:00
|
|
|
|
|
|
|
use std::collections::HashMap;
|
|
|
|
|
|
|
|
use enumflags2::{bitflags, BitFlags};
|
|
|
|
|
2023-02-12 19:02:00 +01:00
|
|
|
pub use legacy_block_types::LEGACY_BLOCK_TYPES;
|
|
|
|
|
2023-02-07 22:09:14 +01:00
|
|
|
#[bitflags]
|
|
|
|
#[repr(u8)]
|
|
|
|
#[derive(Debug, Clone, Copy, PartialEq)]
|
2023-02-13 00:11:36 +01:00
|
|
|
pub enum BlockFlag {
|
2023-02-07 22:09:14 +01:00
|
|
|
Opaque,
|
|
|
|
Grass,
|
|
|
|
Foliage,
|
|
|
|
Birch,
|
|
|
|
Spruce,
|
|
|
|
Water,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug, Clone, Copy)]
|
|
|
|
pub struct BlockColor(pub u8, pub u8, pub u8);
|
|
|
|
|
|
|
|
#[derive(Debug, Clone, Copy)]
|
|
|
|
pub struct BlockType {
|
2023-02-13 00:11:36 +01:00
|
|
|
pub flags: BitFlags<BlockFlag>,
|
2023-02-07 22:09:14 +01:00
|
|
|
pub color: BlockColor,
|
|
|
|
}
|
|
|
|
|
2023-02-12 23:36:58 +01:00
|
|
|
pub fn block_types() -> HashMap<String, BlockType> {
|
2023-02-07 22:09:14 +01:00
|
|
|
block_types::BLOCK_TYPES
|
|
|
|
.iter()
|
|
|
|
.map(|(k, v)| (String::from(*k), *v))
|
|
|
|
.collect()
|
|
|
|
}
|