13class MultifaceSpreader {
16 enum class SpreadType : uchar {
22 using SpreadTypes = ::std::vector<::MultifaceSpreader::SpreadType>;
27 ::ll::TypedStorage<8, 24, ::std::vector<::MultifaceSpreader::SpreadType>> mSpreadTypes;
37 virtual ~MultifaceSpreader() =
default;
39 virtual bool _canSpreadFrom(
::Block const& block, uchar
const facing)
const;
41 virtual bool _canSpreadInto(
45 uchar
const placementDirection
48 virtual bool _isOtherBlockValidAsSource(
::Block const&)
const;
54 MCAPI
explicit MultifaceSpreader(::std::vector<::MultifaceSpreader::SpreadType>
const& spreadTypes);
56 MCAPI ::std::optional<::std::pair<::BlockPos const, uchar const>> _getSpreadWrappingAround(
64 MCAPI ::std::optional<::std::pair<::BlockPos const, uchar const>> getSpreadFromFaceTowardDirection(
73 MCAPI
int spreadFromAllFacesTowardAllDirections(
80 MCAPI
bool spreadFromFaceTowardDirection(
89 MCAPI
bool spreadFromFaceTowardRandomDirection(
101 MCAPI static ::std::vector<::MultifaceSpreader::SpreadType>
const& ALL_SPREAD_TYPES();
103 MCAPI static ::std::vector<::MultifaceSpreader::SpreadType>
const& SAME_POSITION_ONLY();
109 MCAPI
void* $ctor(::std::vector<::MultifaceSpreader::SpreadType>
const& spreadTypes);
115 MCAPI
bool $_canSpreadFrom(
::Block const& block, uchar
const facing)
const;
117 MCAPI
bool $_canSpreadInto(
121 uchar
const placementDirection
124 MCFOLD
bool $_isOtherBlockValidAsSource(
::Block const&)
const;