aboutsummaryrefslogtreecommitdiff
path: root/azalea-block
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2025-06-04 10:26:32 +0330
committermat <git@matdoes.dev>2025-06-04 10:26:32 +0330
commit93a96786a8a46068f5d9d7d3e503645d7fc4b830 (patch)
tree8ba5daea9a93e31c1367c6672bf14eb5e0408296 /azalea-block
parent123c15a2936639244c3485c5db789c845f7c2e43 (diff)
downloadazalea-drasl-93a96786a8a46068f5d9d7d3e503645d7fc4b830.tar.xz
handle set_held_slot packet and add more Into BlockStates impls
Diffstat (limited to 'azalea-block')
-rw-r--r--azalea-block/src/range.rs25
1 files changed, 21 insertions, 4 deletions
diff --git a/azalea-block/src/range.rs b/azalea-block/src/range.rs
index 7960b5c4..76b18079 100644
--- a/azalea-block/src/range.rs
+++ b/azalea-block/src/range.rs
@@ -3,6 +3,8 @@ use std::{
ops::{Add, RangeInclusive},
};
+use azalea_registry::Block;
+
use crate::{BlockState, block_state::BlockStateIntegerRepr};
#[derive(Debug, Clone)]
@@ -45,14 +47,14 @@ impl Add for BlockStates {
}
}
-impl From<HashSet<azalea_registry::Block>> for BlockStates {
- fn from(set: HashSet<azalea_registry::Block>) -> Self {
+impl From<HashSet<Block>> for BlockStates {
+ fn from(set: HashSet<Block>) -> Self {
Self::from(&set)
}
}
-impl From<&HashSet<azalea_registry::Block>> for BlockStates {
- fn from(set: &HashSet<azalea_registry::Block>) -> Self {
+impl From<&HashSet<Block>> for BlockStates {
+ fn from(set: &HashSet<Block>) -> Self {
let mut block_states = HashSet::with_capacity(set.len());
for &block in set {
block_states.extend(BlockStates::from(block));
@@ -60,3 +62,18 @@ impl From<&HashSet<azalea_registry::Block>> for BlockStates {
Self { set: block_states }
}
}
+
+impl<const N: usize> From<[Block; N]> for BlockStates {
+ fn from(arr: [Block; N]) -> Self {
+ Self::from(&arr[..])
+ }
+}
+impl From<&[Block]> for BlockStates {
+ fn from(arr: &[Block]) -> Self {
+ let mut block_states = HashSet::with_capacity(arr.len());
+ for &block in arr {
+ block_states.extend(BlockStates::from(block));
+ }
+ Self { set: block_states }
+ }
+}