5.6 KiB
5.6 KiB
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-rsoptional 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
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.