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();
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& block)
const;
54 MCAPI
explicit MultifaceSpreader(::std::vector<::MultifaceSpreader::SpreadType>
const& spreadTypes);
56 MCAPI ::std::optional<::std::pair<::BlockPos const, uchar const>> getSpreadFromFaceTowardDirection(
65 MCAPI
int spreadFromAllFacesTowardAllDirections(
72 MCAPI
int spreadFromFaceTowardAllDirections(
80 MCAPI
bool spreadFromFaceTowardDirection(
89 MCAPI
bool spreadFromFaceTowardRandomDirection(
97 MCAPI
bool spreadFromRandomFaceTowardRandomDirection(
108 MCAPI static ::std::vector<::MultifaceSpreader::SpreadType>
const& ALL_SPREAD_TYPES();
110 MCAPI static ::std::vector<::MultifaceSpreader::SpreadType>
const& SAME_POSITION_ONLY();
116 MCAPI
void* $ctor(::std::vector<::MultifaceSpreader::SpreadType>
const& spreadTypes);
128 MCAPI
bool $_canSpreadFrom(
::Block const& block, uchar
const facing)
const;
130 MCAPI
bool $_canSpreadInto(
134 uchar
const placementDirection
137 MCFOLD
bool $_isOtherBlockValidAsSource(
::Block const& block)
const;
145 MCAPI
static void** $vftable();