3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/utility/optional_ref.h"
7#include "mc/world/item/HandSlot.h"
8#include "mc/world/level/block/ActorBlockBase.h"
9#include "mc/world/level/block/BlockSupportType.h"
10#include "mc/world/level/block/BlockType.h"
29class ShelfBlock :
public ::ActorBlock {
32 enum class NeighborDirection : uchar {
37 enum class PoweredType :
int {
45 enum class SlotState : uchar {
51 enum class SwapItemResult :
int {
52 NoItemsTransferred = 0,
53 SingleItemTransfer = 1,
69 virtual bool hasComparatorSignal()
const ;
74 virtual ::AABB getCollisionShape(
85 virtual ::AABB
const& getVisualShapeInWorld(
92 virtual bool isInteractiveBlock()
const ;
96 virtual bool canProvideSupport(
::Block const& block, uchar face, ::BlockSupportType)
const ;
98 virtual bool liquidCanFlowIntoFromDirection(
104 virtual void _addHardCodedBlockComponents(
::Experiments const&) ;
112 MCNAPI ::std::tuple<::ShelfBlockActor*, ::ShelfBlockActor*, ::ShelfBlockActor*>
119 MCNAPI ::std::tuple<::ShelfBlockActor*, ::ShelfBlockActor*, ::ShelfBlockActor*>
164 MCNAPI static ::ShelfBlock::SlotState
172 MCNAPI
void*
$ctor(::std::string
const& nameId,
int id);
211 uchar flowIntoFacing,
Definition BlockPlayerInteractEvent.h:18
Definition BlockQueuedTickEvent.h:16
Definition BlockRedstoneUpdateEvent.h:15
Definition BlockSource.h:72
Definition Experiments.h:14
Definition GetCollisionShapeInterface.h:13
Definition IConstBlockSource.h:25
Definition ShelfBlockActor.h:25
MCAPI bool $hasComparatorSignal() const
MCAPI ::std::tuple<::ShelfBlockActor *, ::ShelfBlockActor *, ::ShelfBlockActor * > _getPoweredShelfBlockActorsForDoubleShelf(::BlockSource ®ion, ::BlockPos const &shelfLeft, ::BlockPos const &shelfRight) const
static MCAPI bool _isMatchingPoweredShelfInMatchingDirection(::BlockSource const ®ion, ::BlockPos const &pos, ::BlockPos const &neighbor)
MCAPI void _setShelfData(::BlockSource ®ion, ::BlockPos const &pos, bool powered, ::ShelfBlock::PoweredType type) const
MCAPI void tick(::BlockEvents::BlockQueuedTickEvent &eventData) const
MCAPI::AABB const & $getVisualShapeInWorld(::Block const &block, ::IConstBlockSource const &, ::BlockPos const &pos, ::AABB &bufferAABB) const
static MCAPI bool _blockHasPoweredShelfType(::BlockSource const ®ion, ::BlockPos const &pos, ::ShelfBlock::PoweredType type)
MCAPI void $neighborChanged(::BlockSource ®ion, ::BlockPos const &pos, ::BlockPos const &neighborPos) const
MCAPI void * $ctor(::std::string const &nameId, int id)
MCAPI void _onRedstoneUpdate(::BlockEvents::BlockRedstoneUpdateEvent &blockEvent) const
MCAPI void $movedByPiston(::BlockSource ®ion, ::BlockPos const &pos) const
MCAPI::AABB const & $getOutline(::Block const &block, ::IConstBlockSource const &, ::BlockPos const &pos, ::AABB &bufferValue) const
MCAPI::AABB $getCollisionShape(::Block const &block, ::IConstBlockSource const &, ::BlockPos const &pos, ::optional_ref<::GetCollisionShapeInterface const >) const
static MCAPI void _validatePoweredShelfCurrentStateFromNeighbors(::BlockSource ®ion, ::BlockPos const &pos)
static MCAPI bool _swapItemsWithUnpoweredShelf(::Player &player, ::BlockPos const &pos, ::BlockSource ®ion, ::ShelfBlockActor &blockActor, ::Vec3 const &blockHit, uchar hitFace, ::HandSlot handSlot)
MCAPI void $onRemove(::BlockSource ®ion, ::BlockPos const &pos) const
MCAPI bool $isInteractiveBlock() const
MCAPI int $getComparatorSignal(::BlockSource ®ion, ::BlockPos const &pos, ::Block const &block, uchar dir) const
static MCAPI ::AABB const & _getShape(::BlockPos const &pos, ::Block const &block, ::AABB &bufferValue)
MCAPI void $_addHardCodedBlockComponents(::Experiments const &)
MCAPI bool $canProvideSupport(::Block const &block, uchar face, ::BlockSupportType) const
static MCAPI void ** $vftable()
MCAPI bool $liquidCanFlowIntoFromDirection(uchar flowIntoFacing, ::std::function<::Block const &(::BlockPos const &)> const &getBlock, ::BlockPos const &pos) const
MCAPI ShelfBlock(::std::string const &nameId, int id)
MCAPI ::std::tuple<::ShelfBlockActor *, ::ShelfBlockActor *, ::ShelfBlockActor * > _getPoweredShelfBlockActorsForTripleShelf(::BlockSource ®ion, ::BlockPos const &shelfLeft, ::BlockPos const &shelfCenter, ::BlockPos const &shelfRight) const
Definition optional_ref.h:10