Editor Main Toolbar
Renders the editor's main toolbar with edit mode buttons, transform snapping controls (grid/rotation/scale), camera speed slider, time-of-day slider, terrain snap settings, and configurable edit mode
Renders the editor's main toolbar with edit mode buttons, transform snapping controls (grid/rotation/scale), camera speed slider, time-of-day slider, terrain snap settings, and configurable edit mode sets.
Module Overview
| Aspect | Detail |
|---|---|
| File | extensions/editor/mainToolbar.lua |
| Returns | M table |
| Dependencies | core_environment |
| Window | mainToolbar |
| Requires | ui/imguiUtils |
Public Functions
| Function | Description |
|---|---|
M.onEditorGuiToolBar | Renders the toolbar each frame |
M.onEditorInitialized | Registers toolbar window, loads edit mode sets from JSON |
M.onEditorPreferenceValueChanged | Responds to preference changes |
M.onEditorSaveState | Saves toolbar state |
M.onEditorLoadState | Loads toolbar state |
Toolbar Features
| Feature | Description |
|---|---|
| Edit Mode Buttons | Switchable mode buttons with icons (Object, Terrain, Road, etc.) |
| Edit Mode Sets | Named presets of mode button visibility - save/load/delete custom sets |
| Grid Snap | Configurable grid snap values: 0.1, 0.2, 0.25, 0.5, 1, 2, 3, 5, 10, 15, 20 |
| Rotation Snap | Snap angles: 5°, 15°, 22.5°, 45° |
| Scale Snap | Scale snap values via combo widget |
| Terrain Snap | Toggle terrain snapping with offset settings |
| Camera Speed | Slider for editor camera movement speed |
| Time of Day | Slider for environment time-of-day adjustment |
| Play/Pause | Vehicle action map toggle for play mode |
Edit Mode Sets
-- Stored in settings/editor/editModeSets.json
editModeSets = {
{name = "Default Set", modes = {}}, -- Default shows all modes
{name = "Custom Set", modes = {
{name = "Object Tool", key = "objectTool"},
{name = "Terrain", key = "terrain"},
}}
}| Function | Description |
|---|---|
addEditModeSet(name) | Creates a new named mode set |
deleteEditModeSet(index) | Deletes a set (cannot delete "Default Set") |
saveModesToSet() | Saves current visible modes to the active set |
Snap Configuration
-- Grid snap presets
local gridSnapWidgetsComboItemsTbl = {"0.1", "0.2", "0.25", "0.5", "1", "1.5", "2", "2.5", "3", "4", "5", "10", "15", "20"}
-- Rotation snap presets
local rotateSnapWidgetsComboItemsTbl = {"5", "15", "22.5", "45"}Settings Persistence
| Path | Content |
|---|---|
settings/editor/editModeSets.json | Edit mode set definitions and selected index |
Module Variables
dependencies(table) - Module variable.
Functions
onEditorGuiToolBar()
Callback for editor gui tool bar event.
onEditorPreferenceValueChanged(path, value)
Callback for editor preference value changed event.
path(string)value(any)
onEditorSaveState(state)
Callback for editor save state event.
state(any)
onEditorLoadState(state)
Callback for editor load state event.
state(any)
Returns: self
Additional Exports
M.dependencies
See Also
- Editor AI Tests - Related reference
- Editor AI Visualization - Related reference
- Editor – Assembly Spline Tool - Related reference
- World Editor Guide - Guide
Editor Main Menu
Manages the editor's main menu bar, notification system, window menu organization, layout management UI, and scene metrics display. Depends on `editor_layoutManager` for layout persistence.
Editor Main Update
Core per-frame update loop for the editor. Drives edit mode updates, object icon rendering, preference broadcasting, gizmo rendering, GUI presentation, and collision rebuild checks.