162 $flags = $this->readBoundedInt(BlockStateNames::MULTI_FACE_DIRECTION_BITS, 0, 63);
164 BlockLegacyMetadata::MULTI_FACE_DIRECTION_FLAG_DOWN => Facing::DOWN,
165 BlockLegacyMetadata::MULTI_FACE_DIRECTION_FLAG_UP => Facing::UP,
166 BlockLegacyMetadata::MULTI_FACE_DIRECTION_FLAG_NORTH => Facing::NORTH,
167 BlockLegacyMetadata::MULTI_FACE_DIRECTION_FLAG_SOUTH => Facing::SOUTH,
168 BlockLegacyMetadata::MULTI_FACE_DIRECTION_FLAG_WEST => Facing::WEST,
169 BlockLegacyMetadata::MULTI_FACE_DIRECTION_FLAG_EAST => Facing::EAST
170 ] as $flag => $facing){
171 if(($flags & $flag) !== 0){
172 $result[$facing] = $facing;
275 return match($rawValue = $this->readString(
BlockStateNames::MC_VERTICAL_HALF)){
276 StringValues::MC_VERTICAL_HALF_BOTTOM => SlabType::BOTTOM,
277 StringValues::MC_VERTICAL_HALF_TOP => SlabType::TOP,
278 default =>
throw $this->badValueException(BlockStateNames::MC_VERTICAL_HALF, $rawValue,
"Invalid slab position"),
303 return match($type = $this->readString($name)){
307 StringValues::WALL_CONNECTION_TYPE_EAST_NONE =>
null,
308 StringValues::WALL_CONNECTION_TYPE_EAST_SHORT => WallConnectionType::SHORT,
309 StringValues::WALL_CONNECTION_TYPE_EAST_TALL => WallConnectionType::TALL,
310 default =>
throw $this->badValueException($name, $type),