feat(mapper): in-app AutoMapper editor + pan + smarter labels#53
Merged
Conversation
Brings the Genie 4 AutoMapper window's editing/navigation tools to the Genie 5 mapper (addresses part of #44). Engine (AutoMapperEngine): - RemoveNode(id): delete a node + scrub dangling arcs, rebuild indexes. - ResetMapIds(): renumber nodes 1..N, remap all arc destinations. - NotifyStructureChanged(): rebuild fingerprint/server-id indexes after Title/ServerRoomId edits. - AllowDuplicateRooms flag: when recording, skip the fuzzy fingerprint/ title match tiers so look-alike rooms get their own node (definitive server-id / graph-arc tiers still match). Off by default. Canvas (MapCanvas): - Edit mode: select a room (yellow outline), drag to move (commits to a grid cell on release; only marks dirty when the cell actually changes), Delete key + Remove Room context item. - Grab-to-pan: left-drag (navigate mode / empty space), middle-drag any mode — lets you reposition the map when zoomed in. - Collision-aware labels: place each label in the first free slot (right/left/above/below), skip when crowded (always keep current/ selected/hovered), dotted leader line when displaced. Labels toggle switches primary-name-only (default) vs the full |-separated list. App/VM (MapperViewModel, App.axaml): - Editor toolbar: Edit, Record (auto-create), New, Save (unsaved dot), Labels, and an edit-only cluster (Remove, Reset IDs, Snap, Lock, Dup). Edit Room properties panel (Title/Notes/Color/Server-id + Apply). - Save derives a filename for brand-new zones; round-trips through the existing Genie 4 XML exporter so the community map format is preserved.
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
Brings the Genie 4 AutoMapper window's editing & navigation tools into the Genie 5 mapper. Addresses part of #44 (AutoMapper toolbar parity).
Editor (Edit mode)
Navigation
Labels
|-separated list. Full set is always in the hover tooltip.Map format
Saves round-trip through the existing Genie 4 XML exporter, so edited zones stay compatible with Genie 4 / Lich / the Maps repo.
Type of Change
Related Issue
Addresses part of #44.
Testing
Built clean on all targets locally; smoke-tested in the running app: toolbar + edit cluster, select/drag/move, dirty tracking, remove, pan-when-zoomed, and the label declutter + toggle.