diff options
| author | mat <github@matdoes.dev> | 2022-05-27 19:34:09 -0500 |
|---|---|---|
| committer | mat <github@matdoes.dev> | 2022-05-27 19:34:09 -0500 |
| commit | 88bc6d16602c163d122685997dc269d5d97a93a2 (patch) | |
| tree | 959c68a4d21d7b832aaa04aebbf6e7412f620367 /azalea-block/src | |
| parent | aac64d013546c8be3b992af63d70150155386c11 (diff) | |
| download | azalea-drasl-88bc6d16602c163d122685997dc269d5d97a93a2.tar.xz | |
Start making block macro
Diffstat (limited to 'azalea-block/src')
| -rw-r--r-- | azalea-block/src/blocks.rs | 188 | ||||
| -rw-r--r-- | azalea-block/src/lib.rs | 2 | ||||
| -rw-r--r-- | azalea-block/src/properties.rs | 20 |
3 files changed, 109 insertions, 101 deletions
diff --git a/azalea-block/src/blocks.rs b/azalea-block/src/blocks.rs index f6f33a89..6bc82a20 100644 --- a/azalea-block/src/blocks.rs +++ b/azalea-block/src/blocks.rs @@ -1,88 +1,118 @@ use crate::{behavior::BlockBehavior, properties}; -// make_block_states! { -// acacia_button => BlockBehavior { has_collision: false }, { -// Face, -// Facing, -// Powered -// }; -// acacia_door => BlockBehavior { has_collision: true }, { -// Facing, -// Half, -// Hinge, -// Open, -// Powered -// }; +make_block_states! { + PROPERTIES => { + Face { + Floor, + Wall, + Ceiling + }; + } + BLOCKS => { + acacia_button => BlockBehavior { has_collision: false }, { + Face, + Facing, + Powered + }; + acacia_door => BlockBehavior { has_collision: true }, { + Facing, + Half, + Hinge, + Open, + Powered + }; + } +} + +// #[derive(Debug, Clone, Copy)] +// pub enum Face { +// Floor, +// Wall, +// Ceiling, // } -// the underscore makes it more readable, so i think it's fine to allow it -#[allow(non_camel_case_types)] -pub enum BlockState { - AcaciaButton_FloorNorthTrue, - AcaciaButton_WallNorthTrue, - AcaciaButton_CeilingNorthTrue, -} +// #[derive(Debug, Clone, Copy)] +// pub enum Facing { +// North, +// South, +// West, +// East, +// } -pub trait Block { - fn behavior(&self) -> BlockBehavior; -} +// #[derive(Debug, Clone, Copy)] +// pub enum Powered { +// True, +// False, +// } -#[derive(Debug)] -pub struct AcaciaButtonBlock { - pub face: properties::Face, - pub facing: properties::Facing, - pub powered: properties::Powered, -} +// // the underscore makes it more readable, so i think it's fine to allow it +// #[allow(non_camel_case_types)] +// pub enum BlockState { +// AcaciaButton_FloorNorthTrue, +// AcaciaButton_WallNorthTrue, +// AcaciaButton_CeilingNorthTrue, +// } -impl Block for AcaciaButtonBlock { - fn behavior(&self) -> BlockBehavior { - BlockBehavior { - has_collision: false, - } - } -} +// pub trait Block { +// fn behavior(&self) -> BlockBehavior; +// } -pub struct AcaciaDoorBlock { - pub facing: properties::Facing, - // pub half: properties::Half, - // pub hinge: properties::Hinge, - // pub open: properties::Open, - pub powered: properties::Powered, -} +// #[derive(Debug)] +// pub struct AcaciaButtonBlock { +// pub face: properties::Face, +// pub facing: properties::Facing, +// pub powered: properties::Powered, +// } -impl From<BlockState> for &dyn Block { - fn from(b: BlockState) -> Self { - match b { - BlockState::AcaciaButton_FloorNorthTrue => &AcaciaButtonBlock { - face: properties::Face::Floor, - facing: properties::Facing::North, - powered: properties::Powered::True, - }, - // BlockState::AcaciaButton_WallNorthTrue => todo!(), - // BlockState::AcaciaButton_CeilingNorthTrue => todo!(), - _ => todo!(), - } - } -} -impl From<AcaciaButtonBlock> for BlockState { - fn from(b: AcaciaButtonBlock) -> Self { - match b { - AcaciaButtonBlock { - face: properties::Face::Floor, - facing: properties::Facing::North, - powered: properties::Powered::True, - } => BlockState::AcaciaButton_FloorNorthTrue, - // AcaciaButtonBlock { - // face: properties::Face::Wall, - // facing: properties::Facing::North, - // powered: properties::Powered::True, - // } => todo!(), - // AcaciaButtonBlock { - // face: properties::Face::Ceiling, - // facing: properties::Facing::North, - // powered: properties::Powered::True, - // } => todo!(), - _ => todo!(), - } - } -} +// impl Block for AcaciaButtonBlock { +// fn behavior(&self) -> BlockBehavior { +// BlockBehavior { +// has_collision: false, +// } +// } +// } + +// pub struct AcaciaDoorBlock { +// pub facing: properties::Facing, +// // pub half: properties::Half, +// // pub hinge: properties::Hinge, +// // pub open: properties::Open, +// pub powered: properties::Powered, +// } + +// impl From<BlockState> for &dyn Block { +// fn from(b: BlockState) -> Self { +// match b { +// BlockState::AcaciaButton_FloorNorthTrue => &AcaciaButtonBlock { +// face: properties::Face::Floor, +// facing: properties::Facing::North, +// powered: properties::Powered::True, +// }, +// // BlockState::AcaciaButton_WallNorthTrue => todo!(), +// // BlockState::AcaciaButton_CeilingNorthTrue => todo!(), +// _ => todo!(), +// } +// } +// } +// impl From<AcaciaButtonBlock> for BlockState { +// fn from(b: AcaciaButtonBlock) -> Self { +// match b { +// AcaciaButtonBlock { +// face: properties::Face::Floor, +// facing: properties::Facing::North, +// powered: properties::Powered::True, +// } => BlockState::AcaciaButton_FloorNorthTrue, +// // AcaciaButtonBlock { +// // face: properties::Face::Wall, +// // facing: properties::Facing::North, +// // powered: properties::Powered::True, +// // } => todo!(), +// // AcaciaButtonBlock { +// // face: properties::Face::Ceiling, +// // facing: properties::Facing::North, +// // powered: properties::Powered::True, +// // } => todo!(), +// _ => todo!(), +// } +// } +// } diff --git a/azalea-block/src/lib.rs b/azalea-block/src/lib.rs index db94d081..30f2aadc 100644 --- a/azalea-block/src/lib.rs +++ b/azalea-block/src/lib.rs @@ -1,5 +1,3 @@ pub mod behavior; pub mod blocks; pub mod properties; - -use std::fmt::Debug; diff --git a/azalea-block/src/properties.rs b/azalea-block/src/properties.rs deleted file mode 100644 index ac81fcb3..00000000 --- a/azalea-block/src/properties.rs +++ /dev/null @@ -1,20 +0,0 @@ -#[derive(Debug, Clone, Copy)] -pub enum Face { - Floor, - Wall, - Ceiling, -} - -#[derive(Debug, Clone, Copy)] -pub enum Facing { - North, - South, - West, - East, -} - -#[derive(Debug, Clone, Copy)] -pub enum Powered { - True, - False, -} |
