45 BaseGameTestHelper& operator=(BaseGameTestHelper
const&);
46 BaseGameTestHelper(BaseGameTestHelper
const&);
52 virtual ~BaseGameTestHelper() =
default;
54 virtual void succeedWhenEntityPresent(
62 virtual void succeedWhenEntityPresent(
68 virtual void succeedWhenEntityData(
71 ::std::function<
bool(
::Actor&)> dataPredicate
74 virtual void succeedWhenEntityHasComponent(
76 ::std::string
const& componentName,
81 virtual void succeedWhenBlockPresent(
::Block const& block,
int x,
int y,
int z,
bool isPresent) = 0;
83 virtual void succeedWhenBlockPresent(
::Block const& block,
::BlockPos const& pos,
bool isPresent) = 0;
85 virtual void succeedWhenBlockPresent(
::BlockType const& block,
::BlockPos const& position,
bool isPresent) = 0;
87 virtual void setNight() = 0;
89 virtual void setDayTime(
int time) = 0;
91 virtual ::std::optional<::gametest::GameTestError>
92 setBlock(
int x,
int y,
int z,
::Block const& block,
int updateFlags) = 0;
94 virtual ::std::optional<::gametest::GameTestError>
97 virtual ::std::optional<::gametest::GameTestError> destroyBlock(
::BlockPos const& pos,
bool dropResources) = 0;
99 virtual ::std::optional<::gametest::GameTestError> pressButton(
int x,
int y,
int z) = 0;
101 virtual ::std::optional<::gametest::GameTestError> pressButton(
::BlockPos const& buttonPos) = 0;
103 virtual ::std::optional<::gametest::GameTestError> pullLever(
int x,
int y,
int z) = 0;
105 virtual ::std::optional<::gametest::GameTestError> pullLever(
::BlockPos const& leverPos) = 0;
107 virtual ::std::optional<::gametest::GameTestError> killAllEntities() = 0;
109 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
112 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
115 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
118 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
121 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
124 virtual ::std::variant<::gametest::GameTestError, ::Actor*>
127 virtual ::std::optional<::gametest::GameTestError>
130 virtual ::std::optional<::gametest::GameTestError> walkTo(
::Mob& mob,
::Vec3 const& pos,
float speedModifier) = 0;
132 virtual ::std::optional<::gametest::GameTestError> setTntFuse(
::Actor& actor,
int fuseLength) = 0;
134 virtual ::std::optional<::gametest::GameTestError>
137 virtual ::std::optional<::gametest::GameTestError>
140 virtual ::std::optional<::gametest::GameTestError>
143 virtual ::std::optional<::gametest::GameTestError> assertEntityPresent(
146 float const distance,
150 virtual ::std::optional<::gametest::GameTestError>
151 assertEntityInstancePresent(
::Actor const* actor,
::BlockPos const& pos,
bool expectedPresent) = 0;
153 virtual ::std::optional<::gametest::GameTestError>
154 assertEntityInstancePresent(
::Actor const* actor,
bool expectedPresent)
const = 0;
156 virtual ::std::optional<::gametest::GameTestError>
159 virtual ::std::optional<::gametest::GameTestError> assertEntityState(
162 ::std::function<
bool(
::Actor&)> dataPredicate
165 virtual ::std::optional<::gametest::GameTestError>
166 assertBlockPresent(
::BlockType const& blockType,
int x,
int y,
int z,
bool isPresent) = 0;
168 virtual ::std::optional<::gametest::GameTestError>
171 virtual ::std::optional<::gametest::GameTestError>
172 assertBlockState(
::BlockPos const& blockPos, ::std::function<
bool(
::Block const&)> predicate) = 0;
174 virtual ::std::optional<::gametest::GameTestError>
175 assertItemEntityPresent(
::Item const& item,
int x,
int y,
int z,
float searchDistance,
bool isPresent) = 0;
177 virtual ::std::optional<::gametest::GameTestError>
178 assertItemEntityPresent(
::Item const& item,
::BlockPos const& pos,
float searchDistance,
bool isPresent) = 0;
180 virtual ::std::optional<::gametest::GameTestError>
181 assertItemEntityCountIs(
::Item const& itemType,
::BlockPos const& pos,
float searchDistance,
int expectedCount) = 0;
183 virtual ::std::optional<::gametest::GameTestError> assertContainerEmpty(
::BlockPos const& pos) = 0;
185 virtual ::std::optional<::gametest::GameTestError>
188 virtual ::std::optional<::gametest::GameTestError> assertEntityHasComponent(
190 ::std::string
const& componentName,
195 virtual ::std::optional<::gametest::GameTestError> assertEntityHasArmor(
197 ::SharedTypes::Legacy::ArmorSlot armorSlot,
198 ::std::string
const& armorName,
204 virtual ::std::optional<::gametest::GameTestError> print(::std::string
const& text) = 0;
206 virtual ::std::optional<::gametest::GameTestError>
207 assertRedstonePower(
::BlockPos const& pos,
int expectedPower) = 0;
209 virtual ::std::optional<::gametest::GameTestError>
210 assertIsWaterlogged(
::BlockPos const& pos,
bool expectedWaterlogged) = 0;
212 virtual ::std::optional<::gametest::GameTestError> pulseRedstone(
::BlockPos const& pos,
int duration) = 0;
214 virtual ::std::variant<::gametest::GameTestError, ::ScriptModuleGameTest::ScriptGameTestConnectivity>
215 getFenceConnectivity(
::BlockPos const& relativePos) = 0;
217 virtual ::std::variant<::gametest::GameTestError, ::BlockPos>
218 worldPosition(
::BlockPos const& relativePos)
const = 0;
220 virtual ::std::variant<::gametest::GameTestError, ::Vec3> worldPosition(
::Vec3 const& relativePos)
const = 0;
222 virtual ::std::variant<::gametest::GameTestError, ::BlockPos>
223 relativePosition(
::BlockPos const& worldPos)
const = 0;
225 virtual ::std::variant<::gametest::GameTestError, ::Vec3> relativePosition(
::Vec3 const& worldPos)
const = 0;
227 virtual ::std::optional<::gametest::GameTestError> setFluidContainer(
::BlockPos const& pos,
int _fluidType) = 0;
229 virtual ::std::optional<::gametest::GameTestError> triggerInternalBlockEvent(
231 ::std::string
const& event,
232 ::std::vector<float>
const& parameters
235 virtual ::std::optional<::gametest::GameTestError>
236 assertCanReachLocation(
::Mob& mob,
::BlockPos const& pos,
bool expectedReach) = 0;
238 virtual ::std::optional<::gametest::GameTestError> spreadFromFaceTowardDirection(
240 ::ScriptModuleMinecraft::ScriptFacing fromFace,
241 ::ScriptModuleMinecraft::ScriptFacing direction
244 virtual ::std::variant<::gametest::GameTestError, ::SimulatedPlayer*>
245 spawnSimulatedPlayer(::std::string
const& name,
::BlockPos const& pos, ::GameType gameMode) = 0;
249 virtual ::std::variant<::gametest::GameTestError, ::Dimension*> getDimension() = 0;
251 virtual ::std::optional<::gametest::GameTestError> getBlockSource(
::BlockSource*& blockSourceResult) = 0;
253 virtual ::std::optional<::gametest::GameTestError> onPlayerJump(
::Mob& mob,
int jumpAmount) = 0;
261 MCNAPI
void failIf(::std::function<::std::optional<::gametest::GameTestError>()> fn);
264 ::gametest::GameTestErrorType errorType,
265 ::std::string message,
270 ::gametest::GameTestErrorType errorType,
271 ::std::string message,
272 ::std::vector<::std::string> params,
276 MCNAPI ::std::variant<::gametest::GameTestError, uchar>
rotateDirection(uchar direction)
const;
278 MCNAPI
void runAfterDelay(
int ticksToDelay, ::std::function<::std::optional<::gametest::GameTestError>()> fn);
280 MCNAPI
void runAtTickTime(
int tickTime, ::std::function<::std::optional<::gametest::GameTestError>()> fn);
282 MCNAPI
void succeedWhen(::std::function<::std::optional<::gametest::GameTestError>()> fn);
285 ::std::function<::std::optional<::gametest::GameTestError>()> testFn,
286 ::std::function<::std::optional<::gametest::GameTestError>()> doneFn