LeviLamina
Loading...
Searching...
No Matches
BaseGameTestHelper.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
7#include "mc/deps/shared_types/legacy/actor/ArmorSlot.h"
8#include "mc/gametest/framework/GameTestErrorType.h"
9#include "mc/scripting/modules/minecraft/ScriptFacing.h"
10#include "mc/world/level/GameType.h"
11
12// auto generated forward declare list
13// clang-format off
14class Actor;
15class Block;
16class BlockPos;
17class BlockSource;
18class BlockType;
19class Dimension;
20class Item;
21class ItemStack;
22class Mob;
23class SimulatedPlayer;
24class Vec3;
26namespace ScriptModuleGameTest { class ScriptGameTestConnectivity; }
27namespace gametest { struct GameTestError; }
28// clang-format on
29
30namespace gametest {
31
32class BaseGameTestHelper : public ::Bedrock::EnableNonOwnerReferences {
33public:
34 // member variables
35 // NOLINTBEGIN
41 // NOLINTEND
42
43public:
44 // prevent constructor by default
45 BaseGameTestHelper& operator=(BaseGameTestHelper const&);
46 BaseGameTestHelper(BaseGameTestHelper const&);
47 BaseGameTestHelper();
48
49public:
50 // virtual functions
51 // NOLINTBEGIN
52 virtual ~BaseGameTestHelper() /*override*/ = default;
53
54 virtual void succeedWhenEntityPresent(
55 ::ActorDefinitionIdentifier const& actorIdentifier,
56 int x,
57 int y,
58 int z,
59 bool isPresent
60 ) = 0;
61
62 virtual void succeedWhenEntityPresent(
63 ::ActorDefinitionIdentifier const& actorIdentifier,
64 ::BlockPos const& pos,
65 bool isPresent
66 ) = 0;
67
68 virtual void succeedWhenEntityData(
69 ::BlockPos const& pos,
70 ::ActorDefinitionIdentifier const& actorIdentifier,
71 ::std::function<bool(::Actor&)> dataPredicate
72 ) = 0;
73
74 virtual void succeedWhenEntityHasComponent(
75 ::ActorDefinitionIdentifier const& actorIdentifier,
76 ::std::string const& componentName,
77 ::BlockPos const& pos,
78 bool hasComponent
79 ) = 0;
80
81 virtual void succeedWhenBlockPresent(::Block const& block, int x, int y, int z, bool isPresent) = 0;
82
83 virtual void succeedWhenBlockPresent(::Block const& block, ::BlockPos const& pos, bool isPresent) = 0;
84
85 virtual void succeedWhenBlockPresent(::BlockType const& block, ::BlockPos const& position, bool isPresent) = 0;
86
87 virtual void setNight() = 0;
88
89 virtual void setDayTime(int time) = 0;
90
91 virtual ::std::optional<::gametest::GameTestError>
92 setBlock(int x, int y, int z, ::Block const& block, int updateFlags) = 0;
93
94 virtual ::std::optional<::gametest::GameTestError>
95 setBlock(::BlockPos const& pos, ::Block const& block, int updateFlags) = 0;
96
97 virtual ::std::optional<::gametest::GameTestError> destroyBlock(::BlockPos const& pos, bool dropResources) = 0;
98
99 virtual ::std::optional<::gametest::GameTestError> pressButton(int x, int y, int z) = 0;
100
101 virtual ::std::optional<::gametest::GameTestError> pressButton(::BlockPos const& buttonPos) = 0;
102
103 virtual ::std::optional<::gametest::GameTestError> pullLever(int x, int y, int z) = 0;
104
105 virtual ::std::optional<::gametest::GameTestError> pullLever(::BlockPos const& leverPos) = 0;
106
107 virtual ::std::optional<::gametest::GameTestError> killAllEntities() = 0;
108
109 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
110 spawn(::ActorDefinitionIdentifier const& actorIdentifier, int x, int y, int z) = 0;
111
112 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
113 spawn(::ActorDefinitionIdentifier const& actorIdentifier, ::BlockPos const& pos) = 0;
114
115 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
116 spawn(::ActorDefinitionIdentifier const& actorIdentifier, ::Vec3 const& pos) = 0;
117
118 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
119 spawnItem(::ItemStack const& itemType, ::Vec3 const& pos) = 0;
120
121 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
122 spawnWithoutBehaviors(::ActorDefinitionIdentifier const& actorIdentifier, ::BlockPos const& pos) = 0;
123
124 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
125 spawnWithoutBehaviors(::ActorDefinitionIdentifier const& actorIdentifier, ::Vec3 const& pos) = 0;
126
127 virtual ::std::optional<::gametest::GameTestError>
128 walkTo(::Mob& mob, ::BlockPos const& pos, float speedModifier) = 0;
129
130 virtual ::std::optional<::gametest::GameTestError> walkTo(::Mob& mob, ::Vec3 const& pos, float speedModifier) = 0;
131
132 virtual ::std::optional<::gametest::GameTestError> setTntFuse(::Actor& actor, int fuseLength) = 0;
133
134 virtual ::std::optional<::gametest::GameTestError>
135 assertEntityPresent(::ActorDefinitionIdentifier const& actorIdentifier, bool isPresent) = 0;
136
137 virtual ::std::optional<::gametest::GameTestError>
138 assertEntityPresent(::ActorDefinitionIdentifier const& actorIdentifier, int x, int y, int z, bool isPresent) = 0;
139
140 virtual ::std::optional<::gametest::GameTestError>
141 assertEntityPresent(::ActorDefinitionIdentifier const& actorIdentifier, ::BlockPos const& pos, bool isPresent) = 0;
142
143 virtual ::std::optional<::gametest::GameTestError> assertEntityPresent(
144 ::ActorDefinitionIdentifier const& actorIdentifier,
145 ::BlockPos const& pos,
146 float const distance,
147 bool isPresent
148 ) = 0;
149
150 virtual ::std::optional<::gametest::GameTestError>
151 assertEntityInstancePresent(::Actor const* actor, ::BlockPos const& pos, bool expectedPresent) = 0;
152
153 virtual ::std::optional<::gametest::GameTestError>
154 assertEntityInstancePresent(::Actor const* actor, bool expectedPresent) const = 0;
155
156 virtual ::std::optional<::gametest::GameTestError>
157 assertEntityTouching(::ActorDefinitionIdentifier const& actorIdentifier, ::Vec3 const& pos, bool isTouching) = 0;
158
159 virtual ::std::optional<::gametest::GameTestError> assertEntityState(
160 ::BlockPos const& pos,
161 ::ActorDefinitionIdentifier const& actorIdentifier,
162 ::std::function<bool(::Actor&)> dataPredicate
163 ) = 0;
164
165 virtual ::std::optional<::gametest::GameTestError>
166 assertBlockPresent(::BlockType const& blockType, int x, int y, int z, bool isPresent) = 0;
167
168 virtual ::std::optional<::gametest::GameTestError>
169 assertBlockPresent(::BlockType const& blockType, ::BlockPos const& pos, bool isPresent) = 0;
170
171 virtual ::std::optional<::gametest::GameTestError>
172 assertBlockState(::BlockPos const& blockPos, ::std::function<bool(::Block const&)> predicate) = 0;
173
174 virtual ::std::optional<::gametest::GameTestError>
175 assertItemEntityPresent(::Item const& item, int x, int y, int z, float searchDistance, bool isPresent) = 0;
176
177 virtual ::std::optional<::gametest::GameTestError>
178 assertItemEntityPresent(::Item const& item, ::BlockPos const& pos, float searchDistance, bool isPresent) = 0;
179
180 virtual ::std::optional<::gametest::GameTestError>
181 assertItemEntityCountIs(::Item const& itemType, ::BlockPos const& pos, float searchDistance, int expectedCount) = 0;
182
183 virtual ::std::optional<::gametest::GameTestError> assertContainerEmpty(::BlockPos const& pos) = 0;
184
185 virtual ::std::optional<::gametest::GameTestError>
186 assertContainerContains(::ItemStack const& item, ::BlockPos const& pos) = 0;
187
188 virtual ::std::optional<::gametest::GameTestError> assertEntityHasComponent(
189 ::ActorDefinitionIdentifier const& actorIdentifier,
190 ::std::string const& componentName,
191 ::BlockPos const& pos,
192 bool hasComponent
193 ) = 0;
194
195 virtual ::std::optional<::gametest::GameTestError> assertEntityHasArmor(
196 ::ActorDefinitionIdentifier const& actorIdentifier,
197 ::SharedTypes::Legacy::ArmorSlot armorSlot,
198 ::std::string const& armorName,
199 int dataValue,
200 ::BlockPos const& pos,
201 bool hasArmor
202 ) = 0;
203
204 virtual ::std::optional<::gametest::GameTestError> print(::std::string const& text) = 0;
205
206 virtual ::std::optional<::gametest::GameTestError>
207 assertRedstonePower(::BlockPos const& pos, int expectedPower) = 0;
208
209 virtual ::std::optional<::gametest::GameTestError>
210 assertIsWaterlogged(::BlockPos const& pos, bool expectedWaterlogged) = 0;
211
212 virtual ::std::optional<::gametest::GameTestError> pulseRedstone(::BlockPos const& pos, int duration) = 0;
213
214 virtual ::std::variant<::gametest::GameTestError, ::ScriptModuleGameTest::ScriptGameTestConnectivity>
215 getFenceConnectivity(::BlockPos const& relativePos) = 0;
216
217 virtual ::std::variant<::gametest::GameTestError, ::BlockPos>
218 worldPosition(::BlockPos const& relativePos) const = 0;
219
220 virtual ::std::variant<::gametest::GameTestError, ::Vec3> worldPosition(::Vec3 const& relativePos) const = 0;
221
222 virtual ::std::variant<::gametest::GameTestError, ::BlockPos>
223 relativePosition(::BlockPos const& worldPos) const = 0;
224
225 virtual ::std::variant<::gametest::GameTestError, ::Vec3> relativePosition(::Vec3 const& worldPos) const = 0;
226
227 virtual ::std::optional<::gametest::GameTestError> setFluidContainer(::BlockPos const& pos, int _fluidType) = 0;
228
229 virtual ::std::optional<::gametest::GameTestError> triggerInternalBlockEvent(
230 ::BlockPos const& pos,
231 ::std::string const& event,
232 ::std::vector<float> const& parameters
233 ) = 0;
234
235 virtual ::std::optional<::gametest::GameTestError>
236 assertCanReachLocation(::Mob& mob, ::BlockPos const& pos, bool expectedReach) = 0;
237
238 virtual ::std::optional<::gametest::GameTestError> spreadFromFaceTowardDirection(
239 ::BlockPos const& pos,
240 ::ScriptModuleMinecraft::ScriptFacing fromFace,
241 ::ScriptModuleMinecraft::ScriptFacing direction
242 ) = 0;
243
244 virtual ::std::variant<::gametest::GameTestError, ::SimulatedPlayer*>
245 spawnSimulatedPlayer(::std::string const& name, ::BlockPos const& pos, ::GameType gameMode) = 0;
246
247 virtual void removeSimulatedPlayer(::SimulatedPlayer& simulatedPlayer) = 0;
248
249 virtual ::std::variant<::gametest::GameTestError, ::Dimension*> getDimension() = 0;
250
251 virtual ::std::optional<::gametest::GameTestError> getBlockSource(::BlockSource*& blockSourceResult) = 0;
252
253 virtual ::std::optional<::gametest::GameTestError> onPlayerJump(::Mob& mob, int jumpAmount) = 0;
254 // NOLINTEND
255
256public:
257 // member functions
258 // NOLINTBEGIN
259 MCNAPI ::Vec3 _absoluteVec(::Vec3 const& relativeVec) const;
260
261 MCNAPI void failIf(::std::function<::std::optional<::gametest::GameTestError>()> fn);
262
263 MCNAPI ::gametest::GameTestError generateErrorWithContext(
264 ::gametest::GameTestErrorType errorType,
265 ::std::string message,
266 ::BlockPos const& relativePos
267 ) const;
268
269 MCNAPI ::gametest::GameTestError generateErrorWithContext(
270 ::gametest::GameTestErrorType errorType,
271 ::std::string message,
272 ::std::vector<::std::string> params,
273 ::BlockPos const& relativePos
274 ) const;
275
276 MCNAPI ::std::variant<::gametest::GameTestError, uchar> rotateDirection(uchar direction) const;
277
278 MCNAPI void runAfterDelay(int ticksToDelay, ::std::function<::std::optional<::gametest::GameTestError>()> fn);
279
280 MCNAPI void runAtTickTime(int tickTime, ::std::function<::std::optional<::gametest::GameTestError>()> fn);
281
282 MCNAPI void succeedWhen(::std::function<::std::optional<::gametest::GameTestError>()> fn);
283
284 MCNAPI void until(
285 ::std::function<::std::optional<::gametest::GameTestError>()> testFn,
286 ::std::function<::std::optional<::gametest::GameTestError>()> doneFn
287 );
288 // NOLINTEND
289
290public:
291 // virtual function thunks
292 // NOLINTBEGIN
293
294 // NOLINTEND
295};
296
297} // namespace gametest
Definition Actor.h:106
Definition EnableNonOwnerReferences.h:7
Definition BlockPos.h:19
Definition BlockSource.h:71
Definition BlockType.h:84
Definition Block.h:43
Definition Dimension.h:86
Definition ItemStack.h:26
Definition Item.h:68
Definition Mob.h:51
Definition ScriptGameTestConnectivity.h:7
Definition SimulatedPlayer.h:53
Definition Vec3.h:10
MCAPI void succeedWhen(::std::function<::std::optional<::gametest::GameTestError >()> fn)
MCAPI::Vec3 _absoluteVec(::Vec3 const &relativeVec) const
MCAPI void failIf(::std::function<::std::optional<::gametest::GameTestError >()> fn)
MCAPI void until(::std::function<::std::optional<::gametest::GameTestError >()> testFn, ::std::function<::std::optional<::gametest::GameTestError >()> doneFn)
MCAPI::gametest::GameTestError generateErrorWithContext(::gametest::GameTestErrorType errorType, ::std::string message, ::BlockPos const &relativePos) const
MCAPI void runAfterDelay(int ticksToDelay, ::std::function<::std::optional<::gametest::GameTestError >()> fn)
MCAPI void runAtTickTime(int tickTime, ::std::function<::std::optional<::gametest::GameTestError >()> fn)
MCAPI::gametest::GameTestError generateErrorWithContext(::gametest::GameTestErrorType errorType, ::std::string message, ::std::vector<::std::string > params, ::BlockPos const &relativePos) const
MCAPI ::std::variant<::gametest::GameTestError, uchar > rotateDirection(uchar direction) const
Definition ActorDefinitionIdentifier.h:15
Definition GameTestError.h:17
Definition Alias.h:14