Exercises set_cell_material / get_cell_material round-trip on the
write_test fixture, plus bounds rejection and unknown-layer
rejection. Confirms the new public API is wired and the guards
match the existing v3 write-API conventions.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Verifies the saved JSON is readable, that two successive saves
produce byte-identical output, and that re-loading the saved file
recovers the same cell values that were written before saving.
Uses engine.module.dir_of to write the round-trip fixture to the
lib maps/ directory (asset sandbox rejects absolute temp paths).
tile.id is now an integer; the stable string identifier is tile.name.
Updates all tile-record string-id assertions to use .name. Adds
walkable field to stub atlas JSONs so gameplay assertions pass without
the legacy tiles dir. Test bootstrap calls maps.load_textures with
aliases pointing to the test-lib itself as the asset provider. Moves
load_textures calls inline after each set_current (Task 4 and Task 9
blocks) so all tile-record shape and walkability checks use atlas
records throughout. Bumps version to 0.3.0, dep on maps 0.3.0.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replaces the legacy color-only *.tilemap.json fixtures with baked
2-tile atlas-sets in the new atlases/<id>/{diffuse,height,atlas-json,
lock-json} layout. Stub PNGs are 32x32 solid colors matching the
previous color values; height channel is synthesized L8=0 by the baker.
A scripts/bake.sh re-bake helper drives the atlas-baker tool against
assets/_sources/.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Migrates the test-lib content authored alongside lib-core.maps v0.2.0
into its canonical role=test location. Covers packed-u32 GID encode/
decode round-trip, v1 to v2 schema upgrade, schema-v2 validation,
multi-layer load, multi-atlas resolution, per-layer tile lookup with
tile_at backwards-compat, gameplay queries (is_walkable, blocks_walk,
blocks_sight), layer iteration around the entity slot, and v1 JSON
auto-migration on load. 367 assertions total when run via the engine
test-libs harness.
New fixtures: maps/demo_v2.map.json (4x4 multi-layer with roof) and
assets/tiles/walls_tilemap.tilemap.json (second atlas with wall tiles).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds the proprietary all-rights-reserved license that applies to this
library. The text is identical to the engine LICENSE — this lib is
Tier-1 official platform content, distributed under the same terms.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Test-libs expose a single public function (run_tests) per ADR-0037.
Documenting it under ## API allows --lint to pass cleanly on test-libs,
now that parse_readme_api supports namespace-less H3 headers.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Restructured per ADR-0038 with Coverage-Statement-Block per Fault-
Injection-Audit-Convention. Topology auto-populated. Pre-commit hook
installed.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>