4
Editor
Simian CI edited this page 2026-03-12 20:31:05 +00:00
Editor Overview
This document outlines the in-app editor UI, its panels, and common workflows.
Launching the Editor
- Start the app with the editor flag enabled.
- The editor UI appears as dockable panels around the Game Window.
Layout
- DockSpace host with a top menu bar.
- You can drag and drop to move panels around.
- Panels: Game Window, Scene, Assets, Inspector, Log Viewer.
Menu Bar
Game
- Quit: request a clean shutdown.
Scene
- New: clear the current scene.
- Load: load a scene from a TOML-like file path.
- Save As: save the current scene to a file path.
View
- Toggle Log Viewer, Scene, and Inspector panels.
- Toggle Assets panel.
Game Window
- Renders the current scene view.
- Resizes with the available docked panel space.
Scene Panel
- Displays the entity hierarchy as a tree.
- Drag and drop entities to re-parent.
- Drop on the bottom target to clear parent.
- Create Entity and Delete Selected controls.
Inspector Panel
- Shows components for the selected entity.
- Add Component dropdown lists only components not yet on the entity.
- Remove buttons appear on removable components.
Components
- Tag: rename the entity.
- Transform: position, scale, rotation (degrees in UI).
- Velocity: linear and angular velocity.
- Model Renderer: model id, shader id, color, outline.
- Texture: texture id.
- UV Transform: scale, offset, rotation (radians).
- Script: per-entity script path and enabled toggle.
- Camera: position, target, up, FOV, projection, helper actions.
- Light: direction, color, intensity, helper presets.
- Material: material id.
- Render Pass: order, depth flags, shader id.
- World Transform: read-only computed transform.
Assets Panel
- Browse loaded textures, shaders, models, and materials.
- Load assets by key and path, or create primitive models.
- Unload assets by key.
Log Viewer
- Shows engine log output in real time.
Shortcuts
- Ctrl+Q: Quit
- Ctrl+L: Toggle Log Viewer
- Ctrl+N: New Scene
- Ctrl+O: Load Scene
- Ctrl+S: Save Scene
Notes
- Scene Save and Load use file path text fields.
- Components can be assigned via asset keys in the inspector; numeric IDs remain as a fallback.
- World Transform is computed from hierarchy and local transforms and is read-only.
- UV Transform values are passed as shader uniforms
uvScale,uvOffset, anduvRotationwhen present.
Scene Scripts
- Scene scripts are loaded by the scene system and run once per scene.
- The editor lets you set a scene-level script path in the Scene panel.
- Preferred scene callbacks:
SceneInit(),SceneUpdate(float dt),SceneShutdown(). - Legacy callbacks still work:
Init(),Update(float dt),Shutdown().
ScriptComponent
- ScriptComponent runs a per-entity script module.
- Set the script path in the Inspector and toggle enabled.
- Preferred callbacks:
EntityInit(uint entity),EntityUpdate(uint entity, float dt),EntityShutdown(uint entity). - Legacy callbacks still work:
Init(uint entity),Update(uint entity, float dt),Shutdown(uint entity). - Subject to change