Collision system v2: binary format, close-doors, and overlay visualization#2
Merged
Collision system v2: binary format, close-doors, and overlay visualization#2
Conversation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…nt routing - Add populatedZones cache to reject empty ocean zones in snapToWalkable(), preventing the pathfinder from routing through water - Add FLOOR_DECORATION to collision export FLAG_BITS so all blocked tiles are properly captured - Export wall collision flags and door/gate positions separately, allowing the pathfinder to route through doorways while respecting permanent walls - Add one-way door handling (Draynor Manor front door) and escape routing - Add multi-segment routing for cross-continent paths (500+ tiles) - Re-export collision data with all improvements (853k tiles, 1006 doors) - Add 30-test pathfinding validation suite covering walls, doors, water avoidance, and cross-continent routes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Revert PapaBlooD's mining.md changes and remove the interactPlayer feature (sendInteractPlayer, OPPLAYER packets, trade support) to keep this PR focused on pathfinding improvements only. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove rs-sdk submodule (PapaBlooD's fork reference) - Revert bun.lock configVersion formatting change - Revert server/engine/bun.lock reformatting (no dep changes) - Revert server/gateway/bun.lock (unrelated dep removal) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…h grid in the rust
…ation Builds on the binary collision cache concept from PR MaxBittker#29 by grumpyowlbear. - Migrate pathfinding from JSON to binary v2 format (18MB -> 7MB, 13x faster init) - Add close-door detection (default-open doors that need wall collision added) - Export endpoint now returns closeDoors and wallLocs for diagnostics - Export script generates JSON, gzip, binary v2, and PNG overlay in one run - PNG overlay includes overworld, dungeons, wilderness dungeons, and legend key Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
d2e3962 to
263663f
Compare
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
Builds on the binary collision cache concept from PR #29 by @grumpyowlbear. Migrates the collision system to a v2 binary format, adds close-door handling, and generates a collision overlay PNG with dungeons.
Detailed File Changes
sdk/pathfinding.ts(+93/-60 lines)collision-data.json) with binary file reader (collision-data.bin)unpackCoord()to decompress packed 32-bit coordinates (z:14, x:14, level:2)rsmod.changeWall(..., add=true)to wall off default-open doorsdoorIndexsofindDoorsAlongPathcan detect themserver/engine/src/web/pages/api.ts(+21/-7 lines)closeDoorsarray — locs with "Close" option (default-open doors)wallLocsarray — ALL wall-layer locs with blockwalk for diagnostics (locId, name, shape, angle, blockrange){ tiles, zones, doors, closeDoors, wallLocs }server/engine/tools/export-collision.ts(+424/-3 lines)sdk/collision-overlay.pngsdk/collision-data.json(data change)closeDoors(104 entries) andwallLocs(94,441 entries) fieldssdk/collision-data.json.gz(data change)sdk/collision-data.bin(NEW — 6.96 MB)sdk/collision-overlay.png(NEW — 1.1 MB)Test plan
🤖 Generated with Claude Code