tools architecture
Guide for tools architecture
Architecture: Legends Tools Suite
🎯 Overview
We will implement two distinct tools sharing a common core library. This ensures code reuse while tailoring the UX for specific roles (Artists vs. Level Designers).
🏗️ Architecture
1. Shared Core (loh-editor-core)
Location:
loh-libs/rust/editor-core/
Purpose: Common UI widgets, camera controls, asset loading, and manipulation logic.
Components:- AssetBrowser: Universal GLB/Texture viewer with drag-and-drop.
- Gizmos: Transform controls (Translate, Rotate, Scale).
- CameraRig: RTS-style and Free-roam camera logic.
- Save/Load: JSON serialization for scene data.
2. Storyboard Tool (bin/legends_storyboard)
Target Audience: 3D Artists, Directors.
Focus: Visuals, Sequencing, Posing.
Exclusive Features:
- Pose Puppet: FK/IK controls for character bones.
- Timeline: Shot sequencing (Shot A -> Shot B).
- Render Capture: High-res screenshots and "Play Blast" recording.
- Lighting Studio: HDRI and light rig adjustments.
3. World Designer (bin/legends_world_designer)
Target Audience: Level Designers.
Focus: Terrain, Zones, Gameplay placement.
Exclusive Features:
- Terrain Sculpting: Heightmap brushes.
- NavMesh Generation: Walkable/blocked tile flagging.
- Zone Painter: PVP safe/danger zones.
- Entity Spawners: NPC and Item spawn points.
🛠️ Implementation Plan
Phase 1: The Core (Dependencies)
- Create
loh-editor-corecrate. - Move existing
cam_orbit.rsandcamera.rslogic here. - Implement
bevy_eguibase layout.
Phase 2: Storyboard Tool (Priority for Artists)
- Create
src/bin/storyboard.rs. - Implement Asset Browser (using
editor-core). - Implement Timeline UI.
Phase 3: World Designer
- Create
src/bin/world_designer.rs. - Implement Tile Painter (using
editor-coregrid).