Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
BlockMultiBlockComponent.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/shared_types/v1_26_20/block/MultiBlockPart.h"
7#include "mc/platform/brstd/bitset.h"
8#include "mc/platform/brstd/function_ref.h"
9#include "mc/world/level/block/components/IBlockComponent.h"
10#include "mc/world/level/block/traits/block_trait/MultiBlockPlacementDirectionBehavior.h"
11
12// auto generated forward declare list
13// clang-format off
14class AABB;
15class Block;
17class BlockPos;
18class BlockSource;
19class CircuitSystem;
20struct BlockPart;
21namespace BlockEvents { class BlockBreakEvent; }
22// clang-format on
23
25public:
26 // member variables
27 // NOLINTBEGIN
28 ::ll::TypedStorage<1, 1, uchar> mDirection;
29 ::ll::TypedStorage<1, 1, uchar> mPartCount;
30 ::ll::TypedStorage<1, 1, ::brstd::bitset<4, uchar>> mSnowLoggableParts;
31 ::ll::TypedStorage<1, 1, ::BlockTrait::MultiBlockPlacementDirectionBehavior> mPlacementBehavior;
32 // NOLINTEND
33
34public:
35 // member functions
36 // NOLINTBEGIN
37 MCNAPI bool
38 _forEachPart(::Block const& part, ::brstd::function_ref<bool(::BlockPart const&, uchar)> callback) const;
39
40 MCNAPI uchar _getDirectionOverride(::Block const& part) const;
41
42 MCNAPI bool canSurvive(::BlockSource const& region, ::Block const& block, ::BlockPos const& pos) const;
43
45 ::Block const& part,
46 ::BlockPos const& partPos,
47 ::brstd::function_ref<bool(::BlockPart const&)> callback
48 ) const;
49
50 MCNAPI ::BlockPos getDistanceToMultiBlockEnd(::Block const& part) const;
51
52#ifdef LL_PLAT_C
53 MCAPI ::BlockPos getDistanceToMultiBlockStart(::Block const& part) const;
54
55 MCNAPI ::AABB getOutlineShape(::Block const& part, ::BlockPos const& partWorldPos) const;
56#endif
57
58 MCNAPI bool isMultiBlockStart(::Block const& part) const;
59
60 MCNAPI bool isSnowLoggable(::Block const& part) const;
61
62 MCNAPI void onEvent(::BlockEvents::BlockBreakEvent& event) const;
63 // NOLINTEND
64
65public:
66 // static functions
67 // NOLINTBEGIN
68 MCAPI static ::SharedTypes::v1_26_20::MultiBlockPart getMultiBlockPartId(::Block const& part);
69
70 MCNAPI static ::BlockPos
71 getSnowLoggablePosition(::Block const& part, ::BlockSource const& region, ::BlockPos const& snowLayerPosition);
72
73 MCNAPI static void onPlace(
74 ::BlockSource& region,
75 ::Block const& placementBlock,
76 ::Block const& oldBlock,
77 ::BlockPos const& pos,
78 ::BlockChangeContext const& changeSourceContext
79 );
80
81 MCNAPI static void setSnowLoggablePart(::Block& part);
82
83 MCNAPI static void
84 setupRedstoneConsumerComponent(::Block const& block, ::BlockPos const& pos, ::CircuitSystem& circuitSystem);
85 // NOLINTEND
86};
Definition AABB.h:18
Definition BlockChangeContext.h:11
Definition BlockBreakEvent.h:17
Definition BlockMultiBlockComponent.h:24
MCAPI bool isMultiBlockStart(::Block const &part) const
MCAPI void onEvent(::BlockEvents::BlockBreakEvent &event) const
MCAPI bool _forEachPart(::Block const &part, ::brstd::function_ref< bool(::BlockPart const &, uchar)> callback) const
static MCAPI ::BlockPos getSnowLoggablePosition(::Block const &part, ::BlockSource const &region, ::BlockPos const &snowLayerPosition)
MCAPI bool isSnowLoggable(::Block const &part) const
MCAPI uchar _getDirectionOverride(::Block const &part) const
MCAPI bool forEachPartInWorldSpace(::Block const &part, ::BlockPos const &partPos, ::brstd::function_ref< bool(::BlockPart const &)> callback) const
static MCAPI void setSnowLoggablePart(::Block &part)
MCAPI::BlockPos getDistanceToMultiBlockEnd(::Block const &part) const
MCAPI bool canSurvive(::BlockSource const &region, ::Block const &block, ::BlockPos const &pos) const
static MCAPI void onPlace(::BlockSource &region, ::Block const &placementBlock, ::Block const &oldBlock, ::BlockPos const &pos, ::BlockChangeContext const &changeSourceContext)
static MCAPI void setupRedstoneConsumerComponent(::Block const &block, ::BlockPos const &pos, ::CircuitSystem &circuitSystem)
Definition BlockPos.h:14
Definition BlockSource.h:72
Definition Block.h:42
Definition CircuitSystem.h:15
Definition function_ref.h:60
Definition BlockPart.h:14
Definition IBlockComponent.h:5