LeviLamina
Loading...
Searching...
No Matches
MinecraftGameTestHelper.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/NonOwnerPointer.h"
7#include "mc/deps/shared_types/legacy/actor/ArmorSlot.h"
8#include "mc/gametest/framework/BaseGameTestHelper.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 AABB;
15class Actor;
16class Block;
17class BlockPos;
18class BlockSource;
19class BlockType;
20class Dimension;
21class Item;
22class ItemStack;
23class Mob;
25class SimulatedPlayer;
26class Vec3;
28namespace ScriptModuleGameTest { class ScriptGameTestConnectivity; }
29namespace gametest { struct GameTestError; }
30// clang-format on
31
32class MinecraftGameTestHelper : public ::gametest::BaseGameTestHelper {
33public:
34 // member variables
35 // NOLINTBEGIN
37 // NOLINTEND
38
39public:
40 // prevent constructor by default
41 MinecraftGameTestHelper& operator=(MinecraftGameTestHelper const&);
42 MinecraftGameTestHelper(MinecraftGameTestHelper const&);
43 MinecraftGameTestHelper();
44
45public:
46 // virtual functions
47 // NOLINTBEGIN
48 virtual ~MinecraftGameTestHelper() /*override*/ = default;
49
50 virtual void succeedWhenEntityPresent(
51 ::ActorDefinitionIdentifier const& actorIdentifier,
52 int x,
53 int y,
54 int z,
55 bool isPresent
56 ) /*override*/;
57
58 virtual void succeedWhenEntityPresent(
59 ::ActorDefinitionIdentifier const& actorIdentifier,
60 ::BlockPos const& pos,
61 bool isPresent
62 ) /*override*/;
63
64 virtual void succeedWhenEntityData(
65 ::BlockPos const& pos,
66 ::ActorDefinitionIdentifier const& actorIdentifier,
67 ::std::function<bool(::Actor&)> dataPredicate
68 ) /*override*/;
69
70 virtual void succeedWhenEntityHasComponent(
71 ::ActorDefinitionIdentifier const& actorIdentifier,
72 ::std::string const& componentName,
73 ::BlockPos const& pos,
74 bool hasComponent
75 ) /*override*/;
76
77 virtual void succeedWhenBlockPresent(::Block const& block, int x, int y, int z, bool isPresent) /*override*/;
78
79 virtual void succeedWhenBlockPresent(::Block const& block, ::BlockPos const& pos, bool isPresent) /*override*/;
80
81 virtual void
82 succeedWhenBlockPresent(::BlockType const& block, ::BlockPos const& position, bool isPresent) /*override*/;
83
84 virtual void setNight() /*override*/;
85
86 virtual void setDayTime(int time) /*override*/;
87
88 virtual ::std::optional<::gametest::GameTestError>
89 setBlock(int x, int y, int z, ::Block const& block, int updateFlags) /*override*/;
90
91 virtual ::std::optional<::gametest::GameTestError>
92 setBlock(::BlockPos const& pos, ::Block const& block, int updateFlags) /*override*/;
93
94 virtual ::std::optional<::gametest::GameTestError>
95 destroyBlock(::BlockPos const& pos, bool dropResources) /*override*/;
96
97 virtual ::std::optional<::gametest::GameTestError> pressButton(int x, int y, int z) /*override*/;
98
99 virtual ::std::optional<::gametest::GameTestError> pressButton(::BlockPos const& buttonPos) /*override*/;
100
101 virtual ::std::optional<::gametest::GameTestError> pullLever(int x, int y, int z) /*override*/;
102
103 virtual ::std::optional<::gametest::GameTestError> pullLever(::BlockPos const& leverPos) /*override*/;
104
105 virtual ::std::optional<::gametest::GameTestError> killAllEntities() /*override*/;
106
107 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
108 spawn(::ActorDefinitionIdentifier const& actorIdentifier, int x, int y, int z) /*override*/;
109
110 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
111 spawn(::ActorDefinitionIdentifier const& actorIdentifier, ::BlockPos const& pos) /*override*/;
112
113 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
114 spawn(::ActorDefinitionIdentifier const& actorIdentifier, ::Vec3 const& pos) /*override*/;
115
116 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
117 spawnItem(::ItemStack const& itemType, ::Vec3 const& pos) /*override*/;
118
119 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
120 spawnWithoutBehaviors(::ActorDefinitionIdentifier const& actorIdentifier, ::BlockPos const& pos) /*override*/;
121
122 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
123 spawnWithoutBehaviors(::ActorDefinitionIdentifier const& actorIdentifier, ::Vec3 const& pos) /*override*/;
124
125 virtual ::std::optional<::gametest::GameTestError>
126 walkTo(::Mob& mob, ::BlockPos const& pos, float speedModifier) /*override*/;
127
128 virtual ::std::optional<::gametest::GameTestError>
129 walkTo(::Mob& mob, ::Vec3 const& pos, float speedModifier) /*override*/;
130
131 virtual ::std::optional<::gametest::GameTestError> setTntFuse(::Actor& actor, int fuseLength) /*override*/;
132
133 virtual ::std::optional<::gametest::GameTestError>
134 assertEntityPresent(::ActorDefinitionIdentifier const& actorIdentifier, bool isPresent) /*override*/;
135
136 virtual ::std::optional<::gametest::GameTestError> assertEntityPresent(
137 ::ActorDefinitionIdentifier const& actorIdentifier,
138 int x,
139 int y,
140 int z,
141 bool isPresent
142 ) /*override*/;
143
144 virtual ::std::optional<::gametest::GameTestError> assertEntityPresent(
145 ::ActorDefinitionIdentifier const& actorIdentifier,
146 ::BlockPos const& pos,
147 bool isPresent
148 ) /*override*/;
149
150 virtual ::std::optional<::gametest::GameTestError> assertEntityPresent(
151 ::ActorDefinitionIdentifier const& actorIdentifier,
152 ::BlockPos const& pos,
153 float const distance,
154 bool isPresent
155 ) /*override*/;
156
157 virtual ::std::optional<::gametest::GameTestError>
158 assertEntityInstancePresent(::Actor const* actor, ::BlockPos const& pos, bool expectedPresent) /*override*/;
159
160 virtual ::std::optional<::gametest::GameTestError>
161 assertEntityInstancePresent(::Actor const* actor, bool expectedPresent) const /*override*/;
162
163 virtual ::std::optional<::gametest::GameTestError> assertEntityTouching(
164 ::ActorDefinitionIdentifier const& actorIdentifier,
165 ::Vec3 const& pos,
166 bool isTouching
167 ) /*override*/;
168
169 virtual ::std::optional<::gametest::GameTestError> assertEntityState(
170 ::BlockPos const& pos,
171 ::ActorDefinitionIdentifier const& actorIdentifier,
172 ::std::function<bool(::Actor&)> dataPredicate
173 ) /*override*/;
174
175 virtual ::std::optional<::gametest::GameTestError>
176 assertBlockPresent(::BlockType const& blockType, int x, int y, int z, bool isPresent) /*override*/;
177
178 virtual ::std::optional<::gametest::GameTestError>
179 assertBlockPresent(::BlockType const& blockType, ::BlockPos const& pos, bool isPresent) /*override*/;
180
181 virtual ::std::optional<::gametest::GameTestError>
182 assertBlockState(::BlockPos const& blockPos, ::std::function<bool(::Block const&)> predicate) /*override*/;
183
184 virtual ::std::optional<::gametest::GameTestError>
185 assertItemEntityPresent(::Item const& item, int x, int y, int z, float searchDistance, bool isPresent) /*override*/;
186
187 virtual ::std::optional<::gametest::GameTestError> assertItemEntityPresent(
188 ::Item const& item,
189 ::BlockPos const& pos,
190 float searchDistance,
191 bool isPresent
192 ) /*override*/;
193
194 virtual ::std::optional<::gametest::GameTestError> assertItemEntityCountIs(
195 ::Item const& itemType,
196 ::BlockPos const& pos,
197 float searchDistance,
198 int expectedCount
199 ) /*override*/;
200
201 virtual ::std::optional<::gametest::GameTestError> assertContainerEmpty(::BlockPos const& pos) /*override*/;
202
203 virtual ::std::optional<::gametest::GameTestError>
204 assertContainerContains(::ItemStack const& item, ::BlockPos const& pos) /*override*/;
205
206 virtual ::std::optional<::gametest::GameTestError> assertEntityHasComponent(
207 ::ActorDefinitionIdentifier const& actorIdentifier,
208 ::std::string const& componentName,
209 ::BlockPos const& pos,
210 bool hasComponent
211 ) /*override*/;
212
213 virtual ::std::optional<::gametest::GameTestError> assertEntityHasArmor(
214 ::ActorDefinitionIdentifier const& actorIdentifier,
215 ::SharedTypes::Legacy::ArmorSlot armorSlot,
216 ::std::string const& armorName,
217 int dataValue,
218 ::BlockPos const& pos,
219 bool hasArmor
220 ) /*override*/;
221
222 virtual ::std::optional<::gametest::GameTestError> print(::std::string const& text) /*override*/;
223
224 virtual ::std::optional<::gametest::GameTestError>
225 assertRedstonePower(::BlockPos const& pos, int expectedPower) /*override*/;
226
227 virtual ::std::optional<::gametest::GameTestError>
228 assertIsWaterlogged(::BlockPos const& pos, bool expectedWaterlogged) /*override*/;
229
230 virtual ::std::optional<::gametest::GameTestError> pulseRedstone(::BlockPos const& pos, int duration) /*override*/;
231
232 virtual ::std::variant<::gametest::GameTestError, ::ScriptModuleGameTest::ScriptGameTestConnectivity>
233 getFenceConnectivity(::BlockPos const& relativePos) /*override*/;
234
235 virtual ::std::optional<::gametest::GameTestError>
236 setFluidContainer(::BlockPos const& pos, int _fluidType) /*override*/;
237
238 virtual ::std::optional<::gametest::GameTestError> triggerInternalBlockEvent(
239 ::BlockPos const& pos,
240 ::std::string const& event,
241 ::std::vector<float> const& parameters
242 ) /*override*/;
243
244 virtual ::std::variant<::gametest::GameTestError, ::BlockPos> worldPosition(::BlockPos const& relativePos) const
245 /*override*/;
246
247 virtual ::std::variant<::gametest::GameTestError, ::Vec3> worldPosition(::Vec3 const& relativePos) const
248 /*override*/;
249
250 virtual ::std::variant<::gametest::GameTestError, ::BlockPos> relativePosition(::BlockPos const& worldPos) const
251 /*override*/;
252
253 virtual ::std::variant<::gametest::GameTestError, ::Vec3> relativePosition(::Vec3 const& worldPos) const
254 /*override*/;
255
256 virtual ::std::optional<::gametest::GameTestError>
257 assertCanReachLocation(::Mob& mob, ::BlockPos const& pos, bool expectedReach) /*override*/;
258
259 virtual ::std::optional<::gametest::GameTestError> spreadFromFaceTowardDirection(
260 ::BlockPos const& pos,
261 ::ScriptModuleMinecraft::ScriptFacing fromFace,
262 ::ScriptModuleMinecraft::ScriptFacing direction
263 ) /*override*/;
264
265 virtual ::std::optional<::gametest::GameTestError> getBlockSource(::BlockSource*& blockSourceResult) /*override*/;
266
267 virtual ::std::variant<::gametest::GameTestError, ::SimulatedPlayer*>
268 spawnSimulatedPlayer(::std::string const& name, ::BlockPos const& pos, ::GameType gameMode) /*override*/;
269
270 virtual void removeSimulatedPlayer(::SimulatedPlayer& simulatedPlayer) /*override*/;
271
272 virtual ::std::variant<::gametest::GameTestError, ::Dimension*> getDimension() /*override*/;
273
274 virtual ::std::optional<::gametest::GameTestError> onPlayerJump(::Mob& mob, int jumpAmount) /*override*/;
275 // NOLINTEND
276
277public:
278 // member functions
279 // NOLINTBEGIN
280 MCAPI ::std::optional<::gametest::GameTestError> _assertEntityInstancePresent(
281 ::Actor const* actor,
282 ::AABB const& searchBounds,
283 ::BlockPos const& relativeTestPosition,
284 bool expectedPresent
285 ) const;
286
287 MCAPI ::std::optional<::gametest::GameTestError> _assertEntityPresent(
288 ::ActorDefinitionIdentifier const& actorIdentifier,
289 ::AABB const& searchBounds,
290 ::BlockPos const& pos,
291 bool expectedPresent
292 ) const;
293
294 MCAPI int _getItemEntityCount(::Item const& item, ::AABB const& searchBounds);
295
296 MCAPI ::Bedrock::NotNullNonOwnerPtr<::ServerNetworkHandler> _getServerNetworkHandler() const;
297
298 MCAPI ::std::optional<::gametest::GameTestError> _getStructureBlockMissingError() const;
299 // NOLINTEND
300
301public:
302 // virtual function thunks
303 // NOLINTBEGIN
304 MCAPI void
305 $succeedWhenEntityPresent(::ActorDefinitionIdentifier const& actorIdentifier, int x, int y, int z, bool isPresent);
306
307 MCAPI void $succeedWhenEntityPresent(
308 ::ActorDefinitionIdentifier const& actorIdentifier,
309 ::BlockPos const& pos,
310 bool isPresent
311 );
312
313 MCAPI void $succeedWhenEntityData(
314 ::BlockPos const& pos,
315 ::ActorDefinitionIdentifier const& actorIdentifier,
316 ::std::function<bool(::Actor&)> dataPredicate
317 );
318
319 MCAPI void $succeedWhenEntityHasComponent(
320 ::ActorDefinitionIdentifier const& actorIdentifier,
321 ::std::string const& componentName,
322 ::BlockPos const& pos,
323 bool hasComponent
324 );
325
326 MCAPI void $succeedWhenBlockPresent(::Block const& block, int x, int y, int z, bool isPresent);
327
328 MCAPI void $succeedWhenBlockPresent(::Block const& block, ::BlockPos const& pos, bool isPresent);
329
330 MCAPI void $succeedWhenBlockPresent(::BlockType const& block, ::BlockPos const& position, bool isPresent);
331
332 MCAPI void $setNight();
333
334 MCAPI void $setDayTime(int time);
335
336 MCAPI ::std::optional<::gametest::GameTestError>
337 $setBlock(int x, int y, int z, ::Block const& block, int updateFlags);
338
339 MCAPI ::std::optional<::gametest::GameTestError>
340 $setBlock(::BlockPos const& pos, ::Block const& block, int updateFlags);
341
342 MCAPI ::std::optional<::gametest::GameTestError> $destroyBlock(::BlockPos const& pos, bool dropResources);
343
344 MCAPI ::std::optional<::gametest::GameTestError> $pressButton(int x, int y, int z);
345
346 MCAPI ::std::optional<::gametest::GameTestError> $pressButton(::BlockPos const& buttonPos);
347
348 MCAPI ::std::optional<::gametest::GameTestError> $pullLever(int x, int y, int z);
349
350 MCAPI ::std::optional<::gametest::GameTestError> $pullLever(::BlockPos const& leverPos);
351
352 MCAPI ::std::optional<::gametest::GameTestError> $killAllEntities();
353
354 MCAPI ::std::variant<::gametest::GameTestError, ::Actor*>
355 $spawn(::ActorDefinitionIdentifier const& actorIdentifier, int x, int y, int z);
356
357 MCAPI ::std::variant<::gametest::GameTestError, ::Actor*>
358 $spawn(::ActorDefinitionIdentifier const& actorIdentifier, ::BlockPos const& pos);
359
360 MCAPI ::std::variant<::gametest::GameTestError, ::Actor*>
361 $spawn(::ActorDefinitionIdentifier const& actorIdentifier, ::Vec3 const& pos);
362
363 MCAPI ::std::variant<::gametest::GameTestError, ::Actor*>
364 $spawnItem(::ItemStack const& itemType, ::Vec3 const& pos);
365
366 MCAPI ::std::variant<::gametest::GameTestError, ::Actor*>
367 $spawnWithoutBehaviors(::ActorDefinitionIdentifier const& actorIdentifier, ::BlockPos const& pos);
368
369 MCAPI ::std::variant<::gametest::GameTestError, ::Actor*>
370 $spawnWithoutBehaviors(::ActorDefinitionIdentifier const& actorIdentifier, ::Vec3 const& pos);
371
372 MCAPI ::std::optional<::gametest::GameTestError> $walkTo(::Mob& mob, ::BlockPos const& pos, float speedModifier);
373
374 MCAPI ::std::optional<::gametest::GameTestError> $walkTo(::Mob& mob, ::Vec3 const& pos, float speedModifier);
375
376 MCAPI ::std::optional<::gametest::GameTestError> $setTntFuse(::Actor& actor, int fuseLength);
377
378 MCAPI ::std::optional<::gametest::GameTestError>
379 $assertEntityPresent(::ActorDefinitionIdentifier const& actorIdentifier, bool isPresent);
380
381 MCAPI ::std::optional<::gametest::GameTestError>
382 $assertEntityPresent(::ActorDefinitionIdentifier const& actorIdentifier, int x, int y, int z, bool isPresent);
383
384 MCAPI ::std::optional<::gametest::GameTestError>
385 $assertEntityPresent(::ActorDefinitionIdentifier const& actorIdentifier, ::BlockPos const& pos, bool isPresent);
386
387 MCAPI ::std::optional<::gametest::GameTestError> $assertEntityPresent(
388 ::ActorDefinitionIdentifier const& actorIdentifier,
389 ::BlockPos const& pos,
390 float const distance,
391 bool isPresent
392 );
393
394 MCAPI ::std::optional<::gametest::GameTestError>
395 $assertEntityInstancePresent(::Actor const* actor, ::BlockPos const& pos, bool expectedPresent);
396
397 MCAPI ::std::optional<::gametest::GameTestError>
398 $assertEntityInstancePresent(::Actor const* actor, bool expectedPresent) const;
399
400 MCAPI ::std::optional<::gametest::GameTestError>
401 $assertEntityTouching(::ActorDefinitionIdentifier const& actorIdentifier, ::Vec3 const& pos, bool isTouching);
402
403 MCAPI ::std::optional<::gametest::GameTestError> $assertEntityState(
404 ::BlockPos const& pos,
405 ::ActorDefinitionIdentifier const& actorIdentifier,
406 ::std::function<bool(::Actor&)> dataPredicate
407 );
408
409 MCAPI ::std::optional<::gametest::GameTestError>
410 $assertBlockPresent(::BlockType const& blockType, int x, int y, int z, bool isPresent);
411
412 MCAPI ::std::optional<::gametest::GameTestError>
413 $assertBlockPresent(::BlockType const& blockType, ::BlockPos const& pos, bool isPresent);
414
415 MCAPI ::std::optional<::gametest::GameTestError>
416 $assertBlockState(::BlockPos const& blockPos, ::std::function<bool(::Block const&)> predicate);
417
418 MCAPI ::std::optional<::gametest::GameTestError>
419 $assertItemEntityPresent(::Item const& item, int x, int y, int z, float searchDistance, bool isPresent);
420
421 MCAPI ::std::optional<::gametest::GameTestError>
422 $assertItemEntityPresent(::Item const& item, ::BlockPos const& pos, float searchDistance, bool isPresent);
423
424 MCAPI ::std::optional<::gametest::GameTestError>
425 $assertItemEntityCountIs(::Item const& itemType, ::BlockPos const& pos, float searchDistance, int expectedCount);
426
427 MCAPI ::std::optional<::gametest::GameTestError> $assertContainerEmpty(::BlockPos const& pos);
428
429 MCAPI ::std::optional<::gametest::GameTestError>
430 $assertContainerContains(::ItemStack const& item, ::BlockPos const& pos);
431
432 MCAPI ::std::optional<::gametest::GameTestError> $assertEntityHasComponent(
433 ::ActorDefinitionIdentifier const& actorIdentifier,
434 ::std::string const& componentName,
435 ::BlockPos const& pos,
436 bool hasComponent
437 );
438
439 MCAPI ::std::optional<::gametest::GameTestError> $assertEntityHasArmor(
440 ::ActorDefinitionIdentifier const& actorIdentifier,
441 ::SharedTypes::Legacy::ArmorSlot armorSlot,
442 ::std::string const& armorName,
443 int dataValue,
444 ::BlockPos const& pos,
445 bool hasArmor
446 );
447
448 MCAPI ::std::optional<::gametest::GameTestError> $print(::std::string const& text);
449
450 MCAPI ::std::optional<::gametest::GameTestError> $assertRedstonePower(::BlockPos const& pos, int expectedPower);
451
452 MCAPI ::std::optional<::gametest::GameTestError>
453 $assertIsWaterlogged(::BlockPos const& pos, bool expectedWaterlogged);
454
455 MCAPI ::std::optional<::gametest::GameTestError> $pulseRedstone(::BlockPos const& pos, int duration);
456
457 MCAPI ::std::variant<::gametest::GameTestError, ::ScriptModuleGameTest::ScriptGameTestConnectivity>
458 $getFenceConnectivity(::BlockPos const& relativePos);
459
460 MCAPI ::std::optional<::gametest::GameTestError> $setFluidContainer(::BlockPos const& pos, int _fluidType);
461
462 MCAPI ::std::optional<::gametest::GameTestError> $triggerInternalBlockEvent(
463 ::BlockPos const& pos,
464 ::std::string const& event,
465 ::std::vector<float> const& parameters
466 );
467
468 MCAPI ::std::variant<::gametest::GameTestError, ::BlockPos> $worldPosition(::BlockPos const& relativePos) const;
469
470 MCAPI ::std::variant<::gametest::GameTestError, ::Vec3> $worldPosition(::Vec3 const& relativePos) const;
471
472 MCAPI ::std::variant<::gametest::GameTestError, ::BlockPos> $relativePosition(::BlockPos const& worldPos) const;
473
474 MCAPI ::std::variant<::gametest::GameTestError, ::Vec3> $relativePosition(::Vec3 const& worldPos) const;
475
476 MCAPI ::std::optional<::gametest::GameTestError>
477 $assertCanReachLocation(::Mob& mob, ::BlockPos const& pos, bool expectedReach);
478
479 MCAPI ::std::optional<::gametest::GameTestError> $spreadFromFaceTowardDirection(
480 ::BlockPos const& pos,
481 ::ScriptModuleMinecraft::ScriptFacing fromFace,
482 ::ScriptModuleMinecraft::ScriptFacing direction
483 );
484
485 MCAPI ::std::optional<::gametest::GameTestError> $getBlockSource(::BlockSource*& blockSourceResult);
486
487 MCAPI ::std::variant<::gametest::GameTestError, ::SimulatedPlayer*>
488 $spawnSimulatedPlayer(::std::string const& name, ::BlockPos const& pos, ::GameType gameMode);
489
490 MCAPI void $removeSimulatedPlayer(::SimulatedPlayer& simulatedPlayer);
491
492 MCAPI ::std::variant<::gametest::GameTestError, ::Dimension*> $getDimension();
493
494 MCAPI ::std::optional<::gametest::GameTestError> $onPlayerJump(::Mob& mob, int jumpAmount);
495
496
497 // NOLINTEND
498
499public:
500 // vftables
501 // NOLINTBEGIN
502 MCNAPI static void** $vftable();
503 // NOLINTEND
504};
Definition AABB.h:18
Definition Actor.h:125
Definition BlockPos.h:21
Definition BlockSource.h:73
Definition BlockType.h:84
Definition Block.h:69
Definition Dimension.h:89
Definition ItemStack.h:35
Definition Item.h:71
static MCAPI void ** $vftable()
Definition Mob.h:57
Definition ScriptGameTestConnectivity.h:7
Definition ServerNetworkHandler.h:184
Definition SimulatedPlayer.h:50
Definition Vec3.h:10
Definition BaseGameTestHelper.h:34
Definition ActorDefinitionIdentifier.h:15
Definition GameTestError.h:17
Definition Alias.h:14