Repository navigation
feat(lighting): add RGB colored light rendering - #77
Merged
Merged
Conversation
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
zoeyrose
marked this pull request as ready for review
August 10, 2026 10:37
This was referenced Aug 10, 2026
zoeyrose
added a commit
to atrinik/content
that referenced
this pull request
Aug 10, 2026
## Summary - add the exact six-digit `object.light_color` authored-content field and regenerate schema/editor projections - give representative wall torches and red/blue forcefields explicit light colors - cover schema constraints, Gridarta exposure, Python RGB bounds, live mutation paths, applied-item propagation, and save/load persistence - preserve the immutable provenance of the historical authored-syntax benchmark while advancing the current baseline lock ## Validation - `python3 tools/validate.py`: 89/89 tests passed, including aggregate schema/catalog/runtime/package checks - generated authored-content projections are current - companion Classic profile build consumed content HEAD `2d7c68b178d6a3d5b94d6c2bedfa0c6fa6e4c77c` - `git diff --check` passes and the worktree is clean - fresh whole-diff review found zero actionable findings Companion to atrinik/classic#75 and atrinik/classic#77. The Classic PR is the canonical closing change.
This was referenced Aug 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
light_color RRGGBBobject support, fixed-point RGB propagation, live Python mutation hooks, and colored applied-light behavior while preserving scalar gameplay visibilityProtocol and compatibility
MAP2_FLAG_EXT_LIGHT_RGBfollows the complete seven-bit field bitmap and precedes animation data. A zero bitmap resets prior explicit color to scalar gray.uint16_tcontinuation count; partial packets carry ordered sequence/map/scroll identity. Level payloads are capped at 65,522 bytes so the 7-byte partial header plus 5-byte level frame remain within the 65,534-byte envelope.Performance and limits
Measurements were taken on this runner at Classic base
fca1eb0eand head52d85b4b; client timings use Release builds and 100 samples after five warmups around the singlemap_draw_map()call in the frozen 320×240 software-renderer fixture. Server microbenchmarks use the Debug test build, a 21×21 map, and 1,000 iterations.The measured costs are bounded and intentional: neutral wire traffic is effectively unchanged, RGB work is limited to explicitly colored state, and the largest client delta is under 4 ms in the deterministic software-renderer fixture.
Validation
./atrinik build all --profile issue-75-colored-lighting --testpython3 tools/validate.pypassed 89/89python3 tools/verify_import_history.py: verified five imported historiesclang-format --dry-run --Werror;git diff --checkpassesissue75-colored, profileissue-75-colored-lighting, statescenario-issue75-colored: latest Classic/content heads resolved cleanly, server ready, client completed the QUIC handshake and opened its asset stream; topology stopped afterwardCompanion change
1.x.Closes #75