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/VanillaBlockActor.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 ::VanillaBlockActor {
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& saveContext) const /*override*/;
46
47 virtual void saveBlockData(::CompoundTag& tag, ::BlockSource& region) const /*override*/;
48
49 virtual void load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper) /*override*/;
50
51 virtual void
52 loadBlockData(::CompoundTag const& tag, ::BlockSource& region, ::DataLoadHelper& dataLoadHelper) /*override*/;
53
54 virtual void onCustomTagLoadDone(::BlockSource& region) /*override*/;
55
56 virtual void onChanged(::BlockSource& region) /*override*/;
57
58 virtual void onPlace(::BlockSource& region) /*override*/;
59
60 virtual ::Bedrock::Safety::RedactableString const& getCustomName() const /*override*/;
61
62 virtual void setCustomName(::Bedrock::Safety::RedactableString const& str) /*override*/;
63
64 virtual ::std::unique_ptr<::BlockActorDataPacket> _getUpdatePacket(::BlockSource& region) /*override*/;
65
66 virtual void _onUpdatePacket(::CompoundTag const& tag, ::BlockSource& region) /*override*/;
67
68 virtual bool _playerCanUpdate(::Player const& player) const /*override*/;
69 // NOLINTEND
70
71public:
72 // member functions
73 // NOLINTBEGIN
74 MCAPI CommandBlockActor(::BlockPos const& pos, ::CommandBlockMode mode);
75
76#ifdef LL_PLAT_S
77 MCAPI void _setAutomatic(::BlockSource& region, bool alwaysActive, ::CommandBlockMode currentMode);
78#endif
79
80 MCAPI ::CommandBlock const* getCommandBlock(::BlockSource& region) const;
81
82 MCAPI bool getConditionalMode(::BlockSource& region) const;
83
84#ifdef LL_PLAT_C
85 MCAPI ::std::string getLastOutput() const;
86#endif
87
88 MCAPI bool markConditionMet(::BlockSource& region);
89
90#ifdef LL_PLAT_C
91 MCAPI bool performCommand(::BlockSource& region);
92
93 MCAPI void setAutomatic(::BlockSource& region, bool automatic, ::CommandBlockMode oldMode);
94#endif
95
96 MCAPI void updateBlock(
97 ::BlockSource& region,
98 ::std::string const& cmd,
100 ::CommandBlockMode newMode,
101 bool isConditional,
102 bool redstoneMode,
103 bool trackOutput,
104 int tickDelay,
105 bool executeFirstTick
106 );
107 // NOLINTEND
108
109public:
110 // constructor thunks
111 // NOLINTBEGIN
112 MCAPI void* $ctor(::BlockPos const& pos, ::CommandBlockMode mode);
113 // NOLINTEND
114
115public:
116 // virtual function thunks
117 // NOLINTBEGIN
118 MCAPI bool $save(::CompoundTag& tag, ::SaveContext const& saveContext) const;
119
120 MCAPI void $saveBlockData(::CompoundTag& tag, ::BlockSource& region) const;
121
122 MCAPI void $load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
123
124 MCAPI void $loadBlockData(::CompoundTag const& tag, ::BlockSource& region, ::DataLoadHelper& dataLoadHelper);
125
126 MCAPI void $onCustomTagLoadDone(::BlockSource& region);
127
128 MCFOLD void $onChanged(::BlockSource& region);
129
130 MCAPI void $onPlace(::BlockSource& region);
131
132 MCAPI ::Bedrock::Safety::RedactableString const& $getCustomName() const;
133
134 MCAPI void $setCustomName(::Bedrock::Safety::RedactableString const& str);
135
136 MCAPI ::std::unique_ptr<::BlockActorDataPacket> $_getUpdatePacket(::BlockSource& region);
137
138 MCAPI void $_onUpdatePacket(::CompoundTag const& tag, ::BlockSource& region);
139
140 MCAPI bool $_playerCanUpdate(::Player const& player) const;
141
142
143 // NOLINTEND
144
145public:
146 // vftables
147 // NOLINTBEGIN
149
151
152 MCNAPI static void** $vftableForBlockActor();
153
155 // NOLINTEND
156};
Definition RedactableString.h:10
Definition BlockActorDataPacket.h:19
Definition BlockPos.h:17
Definition BlockSource.h:71
static MCAPI void ** $vftableForIVanillaMainBlockActorComponent()
static MCAPI void ** $vftableForIVanillaRenderBlockActorComponent()
static MCAPI void ** $vftableForBlockActor()
static MCAPI void ** $vftableForIVanillaTickBlockActorComponent()
Definition CommandBlock.h:25
Definition CompoundTag.h:18
Definition DataLoadHelper.h:20
Definition ILevel.h:220
Definition Player.h:129
Definition SaveContext.h:5