LeviLamina
Loading...
Searching...
No Matches
CommandBlock.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/block/ActorBlockBase.h"
7#include "mc/world/level/block/BlockType.h"
8#include "mc/world/level/block/CommandBlockMode.h"
9
10// auto generated forward declare list
11// clang-format off
12class Actor;
13class Block;
14class BlockActor;
15class BlockPos;
16class BlockSource;
18class ItemInstance;
19class Vec3;
20namespace BlockEvents { class BlockPlayerInteractEvent; }
21namespace BlockEvents { class BlockQueuedTickEvent; }
22namespace BlockEvents { class BlockRedstoneUpdateEvent; }
23// clang-format on
24
25class CommandBlock : public ::ActorBlock {
26public:
27 // member variables
28 // NOLINTBEGIN
29 ::ll::TypedStorage<2, 2, ::CommandBlockMode> mCBMode;
30 // NOLINTEND
31
32public:
33 // prevent constructor by default
34 CommandBlock();
35
36public:
37 // virtual functions
38 // NOLINTBEGIN
39 virtual bool isInteractiveBlock() const /*override*/;
40
41 virtual ::Block const&
42 getPlacementBlock(::Actor const& by, ::BlockPos const& pos, uchar face, ::Vec3 const& clickPos, int itemValue) const
43 /*override*/;
44
45 virtual uchar getMappedFace(uchar face, ::Block const& block) const /*override*/;
46
47 virtual void neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const
48 /*override*/;
49
50 virtual bool canInstatick() const /*override*/;
51
52 virtual ::ItemInstance asItemInstance(::Block const&, ::BlockActor const*) const /*override*/;
53
54 virtual int getVariant(::Block const& block) const /*override*/;
55
56 virtual bool hasComparatorSignal() const /*override*/;
57
58 virtual int getComparatorSignal(::BlockSource& region, ::BlockPos const& pos, ::Block const& block, uchar dir) const
59 /*override*/;
60 // NOLINTEND
61
62public:
63 // member functions
64 // NOLINTBEGIN
65 MCAPI CommandBlock(::std::string const& nameId, int id, ::CommandBlockMode mode);
66
67 MCAPI void _executeChain(::BlockSource& region, ::BlockPos const& pos) const;
68
69 MCAPI bool _executeChainBlock(
70 ::BlockSource& region,
71 ::BlockPos const& pos,
72 ::CommandBlockActor& blockActor,
73 bool fromTickQueue
74 ) const;
75
76 MCAPI void _onRedstoneUpdate(::BlockEvents::BlockRedstoneUpdateEvent& blockEvent) const;
77
78 MCAPI void execute(::BlockSource& region, ::BlockPos const& pos) const;
79
80 MCAPI ::CommandBlockMode getMode() const;
81
82 MCAPI void tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
83
84 MCAPI void
85 updateBlock(::BlockSource& region, ::BlockPos const& pos, ::CommandBlockMode newMode, bool conditional) const;
86
87 MCFOLD void use(::BlockEvents::BlockPlayerInteractEvent& eventData) const;
88 // NOLINTEND
89
90public:
91 // static variables
92 // NOLINTBEGIN
93 MCAPI static ::std::add_lvalue_reference_t<int[]> mCBModeMap();
94 // NOLINTEND
95
96public:
97 // constructor thunks
98 // NOLINTBEGIN
99 MCAPI void* $ctor(::std::string const& nameId, int id, ::CommandBlockMode mode);
100 // NOLINTEND
101
102public:
103 // virtual function thunks
104 // NOLINTBEGIN
105 MCFOLD bool $isInteractiveBlock() const;
106
107 MCFOLD ::Block const& $getPlacementBlock(
108 ::Actor const& by,
109 ::BlockPos const& pos,
110 uchar face,
111 ::Vec3 const& clickPos,
112 int itemValue
113 ) const;
114
115 MCAPI uchar $getMappedFace(uchar face, ::Block const& block) const;
116
117 MCFOLD void $neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const;
118
119 MCFOLD bool $canInstatick() const;
120
121 MCAPI ::ItemInstance $asItemInstance(::Block const&, ::BlockActor const*) const;
122
123 MCAPI int $getVariant(::Block const& block) const;
124
125 MCFOLD bool $hasComparatorSignal() const;
126
127 MCAPI int $getComparatorSignal(::BlockSource& region, ::BlockPos const& pos, ::Block const& block, uchar dir) const;
128
129
130 // NOLINTEND
131
132public:
133 // vftables
134 // NOLINTBEGIN
135 MCAPI static void** $vftable();
136 // NOLINTEND
137};
Definition Actor.h:125
Definition BlockActor.h:30
Definition BlockPlayerInteractEvent.h:20
Definition BlockQueuedTickEvent.h:18
Definition BlockRedstoneUpdateEvent.h:16
Definition BlockPos.h:21
Definition BlockSource.h:73
Definition Block.h:69
Definition CommandBlockActor.h:24
Definition ItemInstance.h:15
Definition Vec3.h:10