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 CompoundTag;
16class DataLoadHelper;
17class ILevel;
18class Player;
19class SaveContext;
20namespace Bedrock::Safety { class RedactableString; }
21// clang-format on
22
23class CommandBlockActor : public ::VanillaBlockActor {
24public:
25 // member variables
26 // NOLINTBEGIN
27 ::ll::TypedStorage<8, 192, ::BaseCommandBlock> mBaseCB;
28 ::ll::TypedStorage<1, 1, bool> mPowered;
29 ::ll::TypedStorage<1, 1, bool> mConditionMet;
30 ::ll::TypedStorage<1, 1, bool> mRedstoneMode;
31 ::ll::TypedStorage<1, 1, bool> mLastPerformedConditionalMode;
32 ::ll::TypedStorage<1, 1, bool> mLastPerformedRedstoneMode;
33 ::ll::TypedStorage<1, 1, bool> mExecuteFirstTickOnPlace;
34 ::ll::TypedStorage<2, 2, ::CommandBlockMode> mLastPerformedCBMode;
35 // NOLINTEND
36
37public:
38 // prevent constructor by default
39 CommandBlockActor();
40
41public:
42 // virtual functions
43 // NOLINTBEGIN
44 virtual bool save(::CompoundTag& tag, ::SaveContext const& saveContext) const /*override*/;
45
46 virtual void saveBlockData(::CompoundTag& tag, ::BlockSource& region) const /*override*/;
47
48 virtual void load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper) /*override*/;
49
50 virtual void
51 loadBlockData(::CompoundTag const& tag, ::BlockSource& region, ::DataLoadHelper& 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#ifdef LL_PLAT_C
76 MCAPI void _setAutomatic(::BlockSource& region, bool alwaysActive, ::CommandBlockMode currentMode);
77#endif
78
79 MCAPI bool getConditionalMode(::BlockSource& region) const;
80
81 MCAPI bool markConditionMet(::BlockSource& region);
82
83 MCAPI bool performCommand(::BlockSource& region);
84
85#ifdef LL_PLAT_S
86 MCAPI void setAutomatic(::BlockSource& region, bool automatic, ::CommandBlockMode oldMode);
87#endif
88
89 MCAPI void updateBlock(
90 ::BlockSource& region,
91 ::std::string const& cmd,
93 ::CommandBlockMode newMode,
94 bool isConditional,
95 bool redstoneMode,
96 bool trackOutput,
97 int tickDelay,
98 bool executeFirstTick
99 );
100 // NOLINTEND
101
102public:
103 // constructor thunks
104 // NOLINTBEGIN
105 MCAPI void* $ctor(::BlockPos const& pos, ::CommandBlockMode mode);
106 // NOLINTEND
107
108public:
109 // virtual function thunks
110 // NOLINTBEGIN
111 MCAPI bool $save(::CompoundTag& tag, ::SaveContext const& saveContext) const;
112
113 MCAPI void $saveBlockData(::CompoundTag& tag, ::BlockSource& region) const;
114
115 MCAPI void $load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
116
117 MCAPI void $loadBlockData(::CompoundTag const& tag, ::BlockSource& region, ::DataLoadHelper& dataLoadHelper);
118
119 MCAPI void $onCustomTagLoadDone(::BlockSource& region);
120
121 MCFOLD void $onChanged(::BlockSource& region);
122
123 MCAPI void $onPlace(::BlockSource& region);
124
125 MCAPI ::Bedrock::Safety::RedactableString const& $getCustomName() const;
126
127 MCAPI void $setCustomName(::Bedrock::Safety::RedactableString const& str);
128
129 MCAPI ::std::unique_ptr<::BlockActorDataPacket> $_getUpdatePacket(::BlockSource& region);
130
131 MCAPI void $_onUpdatePacket(::CompoundTag const& tag, ::BlockSource& region);
132
133 MCAPI bool $_playerCanUpdate(::Player const& player) const;
134
135
136 // NOLINTEND
137
138public:
139 // vftables
140 // NOLINTBEGIN
142
144
145 MCNAPI static void** $vftableForBlockActor();
146
148 // NOLINTEND
149};
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 CompoundTag.h:18
Definition DataLoadHelper.h:20
Definition ILevel.h:221
Definition Player.h:129
Definition SaveContext.h:5