# EDT — Godot Editor and Content Authoring ## Цель Превратить Godot Editor в единую среду расширения мира, gameplay, UI, audio и graphics с безопасным build/deploy/playtest workflow. ## EDT-1. Plugin platform - `addons/openwc_editor` регистрирует workspace, docks, inspector/import/gizmo/debugger plugins. - `_enter_tree/_exit_tree` симметричны: все controls/plugins/signals/jobs снимаются без leaks. - UI вызывает authoring application services; не пишет SQL/files/scene tree напрямую. - Editor selection отделена от runtime preview nodes. - Shared services получают context через dependency injection, не global editor singleton. ## EDT-2. Workspace and UX - World viewport, Content Browser, Outliner, Inspector, Validation, History, Build, Database, Test Center. - Search/filter/favorites/recent items и stable links между сущностями. - Multi-selection и bulk edits показывают scope/diff. - Diagnostics имеют severity/code/location/fix; double-click открывает field/node/world position. - Layout/workspace preferences сохраняются отдельно от Content Project. ## EDT-3. Commands, undo and recovery - Любая mutation — command с execute/undo/description/affected IDs. - Terrain strokes агрегируются в bounded deltas; большие операции используют snapshots/chunks. - Autosave recovery journal атомарный и имеет schema version. - External changes обнаруживаются через hashes; merge/overwrite требует решения пользователя. - Quick Fix всегда previewable и undoable. ## EDT-4. Import and asset browser - MPQ/archive browser, locale/patch source provenance и extraction jobs. - Preview BLP, DBC rows, M2 animations/materials, WMO groups/portals, ADT layers и audio. - Godot import plugins применяются только к authoring source formats, где lifecycle `.import` полезен. - Raw extracted corpus не должен вызывать неконтролируемый массовый Godot reimport. - Batch conversion использует staging, cancellation, cache hash и report. ## EDT-5. World editing - Map/tile/chunk navigation и coordinate overlays. - Terrain sculpt/smooth/flatten/noise/stamps/holes. - Texture layers, alpha painting, shading и liquids. - M2/WMO placement, snapping, transforms, doodad sets и unique ID allocation. - Creature/gameobject spawns, groups, formations, patrol/escort paths. - Areas, triggers, graveyards, teleports, taxi/transport points, sound/weather volumes. - Collision/navmesh/streaming/render-cost visualization. ## EDT-6. Data editors - Creature/gameobject templates, models, equipment, movement and text. - Item/loot/vendor/trainer/profession editors. - Quest form + dependency/progression graph + localization. - Gossip/conditions/SmartAI graph with raw representation inspector. - Spawn/pool/game event/phase editor. - Dungeon package, encounter state graph, doors/triggers/lockouts/loot. - UI/addon manifest, CVar/keybinding и audio zone configuration. ## EDT-7. Navigation - `recast-rs` optional offline backend behind navigation build interface. - Bake profiles: agent size/climb/slope/cell/region/tile parameters. - Walkability, disconnected islands, path cost, off-mesh links и dynamic door states. - Quest giver/objective/turn-in reachability; patrol/escort validation. - OpenWC cache отделён от server mmap until compatibility proven. ## EDT-8. Graphics extension tools - Material/shader profile editor с Blizzlike/Enhanced comparison. - Texture replacement/upscale overlays и mip/alpha/color-space validation. - Water/sky/weather/light preview with fixed time and reference capture. - Character/equipment/animation/attachment preview. - Spell visual/particle/ribbon authoring where formats permit. - Quality preset cost preview и automatic render checkpoint generation. ## EDT-9. Content Project - Git-friendly files, schema version, symbolic IDs, dependencies и capability requirements. - Original data referenced, never copied silently. - Overlay priority/conflict report и semantic merges. - Deterministic numeric ID allocation per server profile. - Localization bundles, scripts, client assets, tests и package manifests. - Schema migrations with backup, fixture and loss policy. ## EDT-10. Build, deploy and playtest ```text Validate → Compile → Bake → Diff → Package → Dry-run → Apply dev DB/module/assets → Start/reload core → Launch client at context → Collect logs/results → Roll back disposable environment ``` - Jobs cancellable, progress-aware and identical to headless CI services. - Production target physically/logically separated and disabled by default. - Server reload used only for tables known to support it; otherwise restart. - Playtest bundle records content/core/client revisions and profile. - One-click convenience never hides SQL/module/client artifact diff. ## EDT-11. Extensibility - `ContentTypeDescriptor`: schema, icon, inspector, validator, compiler, presenter. - `EditorTool`: selection contract, command factory, gizmo/overlay. - `BuildStep`: inputs/outputs/cache key/cancellation/diagnostics. - Plugin declares API version, dependencies, permissions and migrations. - User plugins cannot mutate production DB or original assets outside approved services. ## Best-practice gate Plugin reload clean; undo/save/reload deterministic; long jobs do not block Editor; preview nodes disposable; every deployment reproducible headless; common scenarios require no manual SQL.