3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/utility/optional_ref.h"
7#include "mc/world/level/BlockPos.h"
8#include "mc/world/level/block/BlockRenderLayer.h"
9#include "mc/world/level/block/BlockType.h"
26class BaseRailBlock :
public ::BlockType {
38 ::ll::TypedStorage<8, 8, ::BlockSource&> mRegion;
39 ::ll::TypedStorage<4, 12, ::BlockPos> mPos;
40 ::ll::TypedStorage<1, 1, bool> mUsesDataBit;
41 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mConnections;
46 Rail& operator=(Rail
const&);
59 MCNAPI
void place(
int signalStrength,
bool first);
76 ::ll::TypedStorage<1, 1, bool const> mUsesDataBit;
86 virtual ::AABB
const& getVisualShape(
::Block const& block,
::AABB& bufferAABB)
const ;
88 virtual ::AABB getCollisionShape(
102 virtual bool requiresLegacyRedstoneSetup() const ;
107 virtual
bool isRailBlock() const ;
109 virtual
bool canSpawnOn(::
Actor*) const ;
111 virtual
bool isLavaBlocking() const ;
115 virtual
void tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
119 virtual
void _onRedstoneUpdate(::BlockEvents::BlockRedstoneUpdateEvent& blockEvent) const;
125 MCNAPI BaseRailBlock(::
std::
string const& nameId,
int id,
bool usesDataBit);
129 MCNAPI
void _onStateChange(::BlockEvents::BlockStateChangeEvent const& eventData) const;
131 MCNAPI
void onPlace(::BlockEvents::BlockPlaceEvent& eventData) const;
153 MCNAPI
void*
$ctor(::
std::
string const& nameId,
int id,
bool usesDataBit);
186 MCNAPI
void $tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
Definition BaseRailBlock.h:34
MCAPI void removeSoftConnections()
MCAPI bool hasNeighborRail(::BlockPos const &pos)
MCAPI Rail(::BlockSource ®ion, ::BlockPos const &pos)
MCAPI void updateConnections(int direction)
MCAPI ::std::shared_ptr<::BaseRailBlock::Rail > getRail(::BlockPos const &p)
MCAPI void place(int signalStrength, bool first)
MCAPI void * $ctor(::BlockSource ®ion, ::BlockPos const &pos)
MCAPI void _onRedstoneUpdateBase(::BlockEvents::BlockRedstoneUpdateEvent &blockEvent) const
static MCAPI bool isCorner(::BlockSource const ®ion, ::BlockPos const &pos)
MCAPI void $_onRedstoneUpdate(::BlockEvents::BlockRedstoneUpdateEvent &blockEvent) const
MCAPI bool $canSpawnOn(::Actor *) const
static MCAPI bool isRail(::Block const &block)
MCAPI void * $ctor(::std::string const &nameId, int id, bool usesDataBit)
MCAPI bool $isLavaBlocking() const
MCAPI bool $requiresLegacyRedstoneSetup() const
MCAPI void $setupRedstoneComponent(::BlockSource ®ion, ::BlockPos const &pos) const
MCAPI void onPlace(::BlockEvents::BlockPlaceEvent &eventData) const
MCAPI void $neighborChanged(::BlockSource ®ion, ::BlockPos const &pos, ::BlockPos const &neighborPos) const
MCAPI bool $isRailBlock() const
static MCAPI void _createCircuitComponent(::BlockSource ®ion, ::BlockPos const &pos)
static MCAPI void ** $vftable()
MCAPI::BlockRenderLayer $getRenderLayer(::Block const &, ::BlockSource ®ion, ::BlockPos const &pos) const
static MCAPI bool isFacingWestEast(::BlockSource const ®ion, ::BlockPos const &pos)
MCAPI void _onStateChange(::BlockEvents::BlockStateChangeEvent const &eventData) const
MCAPI bool $mayPlace(::BlockSource ®ion, ::BlockPos const &pos) const
MCAPI bool $canSurvive(::BlockSource ®ion, ::BlockPos const &pos) const
MCAPI void $onGraphicsModeChanged(::BlockGraphicsModeChangeContext const &context)
MCAPI void $tick(::BlockEvents::BlockQueuedTickEvent &eventData) const
MCAPI::AABB $getCollisionShape(::Block const &, ::IConstBlockSource const &, ::BlockPos const &, ::optional_ref<::GetCollisionShapeInterface const >) const
static MCAPI bool isSlope(::Block const &block)
MCAPI::AABB const & $getVisualShape(::Block const &block, ::AABB &bufferAABB) const
Definition BlockPlaceEvent.h:16
Definition BlockQueuedTickEvent.h:16
Definition BlockRedstoneUpdateEvent.h:15
Definition BlockStateChangeEvent.h:17
Definition BlockSource.h:72
Definition GetCollisionShapeInterface.h:13
Definition IConstBlockSource.h:25
Definition optional_ref.h:10
Definition BlockGraphicsModeChangeContext.h:5