47 BaseGameTestHelper& operator=(BaseGameTestHelper
const&);
48 BaseGameTestHelper(BaseGameTestHelper
const&);
54 virtual ~BaseGameTestHelper() =
default;
56 virtual void succeedWhenEntityPresent(
64 virtual void succeedWhenEntityPresent(
70 virtual void succeedWhenEntityData(
73 ::std::function<
bool(
::Actor&)> dataPredicate
76 virtual void succeedWhenEntityHasComponent(
78 ::std::string
const& componentName,
83 virtual void succeedWhenBlockPresent(
::Block const& block,
int x,
int y,
int z,
bool isPresent) = 0;
85 virtual void succeedWhenBlockPresent(
::Block const& block,
::BlockPos const& pos,
bool isPresent) = 0;
87 virtual void succeedWhenBlockPresent(
::BlockType const& block,
::BlockPos const& position,
bool isPresent) = 0;
89 virtual void setNight() = 0;
91 virtual void setDayTime(
int time) = 0;
93 virtual ::std::optional<::gametest::GameTestError>
94 setBlock(
int x,
int y,
int z,
::Block const& block,
int updateFlags) = 0;
96 virtual ::std::optional<::gametest::GameTestError>
99 virtual ::std::optional<::gametest::GameTestError> destroyBlock(
::BlockPos const& pos,
bool dropResources) = 0;
101 virtual ::std::optional<::gametest::GameTestError> pressButton(
int x,
int y,
int z) = 0;
103 virtual ::std::optional<::gametest::GameTestError> pressButton(
::BlockPos const& buttonPos) = 0;
105 virtual ::std::optional<::gametest::GameTestError> pullLever(
int x,
int y,
int z) = 0;
107 virtual ::std::optional<::gametest::GameTestError> pullLever(
::BlockPos const& leverPos) = 0;
109 virtual ::std::optional<::gametest::GameTestError> killAllEntities() = 0;
111 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
114 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
117 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
120 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
123 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
126 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
129 virtual ::std::optional<::gametest::GameTestError>
132 virtual ::std::optional<::gametest::GameTestError> walkTo(
::Mob& mob,
::Vec3 const& pos,
float speedModifier) = 0;
134 virtual ::std::optional<::gametest::GameTestError> setTntFuse(
::Actor& actor,
int fuseLength) = 0;
136 virtual ::std::optional<::gametest::GameTestError>
139 virtual ::std::optional<::gametest::GameTestError>
142 virtual ::std::optional<::gametest::GameTestError>
145 virtual ::std::optional<::gametest::GameTestError> assertEntityPresent(
148 float const distance,
152 virtual ::std::optional<::gametest::GameTestError>
153 assertEntityInstancePresent(
::Actor const* actor,
::BlockPos const& pos,
bool expectedPresent) = 0;
155 virtual ::std::optional<::gametest::GameTestError>
156 assertEntityInstancePresent(
::Actor const* actor,
bool expectedPresent)
const = 0;
158 virtual ::std::optional<::gametest::GameTestError>
161 virtual ::std::optional<::gametest::GameTestError> assertEntityState(
164 ::std::function<
bool(
::Actor&)> dataPredicate
167 virtual ::std::optional<::gametest::GameTestError>
168 assertBlockPresent(
::BlockType const& blockType,
int x,
int y,
int z,
bool isPresent) = 0;
170 virtual ::std::optional<::gametest::GameTestError>
173 virtual ::std::optional<::gametest::GameTestError>
174 assertBlockState(
::BlockPos const& blockPos, ::std::function<
bool(
::Block const&)> predicate) = 0;
176 virtual ::std::optional<::gametest::GameTestError>
177 assertItemEntityPresent(
::Item const& item,
int x,
int y,
int z,
float searchDistance,
bool isPresent) = 0;
179 virtual ::std::optional<::gametest::GameTestError>
180 assertItemEntityPresent(
::Item const& item,
::BlockPos const& pos,
float searchDistance,
bool isPresent) = 0;
182 virtual ::std::optional<::gametest::GameTestError>
183 assertItemEntityCountIs(
::Item const& itemType,
::BlockPos const& pos,
float searchDistance,
int expectedCount) = 0;
185 virtual ::std::optional<::gametest::GameTestError> assertContainerEmpty(
::BlockPos const& pos) = 0;
187 virtual ::std::optional<::gametest::GameTestError>
190 virtual ::std::optional<::gametest::GameTestError> assertEntityHasComponent(
192 ::std::string
const& componentName,
197 virtual ::std::optional<::gametest::GameTestError> assertEntityHasArmor(
199 ::SharedTypes::Legacy::ArmorSlot armorSlot,
200 ::std::string
const& armorName,
206 virtual ::std::optional<::gametest::GameTestError> print(::std::string
const& text) = 0;
208 virtual ::std::optional<::gametest::GameTestError>
209 assertRedstonePower(
::BlockPos const& pos,
int expectedPower) = 0;
211 virtual ::std::optional<::gametest::GameTestError>
212 assertIsWaterlogged(
::BlockPos const& pos,
bool expectedWaterlogged) = 0;
214 virtual ::std::optional<::gametest::GameTestError> pulseRedstone(
::BlockPos const& pos,
int duration) = 0;
216 virtual ::std::variant<::gametest::GameTestError, ::ScriptModuleGameTest::ScriptGameTestConnectivity>
217 getFenceConnectivity(
::BlockPos const& relativePos) = 0;
219 virtual ::std::variant<::gametest::GameTestError, ::BlockPos>
220 worldPosition(
::BlockPos const& relativePos)
const = 0;
222 virtual ::std::variant<::gametest::GameTestError, ::Vec3> worldPosition(
::Vec3 const& relativePos)
const = 0;
224 virtual ::std::variant<::gametest::GameTestError, ::BlockPos>
225 relativePosition(
::BlockPos const& worldPos)
const = 0;
227 virtual ::std::variant<::gametest::GameTestError, ::Vec3> relativePosition(
::Vec3 const& worldPos)
const = 0;
229 virtual ::std::optional<::gametest::GameTestError> setFluidContainer(
::BlockPos const& pos,
int _fluidType) = 0;
231 virtual ::std::optional<::gametest::GameTestError> triggerInternalBlockEvent(
233 ::std::string
const& event,
234 ::std::vector<float>
const& parameters
237 virtual ::std::optional<::gametest::GameTestError>
238 assertCanReachLocation(
::Mob& mob,
::BlockPos const& pos,
bool expectedReach) = 0;
240 virtual ::std::optional<::gametest::GameTestError> spreadFromFaceTowardDirection(
242 ::ScriptModuleMinecraft::ScriptFacing fromFace,
243 ::ScriptModuleMinecraft::ScriptFacing direction
246 virtual ::std::variant<::gametest::GameTestError, ::SimulatedPlayer*>
247 spawnSimulatedPlayer(::std::string
const& name,
::BlockPos const& pos, ::GameType gameMode) = 0;
251 virtual ::std::variant<::gametest::GameTestError, ::Dimension*> getDimension() = 0;
253 virtual ::std::optional<::gametest::GameTestError> getBlockSource(
::BlockSource*& blockSourceResult) = 0;
255 virtual ::std::optional<::gametest::GameTestError> onPlayerJump(
::Mob& mob,
int jumpAmount) = 0;
273 MCNAPI ::std::optional<::gametest::GameTestError>
assertCondition(
bool condition, ::std::string
const& message);
277 MCNAPI
void failIf(::std::function<::std::optional<::gametest::GameTestError>()> fn);
280 ::gametest::GameTestErrorType errorType,
281 ::std::string message,
286 ::gametest::GameTestErrorType errorType,
287 ::std::string message,
288 ::std::vector<::std::string> params,
302 MCNAPI ::std::variant<::gametest::GameTestError, uchar>
rotateDirection(uchar direction)
const;
306 MCNAPI
void runAfterDelay(
int ticksToDelay, ::std::function<::std::optional<::gametest::GameTestError>()> fn);
308 MCNAPI
void runAtTickTime(
int tickTime, ::std::function<::std::optional<::gametest::GameTestError>()> fn);
310 MCNAPI
void runOnFinish(::std::function<::std::optional<::gametest::GameTestError>()> fn);
318 MCNAPI
void succeedIf(::std::function<::std::optional<::gametest::GameTestError>()> fn);
322 MCNAPI
void succeedOnTickWhen(
int tick, ::std::function<::std::optional<::gametest::GameTestError>()> fn);
324 MCNAPI
void succeedWhen(::std::function<::std::optional<::gametest::GameTestError>()> fn);
327 ::std::function<::std::optional<::gametest::GameTestError>()> testFn,
328 ::std::function<::std::optional<::gametest::GameTestError>()> doneFn