How kleberholtz/object-builder works
Object Builder is a native OTClient object editor. Users open or configure a client or project, browse and edit objects and sprites, then save or export the result. The graph separates the React workspace and editing features from the Tauri command boundary and Rust domain, codec, rendering, and persistence layers. README statements support the documented save, import/export, optimization, and sprite-management branches; some internal call paths are not shown in the excerpts, so those links are omitted.
Main entry points: mod.rs Tauri commands · App.tsx Main workspace · Inspector.tsx Object inspector · history-store.ts Undo history
Components 23
Workspace UI
- Main workspace
src/App.tsx - Project launcher
src/features/project/ProjectLauncher.tsx - Event log
src/components/layout/LogPanel.tsx
Object Editing
- Object browser
src/features/objects/ObjectBrowser.tsx - Object inspector
src/features/objects/Inspector.tsx - Sprite canvas
src/features/sprites/SpriteCanvas.tsx - Animation film roll
src/features/film-roll/FilmRoll.tsx - Sprite manager
src/features/sprites/SpriteManagerDialog.tsx - Sprite preview
src/features/sprites/SpritePreview.tsx - Optimization UI
src/features/project/OptimizeDialog.tsx - Export dialogs
src/features/objects/ExportObjectDialog.tsx - Web export UI
src/features/project/WebExportDialog.tsx
Rust Core
- Tauri commands
src-tauri/src/commands/mod.rs - Object domain model
src-tauri/src/core/models.rs - DAT SPR OTFI codecs
src-tauri/src/formats - Sprite rendering
src-tauri/src/sprites/mod.rs - Project persistence
src-tauri/src/project/mod.rs - Core history
src-tauri/src/history/mod.rs
Application State
- Project state
src/stores/project-store.ts - Editor state
src/stores/editor-store.ts - Undo history
src/stores/history-store.ts - Log state
src/stores/log-store.ts
Other components
- Editor user
Connections 30
- Editor user → Project launcher: opens project
- Editor user → Main workspace: edits objects
- Project launcher → Tauri commands: loads project
- Main workspace → Object browser: shows objects
src/App.tsx - Main workspace → Sprite canvas: shows canvas
src/App.tsx - Main workspace → Object inspector: shows inspector
src/App.tsx - Main workspace → Animation film roll: shows animation
src/App.tsx - Main workspace → Event log: shows logs
src/App.tsx - Object inspector → Undo history: records edits
src/features/objects/Inspector.tsx - Sprite canvas → Undo history: records edits
- Animation film roll → Undo history: supports undo
- Sprite manager → Tauri commands: queries usage
src/features/sprites/SpriteManagerDialog.tsx - Sprite manager → Sprite preview: previews sprites
src/features/sprites/SpriteManagerDialog.tsx - Sprite preview → Sprite rendering: requests renders
- Sprite canvas → Sprite rendering: requests renders
- Tauri commands → DAT SPR OTFI codecs: reads and writes
- Tauri commands → Object domain model: operates on
src-tauri/src/commands/mod.rs - Tauri commands → Sprite rendering: renders images
- Tauri commands → Project persistence: persists projects
- Tauri commands → Core history: supports mutations
- DAT SPR OTFI codecs → Object domain model: decodes records
src-tauri/src/formats/dat/mod.rs - Optimization UI → Tauri commands: analyzes candidates
- Export dialogs → Tauri commands: exports objects
- Web export UI → Tauri commands: publishes sprites
- Main workspace → Project state: uses project state
src/App.tsx - Object inspector → Project state: reads project
src/features/objects/Inspector.tsx - Object inspector → Editor state: reads editor state
src/features/objects/Inspector.tsx - Undo history → Project state: updates objects
src/stores/history-store.ts - Event log → Log state: reads events
src/components/layout/LogPanel.tsx - Tauri commands → Event log: streams events