28class MultifaceBlock :
public ::BlockType {
32 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::MultifaceSpreader const>> mSpreader;
42 virtual ~MultifaceBlock() =
default;
48 virtual ::AABB getCollisionShape(
55 virtual ::AABB
const& getOutline(
62 virtual ::HitResult clip(
68 ::ShapeType shapeType,
72 virtual ::Block
const&
73 getPlacementBlock(
::Actor const& by,
::BlockPos const& pos, uchar face,
::Vec3 const& clickPos,
int itemValue)
const
83 virtual bool isMultifaceBlock()
const ;
85 virtual bool isLavaBlocking()
const ;
87 virtual ::Block
const& sanitizeFillBlock(
::Block const& block)
const ;
89 virtual void _addHardCodedBlockComponents(
::Experiments const&) ;
96 ::std::string
const& nameId,
99 ::std::unique_ptr<::MultifaceSpreader const> spreader
105 MCAPI
void _removeBlock(
109 bool canSpawnParticles
112 MCAPI
void removeFace(
118 bool canSpawnParticles
127 MCAPI static ::Block
const& getBlockForPlacement(
132 uchar placementDirection
135 MCAPI static ::Block
const& getBlockForPlacementOrFillMoreFaces(
140 uchar placementDirection
143 MCAPI static ::Block
const& getBlockForPlacementWorldGen(
148 uchar placementDirection
151 MCAPI_C static ::std::vector<uchar> getFacingListFromMask(uchar faceDirectionBits);
153 MCAPI
static bool hasFace(
::Block const& block, uchar faceDirection);
159 MCAPI
static int const& MULTIFACE_ALL();
161 MCAPI
static int const& MULTIFACE_DOWN();
163 MCAPI
static int const& MULTIFACE_EAST();
165 MCAPI
static int const& MULTIFACE_NORTH();
167 MCAPI
static int const& MULTIFACE_SIDES();
169 MCAPI
static int const& MULTIFACE_SOUTH();
171 MCAPI
static int const& MULTIFACE_UP();
173 MCAPI
static int const& MULTIFACE_WEST();
180 ::std::string
const& nameId,
183 ::std::unique_ptr<::MultifaceSpreader const> spreader
190 MCAPI ::AABB
const& $getVisualShapeInWorld(
197 MCFOLD ::AABB $getCollisionShape(
204 MCFOLD ::AABB
const& $getOutline(
211 MCAPI ::HitResult $clip(
217 ::ShapeType shapeType,
221 MCAPI ::Block
const& $getPlacementBlock(
235 MCFOLD
bool $isMultifaceBlock()
const;
237 MCFOLD
bool $isLavaBlocking()
const;
239 MCAPI ::Block
const& $sanitizeFillBlock(
::Block const& block)
const;
241 MCAPI
void $_addHardCodedBlockComponents(
::Experiments const&);