aboutsummaryrefslogtreecommitdiff
path: root/azalea-block/src
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-05-27 19:34:09 -0500
committermat <github@matdoes.dev>2022-05-27 19:34:09 -0500
commit88bc6d16602c163d122685997dc269d5d97a93a2 (patch)
tree959c68a4d21d7b832aaa04aebbf6e7412f620367 /azalea-block/src
parentaac64d013546c8be3b992af63d70150155386c11 (diff)
downloadazalea-drasl-88bc6d16602c163d122685997dc269d5d97a93a2.tar.xz
Start making block macro
Diffstat (limited to 'azalea-block/src')
-rw-r--r--azalea-block/src/blocks.rs188
-rw-r--r--azalea-block/src/lib.rs2
-rw-r--r--azalea-block/src/properties.rs20
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,
-}