89 std::optional<T> getState(uint64
id, ushort data)
const {
90 auto it = mStates->find(
id);
92 if (it == mStates->end()) {
94 for (
const auto& collection : *mAlteredStateCollections) {
95 if (collection && collection->mBlockState->get().mID ==
id) {
96 auto result = collection->getState(*
this, data);
107 return it->second.get<T>(data);
110 template <
typename T>
111 std::optional<T> getState(
BlockState const& stateType, ushort data)
const {
112 return getState<T>(stateType.mID, data);
115 template <
typename T>
116 requires(std::is_integral_v<T> || std::is_enum_v<T>)
118 auto it = mStates->find(
id);
120 if (it != mStates->end()) {
121 auto& stateInstance = it->second;
123 if (
static_cast<uchar
>(val) < stateInstance.mVariationCount) {
124 ushort maskedData = (data & ~stateInstance.mMask)
125 | (
static_cast<ushort
>(val) << (stateInstance.mEndBit - stateInstance.mNumBits + 1));
127 if (maskedData < mBlockPermutations->size()) {
128 return *mBlockPermutations->at(maskedData);
134 for (
auto& collection : *mAlteredStateCollections) {
135 if (collection && collection->mBlockState->get().mID ==
id) {
136 auto result = collection->setState(*
this, data, val);
143 return mReturnDefaultBlockOnUnidentifiedBlockState ? mDefaultState :
nullptr;
146 template <
typename T>
148 return trySetState(stateType.mID, val, data);
166 ::ll::TypedStorage<8, 48, ::HashedString> mRawName;
167 ::ll::TypedStorage<8, 32, ::std::string> mNamespaceName;
168 ::ll::TypedStorage<8, 48, ::HashedString> mFullName;
169 ::ll::TypedStorage<8, 48, ::HashedString> mPreFlatteningName;
197 ::ll::TypedStorage<1, 1, bool> mNorth;
198 ::ll::TypedStorage<1, 1, bool> mEast;
199 ::ll::TypedStorage<1, 1, bool> mSouth;
200 ::ll::TypedStorage<1, 1, bool> mWest;
208 ::ll::TypedStorage<8, 8, ::std::reference_wrapper<::BlockState const>> mBlockState;
215 virtual ::std::optional<int> getState(
::BlockLegacy const&,
int)
const = 0;
218 virtual ::Block
const* setState(
::BlockLegacy const&,
int,
int)
const = 0;
249 ::ll::TypedStorage<4, 4, int> mData;
250 ::ll::TypedStorage<8, 8, ::std::reference_wrapper<::BlockLegacy>> mBlockLegacy;
257 ::ll::TypedStorage<8, 24, ::std::vector<::BlockLegacy::RemovedStateCollection::SplitBlock>> mSplitBlocks;
264 virtual ::std::optional<int> getState(
::BlockLegacy const& blockLegacy,
int)
const ;
267 virtual ::Block
const* setState(
::BlockLegacy const& blockLegacy,
int blockData,
int stateData)
const
279 ::std::vector<::BlockLegacy::RemovedStateCollection::SplitBlock>&& splitBlocks,
301 using GetterType = ::std::function<::std::optional<int>(
::BlockLegacy const&,
int)>;
308 ::ll::TypedStorage<8, 64, ::std::function<::std::optional<int>(
::BlockLegacy const&,
int)>> mGetter;
309 ::ll::TypedStorage<8, 64, ::std::function<
::Block const*(
::BlockLegacy const&, int, int)>> mSetter;
320 virtual ::std::optional<int> getState(
::BlockLegacy const& blockLegacy,
int blockData)
const ;
323 virtual ::Block
const* setState(
::BlockLegacy const& blockLegacy,
int blockData,
int stateData)
const
335 ::std::function<::std::optional<int>(
::BlockLegacy const&,
int)> getter,
346 ::std::function<::std::optional<int>(
::BlockLegacy const&,
int)> getter,
356 ::std::function<::std::optional<int>(
::BlockLegacy const&,
int)> getter,
377 LLNDAPI std::string
const& getTypeName()
const;
385 ::ll::TypedStorage<8, 32, ::std::string> mDescriptionId;
386 ::ll::TypedStorage<8, 104, ::BlockComponentStorage> mComponents;
387 ::ll::TypedStorage<8, 176, ::BlockLegacy::NameInfo> mNameInfo;
388 ::ll::TypedStorage<8, 8, ::BlockProperty> mProperties;
389 ::ll::TypedStorage<1, 1, bool> mFancy;
390 ::ll::TypedStorage<1, 1, ::BlockRenderLayer> mRenderLayer;
391 ::ll::TypedStorage<1, 1, bool> mRenderLayerCanRenderAsOpaque;
392 ::ll::TypedStorage<4, 4, ::BlockActorType> mBlockEntityType;
393 ::ll::TypedStorage<4, 4, float> mThickness;
394 ::ll::TypedStorage<1, 1, bool> mCanSlide;
395 ::ll::TypedStorage<1, 1, bool> mCanReactToNeighborsDuringInstatick;
396 ::ll::TypedStorage<1, 1, bool> mIsInteraction;
397 ::ll::TypedStorage<4, 4, float> mGravity;
398 ::ll::TypedStorage<8, 8, ::Material const&> mMaterial;
399 ::ll::TypedStorage<1, 1, bool> mFalling;
400 ::ll::TypedStorage<4, 4, float> mParticleQuantityScalar;
401 ::ll::TypedStorage<4, 4, ::CreativeItemCategory> mCreativeCategory;
402 ::ll::TypedStorage<8, 32, ::std::string> mCreativeGroup;
403 ::ll::TypedStorage<1, 1, bool> mIsHiddenInCommands;
404 ::ll::TypedStorage<1, 1, bool> mAllowsRunes;
405 ::ll::TypedStorage<1, 1, bool> mCanBeBrokenFromFalling;
406 ::ll::TypedStorage<1, 1, bool> mCanBeOriginalSurface;
407 ::ll::TypedStorage<1, 1, bool> mSolid;
408 ::ll::TypedStorage<1, 1, bool> mPushesOutItems;
409 ::ll::TypedStorage<1, 1, bool> mIgnoreBlockForInsideCubeRenderer;
410 ::ll::TypedStorage<1, 1, bool> mIsTrapdoor;
411 ::ll::TypedStorage<1, 1, bool> mIsDoor;
412 ::ll::TypedStorage<1, 1, bool> mIsOpaqueFullBlock;
413 ::ll::TypedStorage<4, 4, float> mTranslucency;
414 ::ll::TypedStorage<1, 1, bool> mShouldRandomTickExtraLayer;
415 ::ll::TypedStorage<1, 1, bool> mIsMobPiece;
416 ::ll::TypedStorage<1, 1, bool> mCanBeExtraBlock;
417 ::ll::TypedStorage<1, 1, bool> mCanPropagateBrightness;
418 ::ll::TypedStorage<1, 1, ::Brightness> mLightBlock;
419 ::ll::TypedStorage<1, 1, ::Brightness> mLightEmission;
420 ::ll::TypedStorage<4, 4, ::FlameOdds> mFlameOdds;
421 ::ll::TypedStorage<4, 4, ::BurnOdds> mBurnOdds;
422 ::ll::TypedStorage<1, 1, ::LavaFlammable> mLavaFlammable;
423 ::ll::TypedStorage<4, 16, ::mce::Color> mMapColor;
424 ::ll::TypedStorage<4, 4, float> mFriction;
425 ::ll::TypedStorage<4, 4, ::NoteBlockInstrument> mNoteBlockInstrument;
426 ::ll::TypedStorage<1, 1, ::TintMethod> mTintMethod;
427 ::ll::TypedStorage<1, 1, bool> mReturnDefaultBlockOnUnidentifiedBlockState;
428 ::ll::TypedStorage<2, 2, ::NewBlockID> mID;
429 ::ll::TypedStorage<8, 32, ::BaseGameVersion> mMinRequiredBaseGameVersion;
430 ::ll::TypedStorage<1, 1, bool> mIsVanilla;
431 ::ll::TypedStorage<8, 24, ::std::vector<::HashedString>> mTags;
432 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::DefinitionEvent>> mEventHandlers;
433 ::ll::TypedStorage<1, 1, bool> mDataDrivenVanillaBlocksAndItemsEnabled;
434 ::ll::TypedStorage<4, 24, ::AABB> mVisualShape;
435 ::ll::TypedStorage<4, 4, uint> mBitsUsed;
436 ::ll::TypedStorage<4, 4, uint> mTotalBitsUsed;
437 ::ll::TypedStorage<8, 16, ::std::map<uint64, ::BlockStateInstance>> mStates;
438 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, uint64>> mStateNameMap;
439 ::ll::TypedStorage<8, 8, uint64> mCreativeEnumState;
440 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::Block>>> mBlockPermutations;
441 ::ll::TypedStorage<8, 8, ::Block const*> mDefaultState;
442 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::BlockTrait::IGetPlacementBlockCallback>>>
443 mGetPlacementBlockCallbacks;
444 ::ll::TypedStorage<8, 72, ::Core::Cache<ushort, ::Block const*, ::Block const*>> mLegacyDataLookupTable;
445 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BlockStateGroup>> mBlockStateGroup;
446 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IResourceDropsStrategy>> mResourceDropsStrategy;
447 ::ll::TypedStorage<4, 8, ::IntRange> mExperienceDropRange;
448 ::ll::TypedStorage<1, 1, bool> mRequiresCorrectToolForDrops;
449 ::ll::TypedStorage<8, 104, ::NetEaseBlockComponentStorage> mNetEaseComponentStorage;
450 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::BlockLegacy::AlteredStateCollection>>>
451 mAlteredStateCollections;
452 ::ll::TypedStorage<1, 1, ::Bedrock::EnumSet<::BlockClientPredictionOverrides, 7>> mClientPredictionOverrides;
453 ::ll::TypedStorage<8, 32, ::BlockEvents::BlockEventManager> mEventManager;
469 virtual ::std::shared_ptr<::BlockActor> newBlockEntity(
::BlockPos const& pos,
::Block const& block)
const;
472 virtual ::Block
const* getNextBlockPermutation(
::Block const& currentBlock)
const;
479 virtual ::HitResult clip(
490 virtual ::AABB getCollisionShape(
498 virtual bool getCollisionShapeForCamera(
506 virtual bool addCollisionShapes(
510 ::AABB const* intersectTestBox,
511 ::std::vector<::AABB>& inoutBoxes,
516 virtual void addAABBs(
520 ::AABB const* intersectTestBox,
521 ::std::vector<::AABB>& inoutBoxes
525 virtual ::AABB
const&
529 virtual ::AABB
const& getVisualShapeInWorld(
537 virtual ::AABB
const& getVisualShape(
::Block const&,
::AABB&)
const;
540 virtual ::AABB
const& getUIShape(
::Block const& block,
::AABB& bufferAABB)
const;
550 virtual ::Vec3 randomlyModifyPosition(
::BlockPos const& pos)
const;
559 virtual bool liquidCanFlowIntoFromDirection(
560 uchar flowIntoFacing,
566 virtual bool hasVariableLighting()
const;
569 virtual bool isStrippable(
::Block const& srcBlock)
const;
572 virtual ::Block
const& getStrippedBlock(
::Block const& srcBlock)
const;
575 virtual bool canProvideSupport(
::Block const&, uchar, ::BlockSupportType)
const;
578 virtual bool canProvideMultifaceSupport(
::Block const& block, uchar face)
const;
581 virtual bool canConnect(
::Block const&, uchar toOther,
::Block const& thisBlock)
const;
584 virtual bool isMovingBlock()
const;
587 virtual ::CopperBehavior
const* tryGetCopperBehavior()
const;
590 virtual bool isStemBlock()
const;
593 virtual bool isContainerBlock()
const;
596 virtual bool isCraftingBlock()
const;
599 virtual bool isLavaBlocking()
const;
602 virtual bool isFenceBlock()
const;
605 virtual bool isFenceGateBlock()
const;
608 virtual bool isThinFenceBlock()
const;
611 virtual bool isWallBlock()
const;
614 virtual bool isStairBlock()
const;
617 virtual bool isSlabBlock()
const;
620 virtual bool isDoorBlock()
const;
623 virtual bool isRailBlock()
const;
626 virtual bool isButtonBlock()
const;
629 virtual bool isLeverBlock()
const;
632 virtual bool isCandleCakeBlock()
const;
635 virtual bool isMultifaceBlock()
const;
638 virtual bool isSignalSource()
const;
641 virtual bool isConsumerComponent()
const;
644 virtual bool canBeOriginalSurface()
const;
647 virtual bool isSilentWhenJumpingOff()
const;
650 virtual bool isValidAuxValue(
int value)
const;
656 virtual ::Block
const& sanitizeFillBlock(
::Block const& block)
const;
665 virtual ::std::optional<::HashedString> getRequiredMedium()
const;
673 handlePrecipitation(
::BlockSource& region,
::BlockPos const& pos,
float downfallAmount,
float temperature)
const;
676 virtual bool canBeUsedInCommands(
::BaseGameVersion const& baseGameVersion)
const;
692 virtual void onRedstoneUpdate(
::BlockSource& region,
::BlockPos const& pos,
int strength,
bool isFirstTime)
const;
716 virtual bool isBounceBlock()
const;
719 virtual bool isPreservingMediumWhenPlaced(
::BlockLegacy const* medium)
const;
722 virtual bool isFilteredOut(::BlockRenderLayer)
const;
725 virtual bool canRenderSelectionOverlay(::BlockRenderLayer)
const;
728 virtual bool ignoreEntitiesOnPistonMove(
::Block const& block)
const;
735 virtual bool mayConsumeFertilizer(
::BlockSource& region)
const;
741 virtual bool mayPick()
const;
756 virtual bool tryToPlace(
774 virtual bool getIgnoresDestroyPermissions(
::Actor& entity,
::BlockPos const& pos)
const;
793 virtual ::Block
const& getPlacementBlock(
814 virtual bool canBeBuiltOver(
828 virtual void executeEvent(
832 ::std::string
const& eventName,
840 virtual bool shouldStopFalling(
::Actor& entity)
const;
843 virtual bool pushesUpFallingBlocks()
const;
846 virtual bool canHaveExtraData()
const;
849 virtual bool hasComparatorSignal()
const;
859 virtual bool canInstatick()
const;
868 virtual bool causesFreezeEffect()
const;
871 virtual ::std::string buildDescriptionId(
::Block const&)
const;
874 virtual bool isAuxValueRelevantForPicking()
const;
883 virtual float getShadeBrightness(
::Block const& block)
const;
889 virtual int getVariant(
::Block const& block)
const;
892 virtual bool canSpawnOn(
::Actor*)
const;
895 virtual ::Block
const& getRenderBlock()
const;
898 virtual uchar getMappedFace(uchar face,
::Block const& block)
const;
901 virtual ::Flip getFaceFlip(uchar face,
::Block const& block)
const;
910 virtual ::BlockLegacy& init();
913 virtual ::Brightness getLightEmission(
::Block const&)
const;
916 virtual ::Block
const* tryLegacyUpgrade(ushort)
const;
919 virtual bool dealsContactDamage(
::Actor const& actor,
::Block const& block,
bool isPathFinding)
const;
922 virtual ::Block
const* tryGetInfested(
::Block const&)
const;
925 virtual ::Block
const* tryGetUninfested(
::Block const&)
const;
928 virtual void _addHardCodedBlockComponents(
::Experiments const&);
940 virtual bool shouldTickOnSetBlock()
const;
943 virtual bool isInteractiveBlock()
const;
946 virtual bool allowStateMismatchOnPlacement(
::Block const& clientTarget,
::Block const& serverTarget)
const;
955 virtual int getExtraRenderLayers()
const;
958 virtual ::HashedString
const& getCullingLayer()
const;
961 virtual ::Brightness getLight(
::Block const&)
const;
964 virtual ::Brightness getEmissiveBrightness(
::Block const&)
const;
981 MCAPI
void _executeEvent(
982 ::std::string
const& name,
983 ::std::vector<::std::pair<::std::string const, ::std::string const>>& eventStack,
987 MCAPI ::BlockLegacy& addBlockProperties(::BlockProperty addedProperties);
991 MCAPI ::BlockLegacy& addState(
::BlockState const& state);
993 MCAPI ::BlockLegacy& addState(
::BlockState const& state, uint64 variationCount);
999 MCAPI
bool anyOf(::gsl::span<::std::reference_wrapper<::HashedString const>
const>
const& blockTypeIdList)
const;
1001 MCAPI ::std::string buildDescriptionName(
::Block const& block)
const;
1003 MCAPI
void createBlockPermutations(uint latestUpdaterVersion);
1005 MCAPI ::WeakPtr<::BlockLegacy> createWeakPtr()
const;
1007 MCAPI
void executeEvent(::std::string
const& name,
::RenderParams& params)
const;
1009 MCAPI
void finalizeBlockComponentStorage();
1013 MCAPI
short getBlockItemId()
const;
1015 MCAPI ::BlockState
const* getBlockState(
::HashedString const& name)
const;
1017 MCAPI ::std::vector<::CommandName> getCommandNames()
const;
1019 MCAPI
void getDebugText(::std::vector<::std::string>& outputInfo,
::BlockPos const& debugPos)
const;
1021 MCAPI ::ResourceDrops getResourceDrops(
1027 MCAPI
bool hasState(
::BlockState const& stateType)
const;
1031 MCAPI
bool isValidSpawn(
1040 MCAPI ::BlockLegacy& overrideBlockProperties(::BlockProperty newProperties);
1042 MCAPI ::BlockLegacy& setAllowsRunes(
bool interference);
1044 MCAPI ::BlockLegacy& setCanBeExtraBlock(
bool state);
1046 MCAPI ::BlockLegacy& setCanBeOriginalSurface(
bool canBeOriginalSurface);
1048 MCAPI ::BlockLegacy& setCategory(::CreativeItemCategory creativeCategory);
1050 MCAPI ::BlockLegacy& setCreativeGroup(::std::string
const& value);
1052 MCAPI ::BlockLegacy& setExperienceDrop(
::IntRange dropRange);
1054 MCAPI ::BlockLegacy& setFlammable(::FlameOdds flameOdds, ::BurnOdds burnOdds, ::LavaFlammable lavaFlammable);
1056 MCAPI ::BlockLegacy& setFriction(
float f);
1058 MCAPI ::BlockLegacy& setInstrument(::NoteBlockInstrument instrument);
1060 MCAPI ::BlockLegacy& setIsHiddenInCommands(
bool isHiddenInCommands);
1062 MCAPI ::BlockLegacy& setIsValidSpawn(
1066 MCAPI ::BlockLegacy& setLightBlock(
::Brightness brightness);
1068 MCAPI ::BlockLegacy& setLightEmission(
::Brightness brightness);
1070 MCAPI ::BlockLegacy& setMapColor(
::mce::Color const& color);
1072 MCAPI ::BlockLegacy& setMinRequiredBaseGameVersion(
::BaseGameVersion const& baseGameVersion);
1074 MCAPI ::BlockLegacy& setNameId(::std::string
const&
id);
1076 MCAPI ::BlockLegacy& setRequiresCorrectToolForDrops();
1078 MCAPI ::BlockLegacy& setTintMethod(::TintMethod tintMethod);
1080 MCAPI ::BlockLegacy& setTranslucency(
float translucency);
1082 MCAPI
bool shouldTriggerOnStandOn(
::Actor& entity,
::BlockPos const& pos)
const;
1084 MCAPI
void spawnResources(
1092 MCAPI ::Block
const* tryGetStateFromLegacyData(ushort data)
const;
1094 MCAPI
bool updateTallestCollisionShape(
1098 ::AABB const& intersectTestBox,
1101 ::Vec3 const& posToMinimizeDistanceToIfMatchingHeight,
1102 float& currentDistanceSqr
1111 MCAPI static ::BlockLegacy::NameInfo extractBlockNameInfo(::std::string
const& name);
1113 MCAPI static ::BlockLegacy::HorizontalDirectionBits
1116 MCAPI
static uchar getPlacementFacingAll(
::Actor const& entity,
::BlockPos const& pos,
float yRotOffsetDegree);
1120 MCAPI static ::ItemActor*
1127 MCAPI static ::std::string
const& BLOCK_DESCRIPTION_PREFIX();
1129 MCAPI
static float const& SIZE_OFFSET();
1135 MCAPI
void* $ctor(::std::string
const& nameId,
int id,
::Material const& material);
1147 MCAPI ::std::shared_ptr<::BlockActor> $newBlockEntity(
::BlockPos const& pos,
::Block const& block)
const;
1149 MCAPI ::Block
const* $getNextBlockPermutation(
::Block const& currentBlock)
const;
1154 MCAPI ::AABB $getCollisionShape(
1161 MCAPI
bool $getCollisionShapeForCamera(
1168 MCAPI
bool $addCollisionShapes(
1172 ::AABB const* intersectTestBox,
1173 ::std::vector<::AABB>& inoutBoxes,
1177 MCAPI
void $addAABBs(
1181 ::AABB const* intersectTestBox,
1182 ::std::vector<::AABB>& inoutBoxes
1188 MCFOLD ::AABB
const& $getVisualShapeInWorld(
1195 MCAPI ::AABB
const& $getVisualShape(
::Block const&,
::AABB&)
const;
1197 MCAPI ::AABB
const& $getUIShape(
::Block const& block,
::AABB& bufferAABB)
const;
1204 MCAPI ::Vec3 $randomlyModifyPosition(
::BlockPos const& pos)
const;
1210 MCFOLD
bool $liquidCanFlowIntoFromDirection(
1211 uchar flowIntoFacing,
1216 MCFOLD
bool $hasVariableLighting()
const;
1218 MCFOLD
bool $isStrippable(
::Block const& srcBlock)
const;
1220 MCFOLD ::Block
const& $getStrippedBlock(
::Block const& srcBlock)
const;
1222 MCAPI
bool $canProvideMultifaceSupport(
::Block const& block, uchar face)
const;
1224 MCAPI
bool $canConnect(
::Block const&, uchar toOther,
::Block const& thisBlock)
const;
1226 MCFOLD
bool $isMovingBlock()
const;
1228 MCFOLD ::CopperBehavior
const* $tryGetCopperBehavior()
const;
1230 MCFOLD
bool $isStemBlock()
const;
1232 MCFOLD
bool $isContainerBlock()
const;
1234 MCFOLD
bool $isCraftingBlock()
const;
1236 MCAPI
bool $isLavaBlocking()
const;
1238 MCFOLD
bool $isFenceBlock()
const;
1240 MCFOLD
bool $isFenceGateBlock()
const;
1242 MCFOLD
bool $isThinFenceBlock()
const;
1244 MCFOLD
bool $isWallBlock()
const;
1246 MCFOLD
bool $isStairBlock()
const;
1248 MCFOLD
bool $isSlabBlock()
const;
1250 MCFOLD
bool $isDoorBlock()
const;
1252 MCFOLD
bool $isRailBlock()
const;
1254 MCFOLD
bool $isButtonBlock()
const;
1256 MCFOLD
bool $isLeverBlock()
const;
1258 MCFOLD
bool $isCandleCakeBlock()
const;
1260 MCFOLD
bool $isMultifaceBlock()
const;
1262 MCFOLD
bool $isSignalSource()
const;
1264 MCFOLD
bool $isConsumerComponent()
const;
1266 MCAPI
bool $canBeOriginalSurface()
const;
1268 MCFOLD
bool $isSilentWhenJumpingOff()
const;
1270 MCFOLD
bool $isValidAuxValue(
int value)
const;
1274 MCFOLD ::Block
const& $sanitizeFillBlock(
::Block const& block)
const;
1280 MCAPI ::std::optional<::HashedString> $getRequiredMedium()
const;
1286 $handlePrecipitation(
::BlockSource& region,
::BlockPos const& pos,
float downfallAmount,
float temperature)
const;
1288 MCAPI
bool $canBeUsedInCommands(
::BaseGameVersion const& baseGameVersion)
const;
1299 MCFOLD
void $onRedstoneUpdate(
::BlockSource& region,
::BlockPos const& pos,
int strength,
bool isFirstTime)
const;
1315 MCFOLD
bool $isBounceBlock()
const;
1317 MCFOLD
bool $isPreservingMediumWhenPlaced(
::BlockLegacy const* medium)
const;
1319 MCFOLD
bool $isFilteredOut(::BlockRenderLayer)
const;
1321 MCFOLD
bool $canRenderSelectionOverlay(::BlockRenderLayer)
const;
1323 MCFOLD
bool $ignoreEntitiesOnPistonMove(
::Block const& block)
const;
1328 MCFOLD
bool $mayConsumeFertilizer(
::BlockSource& region)
const;
1332 MCFOLD
bool $mayPick()
const;
1342 MCFOLD
bool $tryToPlace(
1356 MCFOLD
bool $getIgnoresDestroyPermissions(
::Actor& entity,
::BlockPos const& pos)
const;
1369 MCAPI ::Block
const& $getPlacementBlock(
1385 MCAPI
bool $canBeBuiltOver(
1396 MCAPI
void $executeEvent(
1400 ::std::string
const& eventName,
1406 MCAPI
bool $shouldStopFalling(
::Actor& entity)
const;
1408 MCFOLD
bool $pushesUpFallingBlocks()
const;
1410 MCFOLD
bool $canHaveExtraData()
const;
1412 MCFOLD
bool $hasComparatorSignal()
const;
1419 MCFOLD
bool $canInstatick()
const;
1425 MCFOLD
bool $causesFreezeEffect()
const;
1427 MCFOLD ::std::string $buildDescriptionId(
::Block const&)
const;
1429 MCFOLD
bool $isAuxValueRelevantForPicking()
const;
1435 MCAPI
float $getShadeBrightness(
::Block const& block)
const;
1439 MCAPI
int $getVariant(
::Block const& block)
const;
1441 MCFOLD
bool $canSpawnOn(
::Actor*)
const;
1443 MCFOLD ::Block
const& $getRenderBlock()
const;
1445 MCFOLD uchar $getMappedFace(uchar face,
::Block const& block)
const;
1447 MCFOLD ::Flip $getFaceFlip(uchar face,
::Block const& block)
const;
1453 MCFOLD ::BlockLegacy& $init();
1455 MCAPI ::Brightness $getLightEmission(
::Block const&)
const;
1457 MCFOLD ::Block
const* $tryLegacyUpgrade(ushort)
const;
1459 MCFOLD
bool $dealsContactDamage(
::Actor const& actor,
::Block const& block,
bool isPathFinding)
const;
1461 MCFOLD ::Block
const* $tryGetInfested(
::Block const&)
const;
1463 MCFOLD ::Block
const* $tryGetUninfested(
::Block const&)
const;
1465 MCFOLD
void $_addHardCodedBlockComponents(
::Experiments const&);
1473 MCFOLD
bool $shouldTickOnSetBlock()
const;
1475 MCFOLD
bool $isInteractiveBlock()
const;
1477 MCFOLD
bool $allowStateMismatchOnPlacement(
::Block const& clientTarget,
::Block const& serverTarget)
const;
1483 MCFOLD
int $getExtraRenderLayers()
const;
1485 MCAPI ::HashedString
const& $getCullingLayer()
const;
1487 MCAPI ::Brightness $getLight(
::Block const&)
const;
1489 MCFOLD ::Brightness $getEmissiveBrightness(
::Block const&)
const;
1501 MCAPI
static void** $vftable();