LeviLamina
Loading...
Searching...
No Matches
CommandBlockActor.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/block/CommandBlockMode.h"
7#include "mc/world/level/block/actor/BaseCommandBlock.h"
8#include "mc/world/level/block/actor/BlockActor.h"
9
10// auto generated forward declare list
11// clang-format off
13class BlockPos;
14class BlockSource;
15class CommandBlock;
16class CompoundTag;
17class DataLoadHelper;
18class ILevel;
19class Player;
20class SaveContext;
21namespace Bedrock::Safety { class RedactableString; }
22// clang-format on
23
24class CommandBlockActor : public ::BlockActor {
25public:
26 // member variables
27 // NOLINTBEGIN
28 ::ll::TypedStorage<8, 192, ::BaseCommandBlock> mBaseCB;
29 ::ll::TypedStorage<1, 1, bool> mPowered;
30 ::ll::TypedStorage<1, 1, bool> mConditionMet;
31 ::ll::TypedStorage<1, 1, bool> mRedstoneMode;
32 ::ll::TypedStorage<1, 1, bool> mLastPerformedConditionalMode;
33 ::ll::TypedStorage<1, 1, bool> mLastPerformedRedstoneMode;
34 ::ll::TypedStorage<1, 1, bool> mExecuteFirstTickOnPlace;
35 ::ll::TypedStorage<2, 2, ::CommandBlockMode> mLastPerformedCBMode;
36 // NOLINTEND
37
38public:
39 // prevent constructor by default
40 CommandBlockActor();
41
42public:
43 // virtual functions
44 // NOLINTBEGIN
45 virtual bool save(::CompoundTag& tag, ::SaveContext const&) const /*override*/;
46
47 virtual void saveBlockData(::CompoundTag& tag, ::BlockSource& region) const /*override*/;
48
49 virtual void load(::ILevel& tag, ::CompoundTag const& dataLoadHelper, ::DataLoadHelper&) /*override*/;
50
51 virtual void loadBlockData(::CompoundTag const& tag, ::BlockSource& region, ::DataLoadHelper&) /*override*/;
52
53 virtual void onCustomTagLoadDone(::BlockSource& region) /*override*/;
54
55 virtual void onChanged(::BlockSource& region) /*override*/;
56
57 virtual void onPlace(::BlockSource& region) /*override*/;
58
59 virtual ::Bedrock::Safety::RedactableString const& getCustomName() const /*override*/;
60
61 virtual void setCustomName(::Bedrock::Safety::RedactableString const& str) /*override*/;
62
63 virtual ::std::unique_ptr<::BlockActorDataPacket> _getUpdatePacket(::BlockSource& region) /*override*/;
64
65 virtual void _onUpdatePacket(::CompoundTag const& tag, ::BlockSource& region) /*override*/;
66
67 virtual bool _playerCanUpdate(::Player const& player) const /*override*/;
68 // NOLINTEND
69
70public:
71 // member functions
72 // NOLINTBEGIN
73 MCAPI CommandBlockActor(::BlockPos const& pos, ::CommandBlockMode mode);
74
75 MCFOLD ::BaseCommandBlock& getBaseCommandBlock();
76
77 MCFOLD ::std::string const& getCommand() const;
78
79 MCAPI ::CommandBlock const* getCommandBlock(::BlockSource& region) const;
80
81 MCAPI bool getConditionalMode(::BlockSource& region) const;
82
83 MCAPI int getDelayOnActivation() const;
84
85#ifdef LL_PLAT_C
86 MCAPI ::std::string getLastOutput() const;
87
88 MCAPI ::CommandBlockMode getLastPerformedCBMode() const;
89
90 MCAPI bool getLastPerformedConditionalMode() const;
91
92 MCAPI bool getLastPerformedRedstoneMode() const;
93#endif
94
95 MCAPI ::CommandBlockMode getMode(::BlockSource& region) const;
96
97 MCFOLD bool getPowered() const;
98
99 MCFOLD int getSuccessCount() const;
100
101 MCFOLD int getTickDelay() const;
102
103#ifdef LL_PLAT_C
104 MCAPI bool getTrackOutput() const;
105#endif
106
107 MCAPI bool isAutomatic() const;
108
109#ifdef LL_PLAT_C
110 MCFOLD bool isRedstoneMode() const;
111#endif
112
113 MCAPI bool markConditionMet(::BlockSource& region);
114
115 MCAPI void markForSaving(::BlockSource& region);
116
117 MCAPI void markForSaving(::BlockSource& region, int oldSuccessCount, bool oldConditionMet);
118
119 MCAPI bool performCommand(::BlockSource& region);
120
121 MCAPI void setAutomatic(::BlockSource& region, bool automatic, ::CommandBlockMode oldMode);
122
123 MCAPI void setPowered(bool powered);
124
125 MCAPI void setSuccessCount(int successCount);
126
127#ifdef LL_PLAT_C
128 MCAPI bool shouldExecuteOnFirstTick() const;
129#endif
130
131 MCAPI void updateBlock(
132 ::BlockSource& region,
133 ::std::string const& cmd,
135 ::CommandBlockMode newMode,
136 bool isConditional,
137 bool redstoneMode,
138 bool trackOutput,
139 int tickDelay,
140 bool executeFirstTick
141 );
142
143 MCFOLD bool wasConditionMet();
144 // NOLINTEND
145
146public:
147 // constructor thunks
148 // NOLINTBEGIN
149 MCAPI void* $ctor(::BlockPos const& pos, ::CommandBlockMode mode);
150 // NOLINTEND
151
152public:
153 // virtual function thunks
154 // NOLINTBEGIN
155 MCAPI bool $save(::CompoundTag& tag, ::SaveContext const&) const;
156
157 MCAPI void $saveBlockData(::CompoundTag& tag, ::BlockSource& region) const;
158
159 MCAPI void $load(::ILevel& tag, ::CompoundTag const& dataLoadHelper, ::DataLoadHelper&);
160
161 MCAPI void $loadBlockData(::CompoundTag const& tag, ::BlockSource& region, ::DataLoadHelper&);
162
163 MCAPI void $onCustomTagLoadDone(::BlockSource& region);
164
165 MCFOLD void $onChanged(::BlockSource& region);
166
167 MCAPI void $onPlace(::BlockSource& region);
168
169 MCFOLD ::Bedrock::Safety::RedactableString const& $getCustomName() const;
170
171 MCAPI void $setCustomName(::Bedrock::Safety::RedactableString const& str);
172
173 MCAPI ::std::unique_ptr<::BlockActorDataPacket> $_getUpdatePacket(::BlockSource& region);
174
175 MCAPI void $_onUpdatePacket(::CompoundTag const& tag, ::BlockSource& region);
176
177 MCAPI bool $_playerCanUpdate(::Player const& player) const;
178
179
180 // NOLINTEND
181
182public:
183 // vftables
184 // NOLINTBEGIN
185 MCAPI static void** $vftable();
186 // NOLINTEND
187};
Definition RedactableString.h:10
Definition BlockActorDataPacket.h:19
Definition BlockPos.h:21
Definition BlockSource.h:73
Definition CommandBlock.h:25
Definition CompoundTag.h:23
Definition DataLoadHelper.h:20
Definition ILevel.h:219
Definition Player.h:137
Definition SaveContext.h:5