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 { class BaseGameTestInstance; }
28namespace gametest { class GameTestSequence; }
29namespace gametest { struct GameTestError; }
30// clang-format on
31
32namespace gametest {
33
34class BaseGameTestHelper : public ::Bedrock::EnableNonOwnerReferences {
35public:
36 // member variables
37 // NOLINTBEGIN
43 // NOLINTEND
44
45public:
46 // prevent constructor by default
47 BaseGameTestHelper& operator=(BaseGameTestHelper const&);
48 BaseGameTestHelper(BaseGameTestHelper const&);
49 BaseGameTestHelper();
50
51public:
52 // virtual functions
53 // NOLINTBEGIN
54 virtual ~BaseGameTestHelper() /*override*/ = default;
55
56 virtual void succeedWhenEntityPresent(
57 ::ActorDefinitionIdentifier const& actorIdentifier,
58 int x,
59 int y,
60 int z,
61 bool isPresent
62 ) = 0;
63
64 virtual void succeedWhenEntityPresent(
65 ::ActorDefinitionIdentifier const& actorIdentifier,
66 ::BlockPos const& pos,
67 bool isPresent
68 ) = 0;
69
70 virtual void succeedWhenEntityData(
71 ::BlockPos const& pos,
72 ::ActorDefinitionIdentifier const& actorIdentifier,
73 ::std::function<bool(::Actor&)> dataPredicate
74 ) = 0;
75
76 virtual void succeedWhenEntityHasComponent(
77 ::ActorDefinitionIdentifier const& actorIdentifier,
78 ::std::string const& componentName,
79 ::BlockPos const& pos,
80 bool hasComponent
81 ) = 0;
82
83 virtual void succeedWhenBlockPresent(::Block const& block, int x, int y, int z, bool isPresent) = 0;
84
85 virtual void succeedWhenBlockPresent(::Block const& block, ::BlockPos const& pos, bool isPresent) = 0;
86
87 virtual void succeedWhenBlockPresent(::BlockType const& block, ::BlockPos const& position, bool isPresent) = 0;
88
89 virtual void setNight() = 0;
90
91 virtual void setDayTime(int time) = 0;
92
93 virtual ::std::optional<::gametest::GameTestError>
94 setBlock(int x, int y, int z, ::Block const& block, int updateFlags) = 0;
95
96 virtual ::std::optional<::gametest::GameTestError>
97 setBlock(::BlockPos const& pos, ::Block const& block, int updateFlags) = 0;
98
99 virtual ::std::optional<::gametest::GameTestError> destroyBlock(::BlockPos const& pos, bool dropResources) = 0;
100
101 virtual ::std::optional<::gametest::GameTestError> pressButton(int x, int y, int z) = 0;
102
103 virtual ::std::optional<::gametest::GameTestError> pressButton(::BlockPos const& buttonPos) = 0;
104
105 virtual ::std::optional<::gametest::GameTestError> pullLever(int x, int y, int z) = 0;
106
107 virtual ::std::optional<::gametest::GameTestError> pullLever(::BlockPos const& leverPos) = 0;
108
109 virtual ::std::optional<::gametest::GameTestError> killAllEntities() = 0;
110
111 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
112 spawn(::ActorDefinitionIdentifier const& actorIdentifier, int x, int y, int z) = 0;
113
114 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
115 spawn(::ActorDefinitionIdentifier const& actorIdentifier, ::BlockPos const& pos) = 0;
116
117 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
118 spawn(::ActorDefinitionIdentifier const& actorIdentifier, ::Vec3 const& pos) = 0;
119
120 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
121 spawnItem(::ItemStack const& itemType, ::Vec3 const& pos) = 0;
122
123 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
124 spawnWithoutBehaviors(::ActorDefinitionIdentifier const& actorIdentifier, ::BlockPos const& pos) = 0;
125
126 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
127 spawnWithoutBehaviors(::ActorDefinitionIdentifier const& actorIdentifier, ::Vec3 const& pos) = 0;
128
129 virtual ::std::optional<::gametest::GameTestError>
130 walkTo(::Mob& mob, ::BlockPos const& pos, float speedModifier) = 0;
131
132 virtual ::std::optional<::gametest::GameTestError> walkTo(::Mob& mob, ::Vec3 const& pos, float speedModifier) = 0;
133
134 virtual ::std::optional<::gametest::GameTestError> setTntFuse(::Actor& actor, int fuseLength) = 0;
135
136 virtual ::std::optional<::gametest::GameTestError>
137 assertEntityPresent(::ActorDefinitionIdentifier const& actorIdentifier, bool isPresent) = 0;
138
139 virtual ::std::optional<::gametest::GameTestError>
140 assertEntityPresent(::ActorDefinitionIdentifier const& actorIdentifier, int x, int y, int z, bool isPresent) = 0;
141
142 virtual ::std::optional<::gametest::GameTestError>
143 assertEntityPresent(::ActorDefinitionIdentifier const& actorIdentifier, ::BlockPos const& pos, bool isPresent) = 0;
144
145 virtual ::std::optional<::gametest::GameTestError> assertEntityPresent(
146 ::ActorDefinitionIdentifier const& actorIdentifier,
147 ::BlockPos const& pos,
148 float const distance,
149 bool isPresent
150 ) = 0;
151
152 virtual ::std::optional<::gametest::GameTestError>
153 assertEntityInstancePresent(::Actor const* actor, ::BlockPos const& pos, bool expectedPresent) = 0;
154
155 virtual ::std::optional<::gametest::GameTestError>
156 assertEntityInstancePresent(::Actor const* actor, bool expectedPresent) const = 0;
157
158 virtual ::std::optional<::gametest::GameTestError>
159 assertEntityTouching(::ActorDefinitionIdentifier const& actorIdentifier, ::Vec3 const& pos, bool isTouching) = 0;
160
161 virtual ::std::optional<::gametest::GameTestError> assertEntityState(
162 ::BlockPos const& pos,
163 ::ActorDefinitionIdentifier const& actorIdentifier,
164 ::std::function<bool(::Actor&)> dataPredicate
165 ) = 0;
166
167 virtual ::std::optional<::gametest::GameTestError>
168 assertBlockPresent(::BlockType const& blockType, int x, int y, int z, bool isPresent) = 0;
169
170 virtual ::std::optional<::gametest::GameTestError>
171 assertBlockPresent(::BlockType const& blockType, ::BlockPos const& pos, bool isPresent) = 0;
172
173 virtual ::std::optional<::gametest::GameTestError>
174 assertBlockState(::BlockPos const& blockPos, ::std::function<bool(::Block const&)> predicate) = 0;
175
176 virtual ::std::optional<::gametest::GameTestError>
177 assertItemEntityPresent(::Item const& item, int x, int y, int z, float searchDistance, bool isPresent) = 0;
178
179 virtual ::std::optional<::gametest::GameTestError>
180 assertItemEntityPresent(::Item const& item, ::BlockPos const& pos, float searchDistance, bool isPresent) = 0;
181
182 virtual ::std::optional<::gametest::GameTestError>
183 assertItemEntityCountIs(::Item const& itemType, ::BlockPos const& pos, float searchDistance, int expectedCount) = 0;
184
185 virtual ::std::optional<::gametest::GameTestError> assertContainerEmpty(::BlockPos const& pos) = 0;
186
187 virtual ::std::optional<::gametest::GameTestError>
188 assertContainerContains(::ItemStack const& item, ::BlockPos const& pos) = 0;
189
190 virtual ::std::optional<::gametest::GameTestError> assertEntityHasComponent(
191 ::ActorDefinitionIdentifier const& actorIdentifier,
192 ::std::string const& componentName,
193 ::BlockPos const& pos,
194 bool hasComponent
195 ) = 0;
196
197 virtual ::std::optional<::gametest::GameTestError> assertEntityHasArmor(
198 ::ActorDefinitionIdentifier const& actorIdentifier,
199 ::SharedTypes::Legacy::ArmorSlot armorSlot,
200 ::std::string const& armorName,
201 int dataValue,
202 ::BlockPos const& pos,
203 bool hasArmor
204 ) = 0;
205
206 virtual ::std::optional<::gametest::GameTestError> print(::std::string const& text) = 0;
207
208 virtual ::std::optional<::gametest::GameTestError>
209 assertRedstonePower(::BlockPos const& pos, int expectedPower) = 0;
210
211 virtual ::std::optional<::gametest::GameTestError>
212 assertIsWaterlogged(::BlockPos const& pos, bool expectedWaterlogged) = 0;
213
214 virtual ::std::optional<::gametest::GameTestError> pulseRedstone(::BlockPos const& pos, int duration) = 0;
215
216 virtual ::std::variant<::gametest::GameTestError, ::ScriptModuleGameTest::ScriptGameTestConnectivity>
217 getFenceConnectivity(::BlockPos const& relativePos) = 0;
218
219 virtual ::std::variant<::gametest::GameTestError, ::BlockPos>
220 worldPosition(::BlockPos const& relativePos) const = 0;
221
222 virtual ::std::variant<::gametest::GameTestError, ::Vec3> worldPosition(::Vec3 const& relativePos) const = 0;
223
224 virtual ::std::variant<::gametest::GameTestError, ::BlockPos>
225 relativePosition(::BlockPos const& worldPos) const = 0;
226
227 virtual ::std::variant<::gametest::GameTestError, ::Vec3> relativePosition(::Vec3 const& worldPos) const = 0;
228
229 virtual ::std::optional<::gametest::GameTestError> setFluidContainer(::BlockPos const& pos, int _fluidType) = 0;
230
231 virtual ::std::optional<::gametest::GameTestError> triggerInternalBlockEvent(
232 ::BlockPos const& pos,
233 ::std::string const& event,
234 ::std::vector<float> const& parameters
235 ) = 0;
236
237 virtual ::std::optional<::gametest::GameTestError>
238 assertCanReachLocation(::Mob& mob, ::BlockPos const& pos, bool expectedReach) = 0;
239
240 virtual ::std::optional<::gametest::GameTestError> spreadFromFaceTowardDirection(
241 ::BlockPos const& pos,
242 ::ScriptModuleMinecraft::ScriptFacing fromFace,
243 ::ScriptModuleMinecraft::ScriptFacing direction
244 ) = 0;
245
246 virtual ::std::variant<::gametest::GameTestError, ::SimulatedPlayer*>
247 spawnSimulatedPlayer(::std::string const& name, ::BlockPos const& pos, ::GameType gameMode) = 0;
248
249 virtual void removeSimulatedPlayer(::SimulatedPlayer& simulatedPlayer) = 0;
250
251 virtual ::std::variant<::gametest::GameTestError, ::Dimension*> getDimension() = 0;
252
253 virtual ::std::optional<::gametest::GameTestError> getBlockSource(::BlockSource*& blockSourceResult) = 0;
254
255 virtual ::std::optional<::gametest::GameTestError> onPlayerJump(::Mob& mob, int jumpAmount) = 0;
256 // NOLINTEND
257
258public:
259 // member functions
260 // NOLINTBEGIN
262
263 MCNAPI ::BlockPos _absolutePos(::BlockPos const& relativePos) const;
264
265 MCNAPI ::Vec3 _absoluteVec(::Vec3 const& relativeVec) const;
266
267 MCNAPI void _relativeConnectivity(bool& north, bool& east, bool& south, bool& west) const;
268
269 MCNAPI ::BlockPos _relativePos(::BlockPos const& absolutePos) const;
270
271 MCNAPI ::Vec3 _relativeVec(::Vec3 const& absolutePos) const;
272
273 MCNAPI ::std::optional<::gametest::GameTestError> assertCondition(bool condition, ::std::string const& message);
274
275 MCNAPI void fail(::gametest::GameTestError error);
276
277 MCNAPI void failIf(::std::function<::std::optional<::gametest::GameTestError>()> fn);
278
279 MCNAPI ::gametest::GameTestError generateErrorWithContext(
280 ::gametest::GameTestErrorType errorType,
281 ::std::string message,
282 ::BlockPos const& relativePos
283 ) const;
284
285 MCNAPI ::gametest::GameTestError generateErrorWithContext(
286 ::gametest::GameTestErrorType errorType,
287 ::std::string message,
288 ::std::vector<::std::string> params,
289 ::BlockPos const& relativePos
290 ) const;
291
292 MCNAPI uchar getTestDirection() const;
293
294 MCNAPI ::std::string getTestName() const;
295
296 MCNAPI float getTestRotationAngle() const;
297
298 MCNAPI bool isCleaningUp() const;
299
300 MCNAPI bool isTestInstanceDone() const;
301
302 MCNAPI ::std::variant<::gametest::GameTestError, uchar> rotateDirection(uchar direction) const;
303
304 MCNAPI ::std::variant<::gametest::GameTestError, ::Vec3> rotateVector(::Vec3 const& vec) const;
305
306 MCNAPI void runAfterDelay(int ticksToDelay, ::std::function<::std::optional<::gametest::GameTestError>()> fn);
307
308 MCNAPI void runAtTickTime(int tickTime, ::std::function<::std::optional<::gametest::GameTestError>()> fn);
309
310 MCNAPI void runOnFinish(::std::function<::std::optional<::gametest::GameTestError>()> fn);
311
312 MCNAPI ::std::optional<::gametest::GameTestError> setBlock(::BlockPos const& pos, ::Block const& block);
313
314 MCNAPI ::gametest::GameTestSequence& startSequence();
315
316 MCNAPI void succeed();
317
318 MCNAPI void succeedIf(::std::function<::std::optional<::gametest::GameTestError>()> fn);
319
320 MCNAPI void succeedOnTick(int tick);
321
322 MCNAPI void succeedOnTickWhen(int tick, ::std::function<::std::optional<::gametest::GameTestError>()> fn);
323
324 MCNAPI void succeedWhen(::std::function<::std::optional<::gametest::GameTestError>()> fn);
325
326 MCNAPI void until(
327 ::std::function<::std::optional<::gametest::GameTestError>()> testFn,
328 ::std::function<::std::optional<::gametest::GameTestError>()> doneFn
329 );
330 // NOLINTEND
331
332public:
333 // constructor thunks
334 // NOLINTBEGIN
335 MCNAPI void* $ctor(::gametest::BaseGameTestInstance& testInstance);
336 // NOLINTEND
337
338public:
339 // virtual function thunks
340 // NOLINTBEGIN
341
342 // NOLINTEND
343
344public:
345 // vftables
346 // NOLINTBEGIN
347 MCNAPI static void** $vftable();
348 // NOLINTEND
349};
350
351} // namespace gametest
Definition Actor.h:125
Definition EnableNonOwnerReferences.h:7
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
Definition Mob.h:57
Definition ScriptGameTestConnectivity.h:7
Definition SimulatedPlayer.h:50
Definition Vec3.h:10
MCAPI::Vec3 _relativeVec(::Vec3 const &absolutePos) const
MCAPI void succeedWhen(::std::function<::std::optional<::gametest::GameTestError >()> fn)
MCAPI ::std::optional<::gametest::GameTestError > assertCondition(bool condition, ::std::string const &message)
MCAPI void * $ctor(::gametest::BaseGameTestInstance &testInstance)
MCAPI::Vec3 _absoluteVec(::Vec3 const &relativeVec) const
MCAPI void failIf(::std::function<::std::optional<::gametest::GameTestError >()> fn)
MCAPI void succeedIf(::std::function<::std::optional<::gametest::GameTestError >()> fn)
MCAPI::std::string getTestName() const
MCAPI void succeedOnTickWhen(int tick, ::std::function<::std::optional<::gametest::GameTestError >()> fn)
MCAPI bool isTestInstanceDone() const
MCAPI void until(::std::function<::std::optional<::gametest::GameTestError >()> testFn, ::std::function<::std::optional<::gametest::GameTestError >()> doneFn)
MCAPI void _relativeConnectivity(bool &north, bool &east, bool &south, bool &west) const
MCAPI::BlockPos _relativePos(::BlockPos const &absolutePos) const
MCAPI uchar getTestDirection() const
MCAPI::BlockPos _absolutePos(::BlockPos const &relativePos) const
MCAPI ::std::variant<::gametest::GameTestError, ::Vec3 > rotateVector(::Vec3 const &vec) const
MCAPI void fail(::gametest::GameTestError error)
MCAPI::gametest::GameTestError generateErrorWithContext(::gametest::GameTestErrorType errorType, ::std::string message, ::BlockPos const &relativePos) const
MCAPI::gametest::GameTestSequence & startSequence()
MCAPI bool isCleaningUp() const
MCAPI void runAfterDelay(int ticksToDelay, ::std::function<::std::optional<::gametest::GameTestError >()> fn)
MCAPI void runOnFinish(::std::function<::std::optional<::gametest::GameTestError >()> fn)
MCAPI void runAtTickTime(int tickTime, ::std::function<::std::optional<::gametest::GameTestError >()> fn)
MCAPI ::std::optional<::gametest::GameTestError > setBlock(::BlockPos const &pos, ::Block const &block)
MCAPI float getTestRotationAngle() const
static MCAPI void ** $vftable()
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
MCAPI void succeedOnTick(int tick)
MCAPI BaseGameTestHelper(::gametest::BaseGameTestInstance &testInstance)
Definition BaseGameTestInstance.h:25
Definition GameTestSequence.h:12
Definition ActorDefinitionIdentifier.h:15
Definition GameTestError.h:17
Definition Alias.h:14