3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/utility/optional_ref.h"
7#include "mc/world/level/ShapeType.h"
8#include "mc/world/level/block/BlockType.h"
27class MultifaceBlock :
public ::BlockType {
31 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::MultifaceSpreader const>> mSpreader;
41 virtual ~MultifaceBlock() =
default;
47 virtual ::AABB getCollisionShape(
54 virtual ::AABB
const& getOutline(
61 virtual ::HitResult clip(
67 ::ShapeType shapeType,
71 virtual ::Block
const&
72 getPlacementBlock(
::Actor const& by,
::BlockPos const& pos, uchar face,
::Vec3 const& clickPos,
int itemValue)
const
82 virtual bool isMultifaceBlock()
const ;
84 virtual bool isLavaBlocking()
const ;
86 virtual ::Block
const& sanitizeFillBlock(
::Block const& block)
const ;
93 ::std::string
const& nameId,
96 ::std::unique_ptr<::MultifaceSpreader const> spreader
108 bool canSpawnParticles
126 uchar placementDirection
130 MCNAPI static ::std::vector<uchar> getFacingListFromMask(uchar faceDirectionBits);
141 MCAPI
static int const& MULTIFACE_DOWN();
143 MCAPI
static int const& MULTIFACE_EAST();
145 MCAPI
static int const& MULTIFACE_NORTH();
149 MCAPI
static int const& MULTIFACE_SOUTH();
151 MCAPI
static int const& MULTIFACE_UP();
153 MCAPI
static int const& MULTIFACE_WEST();
160 ::std::string
const& nameId,
163 ::std::unique_ptr<::MultifaceSpreader const> spreader
197 ::ShapeType shapeType,
Definition BlockQueuedTickEvent.h:16
Definition BlockSource.h:72
Definition GetCollisionShapeInterface.h:13
Definition HitResult.h:18
Definition IBlockWorldGenAPI.h:25
Definition IConstBlockSource.h:25
MCAPI::AABB $getCollisionShape(::Block const &, ::IConstBlockSource const &, ::BlockPos const &, ::optional_ref<::GetCollisionShapeInterface const >) const
MCAPI bool $canSurvive(::BlockSource ®ion, ::BlockPos const &pos) const
MCAPI void removeFace(::IBlockWorldGenAPI &target, ::BlockSource *region, ::Block const &block, ::BlockPos const &pos, uchar faceDirection, bool canSpawnParticles) const
MCAPI MultifaceBlock(::std::string const &nameId, int id, ::Material const &material, ::std::unique_ptr<::MultifaceSpreader const > spreader)
MCAPI void $neighborChanged(::BlockSource ®ion, ::BlockPos const &pos, ::BlockPos const &neighborPos) const
static MCAPI bool _hasAnyFace(::Block const &block)
static MCAPI int _getNumSides(::Block const &block)
MCAPI::Block const & $getPlacementBlock(::Actor const &by, ::BlockPos const &pos, uchar face, ::Vec3 const &clickPos, int itemValue) const
MCAPI::HitResult $clip(::Block const &block, ::BlockSource const ®ion, ::BlockPos const &pos, ::Vec3 const &A, ::Vec3 const &B, ::ShapeType shapeType, ::optional_ref<::GetCollisionShapeInterface const > entity) const
MCAPI void * $ctor(::std::string const &nameId, int id, ::Material const &material, ::std::unique_ptr<::MultifaceSpreader const > spreader)
MCAPI bool $isMultifaceBlock() const
static MCAPI ::Block const & getBlockForPlacementWorldGen(::Block const &oldBlock, ::Block const &placementBlock, ::IBlockWorldGenAPI ®ion, ::BlockPos const &placementPos, uchar placementDirection)
MCAPI void tick(::BlockEvents::BlockQueuedTickEvent &eventData) const
MCAPI::Block const & $sanitizeFillBlock(::Block const &block) const
MCAPI bool $isLavaBlocking() const
MCAPI::AABB const & $getVisualShapeInWorld(::Block const &block, ::IConstBlockSource const &, ::BlockPos const &, ::AABB &bufferAABB) const
MCAPI bool _canSpread(::IBlockWorldGenAPI &target, ::Block const &block, ::BlockPos const &pos, uchar startingFace) const
MCAPI::AABB const & $getOutline(::Block const &block, ::IConstBlockSource const ®ion, ::BlockPos const &pos, ::AABB &bufferValue) const
static MCAPI bool hasFace(::Block const &block, uchar faceDirection)
MCAPI bool $mayPlace(::BlockSource ®ion, ::BlockPos const &pos, uchar face) const
static MCAPI int const & MULTIFACE_SIDES()
static MCAPI int const & MULTIFACE_ALL()
static MCAPI void ** $vftable()
Definition MultifaceSpreader.h:13
Definition optional_ref.h:10