Skip to content

Ship the native Rust map-editing MVP #11

Description

@zoeyrose

Important

This preserved authoring issue now belongs to the fresh MIT Rust editor under the replacement program. Gameplay/content design and safe-authoring requirements remain unchanged. Legacy implementation paths below are historical evidence.

Replacement implementation contract

Deliver the product MVP through the fresh Rust editor, released content-toolkit document/transaction crates, and shared renderer. Preserve the complete authoring workflow and safety gates; replace classic C/GCC/MinGW/Java/Gridarta integration details with Cargo, Clippy, Rust tests, and Linux/Windows packages.

Verified original past contributions by an approved MIT provenance grantor may be copied, migrated, translated, or relicensed under MIT only after complete Git provenance and third-party-material review is recorded. Other GPL implementation/tests must not be mechanically ported.

Required verification

  • Preserve unknown fields, comments, ordering, and untouched bytes through lossless toolkit transactions.
  • Use semantic commands with revision preconditions, dry-run/diff, undo/recovery, validation, and atomic writes.
  • Use the exact shared renderer and toolkit APIs; no duplicate parser, renderer, or pixel-selection path.
  • Test Linux/Windows, malformed/large projects, external edits, storage/device failures, and wrapper-isolated playtests as applicable.
Preserved product/design specification and historical implementation notes

Parent and roadmap

Outcome

Ship installable Linux and Windows atrinik-editor targets that provide the complete safe map-editing loop on the shared content and renderer cores.

Scope

  • Add project/map open, recent files, multi-map tabs, tiled-neighbor navigation, and exact pan/zoom isometric preview.
  • Implement palette search/previews, selection, paint/erase/eyedropper/move/rectangle/fill/copy/paste/direction tools, and stacked-depth/layer visibility.
  • Add object/inventory tree, schema-driven inspector with raw lossless fallback, inline diagnostics, undo/redo, dirty state, autosave/recovery, and diff-before-save.
  • Package the editor against explicit local assets without a bundled server/client copy or Java.

Superseded path / cleanup target

Do not embed editor state or filesystem authoring in the connected client. Remove MVP-era stubs and copied UI/render logic before acceptance.

Acceptance criteria

  • A map maker can open, edit, validate, save, reopen, undo, and redo a representative map with minimal diffs.
  • Unknown fields, comments, nested inventory, authored order, and attribution survive the workflow.
  • Viewport output matches the connected client for representative scenes.
  • Linux and Windows packages start and edit maps without Java/Gridarta or mutable source-tree runtime setup.

Validation baseline

Before: the supported tree has no native maintained map editor and relies on downloaded Gridarta-era tooling.

After: a usable native map editor performs the core authoring loop through shared APIs.

Run editor model tests, startup/open/edit/save/reopen/undo/redo smoke tests, visual fixtures, package checks, and GCC/Clang/MinGW builds.

This issue is a bounded child of #13. The parent remains open until every sibling child is complete.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Fields

    Priority

    None yet

    Start date

    None yet

    Target date

    None yet

    Effort

    None yet

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions