7 Commits

Author SHA1 Message Date
sindoring 5565858e35 Add quest authoring and scoped NPC questgiver migrations
Create and update quest drafts through shared Save, Undo, Export and Play workflows. Guard quest baselines and NPC references before generating content writes. Enable questgiver flags for an entire template or clone a simple template to isolate one selected spawn.

Validated on Windows x64: formatting, workspace Clippy, 53 passing tests, release build and UI capture. MariaDB temporary-table checks cover both scopes, drift rejection and idempotency; persistent table checksums remain unchanged. Manual in-game quest completion remains open.

Co-Authored-By: Codex <noreply@openai.com>
2026-11-04 21:22:56 +04:00
sindoring f8d242977d Make editor installation independent of the developer machine
Add a project launcher, per-user settings and Play state, explicit env import, pinned Git engine dependencies and a Windows distribution script.

Validated on Windows x64: formatting, workspace Clippy, 41 tests, local realm security test and release launches outside the repository with profile preservation.

Co-Authored-By: Codex <noreply@openai.com>
2026-11-04 16:39:47 +04:00
sindoring eabfbb8a88 Editor panels: catalog, inspector, changes
egui panels (bevy_egui 0.39, the release for Bevy 0.18; its Ubuntu font carries Cyrillic) replace
the bevy_ui status text, whose font had none:

- Catalog: creature_template searched by Russian or English name or entry at patch 10; a row
  picks the brush.
- Inspector: the selected spawn's position, facing in degrees, respawn, movement, wander radius,
  patches and preview display. A drag or a typed value is one undo step. `.go xyz` copies.
- Changes: the pending rows, save, the server check, and export into EDITOR_EXPORT_DIR, refused
  while the server conflicts with the project.

The world's input leaves a click on a panel and a key typed into a field alone. Export and the
server check move into editor-vmangos::export, which the CLI now runs too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 12:52:05 +04:00
sindoring e8fa8011a2 Release manifest schema 1
The contract between the editor, the server build and the launcher: the complete set of non-stock
artifacts a release runs with, each with its consumers and the release that introduced it, so a
server build fetches everything from one manifest and never a client-only file. Migrations are
pinned by hash in the core checkout; binaries live under releases/<introducedIn>/, never
rewritten. `manifest-check --previous` refuses a release that drops or rewrites an inherited DBC.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 00:53:25 +04:00
sindoring 148692f796 Read local settings from .env
WOW_DATA and EDITOR_WORLD_DB come from a git-ignored .env at the repository root, so the database
password is not retyped per shell. Variables already set override it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 00:36:49 +04:00
sindoring 9ddc3acfeb Read the world database; hand out guids from the top of the range
The core gives `.npc add` and temporary creatures guids above MAX(creature.guid), so allocating
upward put the server's own spawns in the guids a project takes next. Counting down from the top
makes the range's last guid that maximum after the first export.

With EDITOR_WORLD_DB set, `check` and `export` compare the server's rows in the range with the
project and refuse on a conflict, and the editor takes the brush's display and name from
creature_template.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 00:09:04 +04:00
sindoring eda3124f1b Initial R0 prototype: project model, vMaNGOS migrations, CLI, editor window
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 23:49:53 +04:00