voxel-zone/app/src/voxels/bool_voxel.rs

24 lines
647 B
Rust

use block_mesh::Voxel;
use common::space::three_dimensional::traits::{DefaultVoxel, DefaultVoxelKinds};
#[derive(Copy, Clone)]
pub struct BoolVoxel(pub bool);
impl Voxel for BoolVoxel {
fn get_visibility(&self) -> block_mesh::VoxelVisibility {
match self.0 {
true => block_mesh::VoxelVisibility::Opaque,
false => block_mesh::VoxelVisibility::Empty,
}
}
}
impl DefaultVoxel for BoolVoxel {
fn get_default(kind: DefaultVoxelKinds) -> Self {
match kind {
DefaultVoxelKinds::None => BoolVoxel(false),
DefaultVoxelKinds::Solid => BoolVoxel(true),
}
}
}