Add Fabric GameTests for biomes, generation, regen and snapshot restore
- BiomeGameTest: set/get round trips, 4x4x4 cell granularity, native agreement
- GenerationGameTest: trees generated on ground that only exists in a buffered
EditSession (cf. f002c034f), plus a feature test. The feature test
(forest_rock) is a known failure, marked required = false:
CoreMcServerLevelDelegateProxy doesn't intercept
WorldGenLevel#setBlockAndUpdate, so BlockBlobFeature writes straight to the
world instead of the session.
- RegenGameTest: //regen on Fabric restores terrain into the world or a
clipboard, regenerates biomes, and rejects seeds
- SnapshotRestoreGameTest: restores from chunks serialised by this Minecraft
version (cf. d4b3cc49a), only touches the requested region, reports
missing chunks (df8847d9 by albert pham)
Add Fabric GameTests for block round-trips, NBT, entity paste and side effects
BlockRoundTripGameTest sets every state of stairs, rails, doors, beds, chests,
the crafter and ~20 other directional families through the platform world with
no side effects and the defaults, and checks the real ServerLevel's block via
native property names, plus what the platform world reads back.
BlockEntityNbtGameTest round-trips sign (including the mixed component list
from #2777; it fails with the addAndUnwrap fix reverted), chest and skull NBT,
with and without side effects.
EntityCopyPasteGameTest copies a region of item frames, paintings, armor stands
and a leashed cow with a home position to the clipboard and pastes under
identity, 90/180/270 rotations, X/Z flips and flip+rotate. Expectations come
from the transform alone: hanging entities' bounding boxes and facing, free
entities' feet position and yaw, leash and home_pos, floor item-frame rotation.
SideEffectsGameTest checks NEIGHBORS (redstone lamp), UPDATE (scheduled sand
tick) and that light follows an emitter.
Finding: flipping a painting that is 2 wide or tall leaves it one block off
(ExtentEntityCopy mirrors only block_pos). Pure rotations are fine. The three
flip tests exclude those paintings, and flipX/flipZ/flipXAndRotate90
EvenSizedPaintings reproduce it as required = false tests (GameTest has no
@Disabled; manualOnly would hide them from the run). Production code untouched.
Review notes (findings not acted on):
- powered/enabled are ignored in the updates-on pass because vanilla recomputes
them on neighbour updates; the updates-off pass checks every property.
- The LIGHTING side effect can't be shown to matter: vanilla queues its own
light check on emission change, so on/off give identical light. The test is a
guard that light follows an emitter, not a LIGHTING on/off comparison.
- The item-frame quarter-turn test accepts either turn direction; only the 180
case pins the sense, as the vanilla sense o... (83e18af6 by albert pham)
Add Fabric GameTest source set with a //set-style walking skeleton
Configures fabricApi.configureTests for worldedit-fabric (server game
tests only), adds the fabric-gametest-api-v1 dependency to the gametest
source set, and one test that sets a 3x3x3 cuboid to stone via an
EditSession on the test ServerLevel. runGameTest is wired into build.
Review notes: a reviewer worried the default template is 1x1x1; it is
Fabric's 8x8x8 empty structure, so the cuboid stays inside the test box. (b3c68e8b by albert pham)