3#include "mc/_HeaderOutputPredefine.h"
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& block)
const;
54 MCNAPI
explicit MultifaceSpreader(::std::vector<::MultifaceSpreader::SpreadType>
const& spreadTypes);
56 MCAPI ::std::optional<::std::pair<::BlockPos const, uchar const>> getSpreadFromFaceTowardDirection(
109 MCNAPI
void*
$ctor(::std::vector<::MultifaceSpreader::SpreadType>
const& spreadTypes);
121 uchar
const placementDirection
Definition BlockSource.h:72
Definition IBlockWorldGenAPI.h:25
MCAPI bool $_canSpreadInto(::IBlockWorldGenAPI &target, ::Block const &self, ::BlockPos const &pos, uchar const placementDirection) const
MCAPI bool $_isOtherBlockValidAsSource(::Block const &block) const
MCAPI bool spreadFromFaceTowardDirection(::BlockSource ®ion, ::Block const &self, ::Block const &block, ::BlockPos const &pos, uchar startingFace, uchar spreadDirection) const
MCAPI bool spreadFromFaceTowardRandomDirection(::IBlockWorldGenAPI &target, ::Block const &self, ::Block const &block, ::BlockPos const &pos, uchar startingFace) const
static MCAPI ::std::vector<::MultifaceSpreader::SpreadType > const & SAME_POSITION_ONLY()
MCAPI int spreadFromFaceTowardAllDirections(::IBlockWorldGenAPI &target, ::Block const &self, ::Block const &block, ::BlockPos const &pos, uchar startingFace) const
MCAPI MultifaceSpreader(::std::vector<::MultifaceSpreader::SpreadType > const &spreadTypes)
MCAPI bool $_canSpreadFrom(::Block const &block, uchar const facing) const
MCAPI void * $ctor(::std::vector<::MultifaceSpreader::SpreadType > const &spreadTypes)
static MCAPI ::std::vector<::MultifaceSpreader::SpreadType > const & ALL_SPREAD_TYPES()
static MCAPI void ** $vftable()
MCAPI bool spreadFromRandomFaceTowardRandomDirection(::IBlockWorldGenAPI &target, ::Block const &self, ::Block const &block, ::BlockPos const &pos) const