host library

Everything in this package, for the editor that hosts modules: the registries a module never fills itself, how the scope is built, and the parts of the services modules are not shown. A module imports just_editor_core.dart instead.

Classes

AddComponentCommand
Adds a component to an entity.
AddComponentPicker
An expandable in-place panel that lets the user search for and add a component to the currently selected entity.
Array3DSpec
The 3-D designer's Array: how many copies of the selection, laid out how. Counts include the original.
ArrayStep3D
One copy an array makes, as a change to the original: turned by turn about about (its position, and its own turn when turnsItself), then moved by move.
AssetAction
Something a module offers to do with a file in the Assets dock.
AssetDrop
A file dropped on the viewport, for AssetKind.drop.
AssetEntry
One file or folder under the project's assets.
AssetIndex
Every file under a project folder, kept current as the disk changes.
AssetKind
What a file is, as far as the editor cares: how the asset browser draws it, what it can be filtered by, and what dropping it on the viewport makes.
AssetKinds
The kinds of file one editor knows: the modules' first, newest first, then the editor's own.
AssetRefEditorRow
A project file picked by path: a box showing the path that opens a searchable list of the files with one of extensions under assets/ (and the installed packages' as packages/<name>/…). A file dragged from the editor's asset browser can be dropped on the box.
AssetReferences
Which files mention an asset, and rewriting them when it moves.
AudioDrop
What an audio file dropped on the viewport becomes, and the source the editor's sound prefabs place.
AxesFieldRow
A vector on one row: the field's label, then a scrubbable cell per axis — Position X [ 0.0 ] Y [ 0.0 ]. Each cell's letter is its drag handle, in the axis colour the gizmos use.
BoolEditorRow
An on/off field: a checkbox and "On" or "Off" in a box; a tap flips it.
BuiltInTools
Ids of the tools the editor itself provides.
CallbackCommand
A command built from two closures, for actions simple enough that a named class would be noise.
CameraSyncingView
A view that puts its own framing on the camera when it is shown — the 3-D view its orbit — rather than leaving the camera flat, as the 2-D view does.
CollectionEditor
Edits a list or a map field as rows, not as JSON.
ColorEditorRow
A colour field: a swatch and its hex code (or "Gradient") in a box that opens the editor's colour picker when tapped. With supportsGradient the picker offers gradients, and a tint over them, as well as a solid colour.
CommandContext
What a command is handed when it runs.
CommandRegistry
The commands one editor knows and the keys that run them.
CommitTextField
A text field that keeps what was typed when Enter is pressed or when it loses the focus — Tab, a click anywhere else — the one rule every typed field in the editor follows, and shows a value changed from outside, an undo say, whenever it is not being typed in. Esc puts back what was there and leaves the field.
ComponentDrag
What a drag carries: which component of which entity.
ComponentDragGrip
The grip at the left of a card's header: drag it to move the card. The inspector scrolls while it is held at the panel's top or bottom edge.
ComponentDropZone
A card a dragged one can be dropped on: above it in its top half, below it in its bottom half, a line showing which. A pinned card takes a drop only below it — nothing goes above it.
ComponentEdit
An edit of components made by code — a handle dragged, a collider fitted, a preset applied — recorded as one undo step of every saved field it changed, whatever those were. Several components edited together — a shape's size and where its entity stands, so one face stays put — are still one step.
ComponentEditorExtras
Editor-only additions to how one component type is inspected, keyed by its definition's type.
ComponentEntry
A single entry in the component picker catalogue.
ComponentExtrasRegistry
The extras registered with one editor, merged per type.
ComponentFieldCommand
Changes one field of one component, using the editor descriptor's own read/write closures.
ComponentPlacement
One card's place among the cards shown for its entity, and the moves it can make. shown is the movable cards' types, in order.
ComponentPlaceMenu
The ⋮ on a card's header: the moves, for the keyboard and for a place further than a drag comfortably reaches.
CompositeCommand
Several commands performed as one undo step.
CreateEntitiesCommand
Creates entities from component JSON, and destroys them again on undo.
DefinitionSection
The inspector for one component: header from its hints, a control per field from the scope's editors, and whatever extras the editor adds.
DeleteEntitiesCommand
Destroys entities, and rebuilds them from their captured state on undo.
Designer3DState
How the 3-D Level Designer is set up to build — the working plane it places on where nothing else is under the pointer, and whether that plane keeps to the selection — and how its view draws the scene: the view mode, the selection's outline, a slice.
DesignerCanvas
Drawing helpers for everything painted onto the level designer's viewport.
DesignerCommand
Something the editor can do on request: from a key, a menu, a module's own button. Identified by id so a binding can name it.
DesignerConfig
The designer's tunables: which grid sizes the status bar offers, which brush sizes [ and ] step through, how many camera bookmark slots the digit keys address.
DesignerGeometry
Geometry helpers shared by the designer's tools and painter.
DesignerGuide
A horizontal or vertical alignment guide.
DesignerOverlay
Something drawn over the level in the designer viewport.
DesignerSession
The Level Designer while it is open, as a module sees it: what its status-bar controls, side-panel sections and saved designer data are handed, and what a command run from the designer gets.
DesignerToolContext
What a tool needs from the designer session it belongs to.
DockBadge
The small marker on a dock's tab: a count, a dot for "something new".
DockContext
What a dock's content is built with.
DockDefinition
A dock in the bottom panel: a tab beside the built-in ones (Console, Assets, Timeline, Profiler, World…).
DockMemory
What a dock remembers between launches: its filters, its view mode, which folders were open. Small JSON-able values by key.
DockReadout
A fact a module's dock puts on the status bar: a live value that is always in view — Waves 3 left — and a button to its dock, opened with openArgs.
One text value out of a list, as an EditorDropdown whose entries read as the values themselves.
EdgeInsetsEditorRow
Space around something, as four numbers on one row.
EditorAlert
A small dialog in the editor's look: a title, what it is about, and the buttons — the one to press last and filled.
EditorBadge
A small status pill: tinted with its accent rather than filled with it.
EditorButton
A button with words on it, in the editor's colours whatever the ambient Material theme is.
EditorCard
A raised, bordered block of related things.
EditorChip
A filter or a switch that says how many things it would show: Errors 3. Lit while selected.
EditorChoice<T>
What the menu pops with. A wrapper, because a popup treats a null result as "dismissed" and a dropdown's value may legitimately be null-like.
EditorChromeState
What the editor's chrome remembers while it is open, per editor: the dragged width of the right panel and its tab, whether the settings dialog is open, which inspector cards and groups are folded, and the performance history the docks chart.
EditorCommand
One reversible editor action.
EditorDialogFrame
The frame the editor's big dialogs share — the sprite editor, the interface and tileset editors, the settings: the editor dimmed behind, and the dialog over it with room to spare at the edges, so opening one does not feel like leaving.
EditorDivider
A hairline between regions.
EditorDropdown<T>
The editor's dropdown: a field the same height as the text and number fields beside it, opening a compact list directly below.
EditorDropdownOption<T>
One choice in an EditorDropdown.
EditorEmptyState
What a panel shows when it has nothing to show, and what to do about it.
EditorHistory
The editor's undo/redo stack: one for the whole editor (the scope's), the Level Designer included.
EditorHistoryMark
An EditorHistory as it was at one moment (EditorHistory.mark), to go back to (EditorHistory.restore).
EditorIconButton
A small square icon button — the editor's one.
EditorKeyClaim
Keys a focused panel keeps for itself, ahead of the editor's shortcuts.
EditorKeys
The keyboard as the platform has it, in one place: which modifier the editor's shortcuts are made with, what it is called, and which keys delete.
EditorLogConstants
Limits of the editor's log: the lines it keeps and the file it writes.
EditorLogEntry
One line of the editor log: what the Console dock lists, and one JSON line of the saved log file.
EditorLogService
The editor's log: what the Console dock lists.
EditorLogStorage
Where the editor log's lines are kept between runs.
EditorLook
The editor's ambient look for what is under it: its text at the size and weight the settings ask for, motion as they allow, and one style of tooltip.
EditorMarker
A small icon the viewport draws at every entity of a kind, selected or not, so things with nothing to draw can be found at a glance: a camera, a spawn point, a light.
EditorMessenger
Wraps the editor overlay and provides EditorSnackBarController to the subtree; EditorSnackBarLayer draws what it holds.
EditorMetrics
The editor's sizes as the settings make them: radii from the corner radius, gaps from the density, durations from the animation speed — and the accessibility settings over all of them: bigger targets, no motion, longer timings.
EditorModule
Everything a project contributes to the editor, in one place.
EditorModuleContext
What a module is handed when it registers.
EditorPrefs
One editor's persisted preferences: the built-in overlay settings, typed, and an open set of keys for whatever a module wants to remember.
EditorScene
A scene's name and how it is authored — the name and mode a scene file keeps beside its entities.
EditorSceneState
The authoring state of the open EditorScene: selection, dirtiness, the order of the top-level entities, and the transform edits the gizmos and the inspector make on the live ECS world (Entity/TransformComponent).
EditorScope
Everything one editor owns: its registries, services and state, in a just_di container that is disposed with it.
EditorScopeProvider
Makes an EditorScope available to a widget subtree.
EditorScrollbar
A scroll bar that is always there when a list holds more than it shows.
EditorSearchField
A compact search box. onChanged fires as the text changes; the clear button empties it.
EditorSectionHeader
The uppercase caption over a group: LAYERS, MODULES.
EditorSegmented<T>
One of a few: the choices side by side, the picked one lit. Narrower than its labels, the choices share what there is.
EditorSlider
A continuous value: a slider to drag, and the number beside it to type.
EditorSnack
One snackbar that has been shown and not yet dismissed, with what it has heard from its task so far. Each keeps its own subscription and timer, so showing or minimising another never cuts its task off.
EditorSnackBarController
The snackbars of one editor: shows, minimises and dismisses them.
EditorSnackBarEntry
Data object describing a snackbar to show.
EditorSnackBarLayer
The snackbars showing, stacked newest at the bottom. Drop it in a Stack, positioned against the corner of the canvas it should sit in.
EditorSnackBarStep
A single step update emitted into an EditorSnackBarEntry.progressStream.
EditorSwatches
Round colour swatches, the picked one ringed.
EditorTheme
The editor's colours by name, each read from the palette the overlay last applied (current).
EditorThemeData
The editor's palette as a value, so it can change while the editor runs.
EditorThemeScope
Provides the current EditorThemeData to a subtree; rebuilds dependents when the controller changes.
EditorToggle
On or off: a small switch that takes the keyboard like a button.
EditorToolbar
A row of controls along the top of a dock, a panel or a dialog.
EditorToolButton
A toolbar's tool: bigger than an icon button, with the key that picks it in its corner — because the keys are what anyone doing this repeatedly will use; the buttons are for finding them. The tool in hand is filled and has a bar down its left edge.
EditorView
How the editor sees the scene: what it looks at, how close, and how to get between the screen and the world.
EditorViewState
One editor's view-only state: the entities hidden in the viewport and locked against picking, the entity the inspector is pinned to, and the selection's gizmo.
EntityIcon
An icon for an entity in the scene tree and the inspector's header, when a module knows better than the generic one.
A read-only list of references to other entities, shown by name and clickable, instead of as the ids the engine stores.
EntityPicker
Finds what is under the pointer, seen through an EditorView.
EntityProtectionRule
A module's say on which entities must not be deleted: EditorScope.isProtected is true for an entity any rule protects.
EntityRayTest
Knows the real shape of some entities — a 3-D model's triangles — so a pick lands on what is drawn, not on its box. Modules offer these (EditorModule.pickTests).
EntityRenameBox
An entity's name, while it is being typed: Enter or a click elsewhere takes it, Escape throws it away. The scene tree's rows and the inspector's header both rename with it.
EntitySnapProvider
Snaps edges and centres to other entities and ruler guides.
EntitySpec
Name plus serialized components — enough to rebuild one entity — and where it goes in the tree.
EntityStateCommand
Rewrites entities in place between two captured states.
EntitySurfaceTest
Knows where a ray meets some entities' real surface and which way it faces there — a model's triangles, a 3-D shape's — so something placed on a slope or a ball sits on it, not on its box. Pick tests that know an entity's triangles offer it too.
EntityVertexSource
Knows the corners of some entities' real shape — a model's vertices, a 3-D shape's — so a move can put one thing's corner on another's (hold V while dragging). Pick tests that know an entity's triangles offer it too.
FieldAccessory
Something the inspector puts beside a component's fields, and tells of each edit made through them — the timeline's key button, which records what is changed while a timeline is open.
FieldAccessoryContext
One row of a component's fields, as a FieldAccessory is shown it.
FieldEditorContext
Everything a field editor is given: the field, its hint, the live value, and how to write it back.
FieldEditorRegistry
Which control edits which jge.FieldType, by type id.
FocusOutline
An accent ring around child while something in it has the keyboard.
GameCameraEditorView
The 2-D editor view: the engine's main camera, driven directly while the editor authors (the brain is told not to).
GettingStartedTip
A line a module adds to the start card, the guide shown over the viewport while no scene is open: how to work with what the module brings. One sentence, or two short ones.
GizmoConstants
The sizes and colours of the move, scale and rotate gizmos, shared by the editor's drawing (GizmoPainter, TransformGizmo) and hit-testing (GizmoHitTester) so what takes a press lines up with what is drawn.
GizmoModeSettings
The gizmos of one GizmoMode: shown or not, and the kinds turned off within it.
GizmoSettings
The gizmos of every GizmoMode, each its own.
GridSnapProvider
Snaps the rectangle onto the grid: its top-left corner for squares, its centre for hexes — whatever the topology's GridTopology.snapRect does.
GridTopology
The shape of the cells the designer paints, snaps and fills on.
GroupCommand
Puts entities inside a new group entity.
HandleClick
A click on a ViewportHandle that did not drag.
HandleDrag
Where the pointer is in a drag of a ViewportHandle.
HandleDragSession
One drag (or click) of a ViewportHandle at a time: the handle under a press, the drag handed to it, and what it changed in its component recorded as one undo step when the press ends.
HierarchySlot
Where an entity sat: its parent (by id) and its place among its siblings, or among the roots.
InspectorAction
A button in a component's inspector header.
InspectorField
The inspector's field look: the label column, the box every control is drawn in, and the type in and beside it.
InspectorSection
A section a module adds to the inspector, after the component sections.
KeyBinding
A key chord that runs a command.
KeyCap
A key as it is printed on a keycap: Ctrl+Shift+Z.
LayerPreset
A named draw-order layer the designer offers.
LayerPresetRegistry
The layers available in the designer.
LevelAids
What a game kit knows about how its levels are played, for the Level Designer's aids: how its player moves (movementOf), below what height things are lost (killHeight), and how a play-test starts from a point (playFrom). A module offers one (EditorModule.levelAids); every module's is asked, whichever designer is chosen — it describes the game, not the tools.
LevelDesignerController
Live state for the Level Designer workspace.
LevelToolHandler
A viewport tool: something that interprets pointer drags as an edit.
LivePreview
A value shown in the scene for a while without being recorded — what a colour picker writes while it is open — and then put back.
MapLayerTreeItem
A layer of a level map.
MapTreeItem
A row of the tree that is part of a level map rather than an entity: one of its layers.
Material2DWorkspaceView
A 2-D material window, for what modules add to it.
Material3DWorkspaceView
A 3-D material window, for what modules add to it.
MiniColorField
A bare colour swatch that opens the colour dialog: the same box, no label column.
MinimizedSnacksChip
The status strip's word on minimised snackbars: the latest one's title, how many there are, and a click to bring them back.
MiniNumberField
A bare number box: the inspector's field box with no label column. Kept on Enter, Tab or a click elsewhere; text that is not a finite number puts back the value it had.
MiniTextField
A bare line of text: the same box, no label column. Kept on Enter, Tab or a click elsewhere, as every typed field is.
ModifierKeys
The modifier keys held during a pointer gesture or a key press.
ModuleRegistry
The modules registered with one editor, and how their contributions reach the editor's registries.
MovementProfile
How a game's player moves, as far as a level's shape goes: how high and how far a jump carries it, how steep a slope it walks up, how high a step it takes. What the Level Designer's aids draw from.
NumberScrubConfig
Drag-to-scrub configuration for numeric inspector fields: how far a drag moves the value, how it is written, and the limits it is kept within.
OffsetListEditorRow
A list of points — a polygon's or a chain's vertices — as an x and a y box per point, a remove button on each, and "Add point" under them.
OpenWorkspace
A workspace that is open, and the file it was opened on.
OverlayLayout
Sizes of the overlay's frame, in logical pixels.
OverlayOrder
Conventional DesignerOverlay.order values for the built-in overlays, so a project can slot its own overlay into the right depth without guessing.
OverlayPaintContext
Everything an overlay needs to draw itself.
OverlayPointerContext
What an interactive overlay is given for a pointer event on the canvas, in screen space.
OverlayRegistry
The overlays available in the designer.
OverlaySettingsPrefKeys
The keys the editor's own settings are kept under in its key-value store, one for each field of OverlayUiSettings, and the keys of what it keeps of the last session.
OverlaySettingsStore
The editor's settings in its key-value store: OverlayUiSettings under the OverlaySettingsPrefKeys, each as text, beside the raw keys modules keep through EditorPrefs. Also turns the settings into an exported file and back.
OverlayUiSettings
The editor's own preferences: how its chrome looks, how it can be made easier to use, how the viewport draws and snaps, how scenes are kept safe, and the keys that run its commands. Persisted by the settings store; modules keep theirs as SettingPrefs beside it.
PackageAssetPaths
Where asset paths live on disk.
PackageAssetRoot
A package whose assets a project can use, as packages/<name>/….
PathBinding
Tells PathTool which component on an entity owns a path, and how to read and write it.
PathTool
Edits a component's waypoint path directly on the canvas.
PendingFieldEdits
The typed fields that have the keyboard, and what each keeps.
PerfHistorySample
One frame's performance, as EditorChromeState.recordPerfSample took it from the debugger, for the docks' charts.
Placement3D
How something placed in 3-D is set down: turned upright or to stand on the surface, spun about its up, sized, and lifted so that its lowest point touches the surface, its middle over the point.
PlacementRoll
The random part of the next placement — a turn about its up and a size — rolled ahead, so the preview shows exactly what a click makes, and rolled again after each one.
Point2
Integer grid coordinate.
PrefabCategory
A palette group, with where it sorts. Prefabs name their category by label; a category nobody declares sorts after the declared ones.
PrefabColours
The colours the editor's own prefabs come in, by what they are for — for a module's prefabs to sit beside them.
PrefabDefinition
A ready-made entity the Level Designer can stamp into a level.
PrefabFavourites
The prefabs an author has marked as favourites, listed first in the palette. Per user, kept in the editor's preferences, by prefab id.
PrefabOrigin
What a prefab instance records on an entity it made, which no codec saves: its link (PrefabLink) — the instance's top entity and where in the prefab this one is — and, on the top, the instance as loaded (PrefabInstanceComponent).
PrefabRegistry
The palette of prefabs available in the Level Designer.
PrefabVariant
Another way to offer prefabs that are already there: each prefab it appliesTo is offered again with extra components added — a physics module's "Solid" and "Trigger" of every shape another module offers, without either knowing the other.
ProblemFix
A way to put a problem right in one click — Use "player". Each one is an ordinary edit: it goes on the undo stack like any other.
ProjectColours
The palettes and gradients a project keeps, and the colours this user picked lately — one ColourLibrary for every colour picker in the editor.
ProjectFiles
Writing, moving and naming the project's files safely.
ProjectPhysicsLayers
The project's collision layers — their names, colours, descriptions and which collide — from the project's layer file (jge.PhysicsLayers.defaultPath).
ProjectTags
The tags a project knows, from three places:
RayEntityPicker
Picks in 3-D: the view's ray through the pixel (EditorView.screenToRay) against each entity's box in space, nearest first, each hit then checked against its real shape when an EntityRayTest knows it.
RayTriangleHit
Where a ray met a triangle list: how far along it (t, in units of its direction) and which way the triangle faced there.
RayTriangles
Rays against triangle lists: what a pick test that knows an entity's real shape — a model's mesh, a 3-D shape's — measures with.
ReadonlyRow
A label and a value that cannot be edited: the same box as the other rows, unfilled, with the value in quieter text.
RemoveComponentCommand
Removes a component from an entity.
RenameCommand
Renames an entity.
ReorderCommand
Moves one entity among its siblings, or among the roots.
ReorderComponentsCommand
Puts an entity's components in a new order — a card dragged, or moved from its menu, in the inspector. The order is the entity's (Entity.reorderComponents): what the inspector lists and what the scene saves; the game finds components by type, so it runs as before.
ReparentCommand
Moves entities to a new place in the tree, as one undoable step.
SceneCodec
Encodes and decodes components for one editor, through the engine's definition registry.
SceneModeFilters
What an editor shows in each scene mode — one place, so the inspector, the timeline and the pickers agree.
SceneProblem
Something wrong with the open scene, said in words an author can act on.
SceneStore
Reads and writes the project's scene files.
SceneSummary
A scene as the Scenes list shows it, read from its file.
SceneTree
The rows to draw, and where the runtime section begins.
SceneTreeAction
An entry a module adds to an entity's context menu in the scene tree, offered too in the viewport's menu for an entity under the pointer.
SceneTreeModel
Works out the scene tree's rows from a world: build.
SceneTreeRowButton
A small button at the end of a row: the eye, the padlock, the swatch.
SceneTreeRowDecoration
Something drawn at the end of an entity's row in the scene tree: a badge, a toggle.
SceneTreeRowTile
An entity's row in the scene tree: its on-in-the-game box, the indent and chevron, its icon and name (or the rename box), any trailing badges, and its mark, eye, pin and menu buttons. Each button shows only when its callback is given.
ScrubbableNumberField
A number box whose label is its drag handle: drag the label sideways to scrub the value by the config's step, or type a number and keep it with Enter, Tab or a click elsewhere. Esc, with a change typed, puts back what was there; text that is not a finite number is refused the same way.
ScrubFieldRow
One number with its label as a drag handle (a ScrubbableNumberField): drag the label sideways to change it, or type a value and keep it with Enter, Tab or a click elsewhere.
SelectionHandleLayout
Where the select tool's handles sit and how they feel, in screen pixels.
SetEnabledCommand
Whether an entity is on or off in the game.
SettingPref<T>
A preference a module keeps in the editor's settings store, typed.
SettingRange
A setting's allowed range, for the dialog's slider and for clamping a stored or imported value as it is read.
SettingsSection
A page a module adds to the editor's settings dialog, listed under Modules in its sidebar. Read and write your own SettingPrefs through EditorPrefs.
SidePanelSection
A collapsible section a module adds to the designer's side panel, under the built-in ones.
SliderFieldRow
A number between two limits as a slider, with the value beside it to type: for a setting whose range matters more than its digits.
SmartSnap
Snapping to other entities rather than to the grid.
SnapGuide
An alignment the moving selection snapped to, drawn as a guide line.
SnapProvider
One way of snapping. Providers are asked in descending priority; the first to answer for an axis wins that axis.
SnapRequest
What a tool asks when it wants something snapped.
SnapResolver
The providers of one session, resolved by priority.
SnapResult
How far to shift a moving rectangle so it lines up with its neighbours.
SpaceContext
What a 3-D tool knows of the pointer, besides what every tool does: the ray through it, what that ray meets, the working plane it builds on and how it snaps.
SpacingGuide
The gap between the selection and its nearest neighbour on one side.
SquareGrid
The default grid: axis-aligned squares, cellSize on a side.
StatusBarControl
A control a module adds to the designer's status bar.
SurfacePoint
A point on a surface in space and which way the surface faces there: where something placed from the viewport goes, and which way is up for it.
TagReferences
Finds, renames and removes tags in saved scene, prefab and timeline JSON.
TagUse
One place a tag is used in a saved scene or timeline.
TextEditorRow
A text field: a CommitTextField that wraps a long value onto up to four lines and keeps what was typed on Enter or when the field is left.
ThemeController
The editor's current palette and the presets it can switch between.
ThemePreset
A named palette the settings dialog offers.
ThrottledSignalConsumer
builder, built again when any of signals change, and when often changes — that one at most every every while it keeps changing: the first change after a still moment at once, the last one always.
TiledObjectInfo
An object from a Tiled map's object layers, as an importer sees it: already placed in the world, with plain values rather than Tiled's model.
TiledObjectMapper
Turns objects of a Tiled map into entities when the map is imported: a spawn point, a coin, a moving platform.
ToolbarButton
A button a module adds over the viewport: on the play toolbar after the built-in Play, Pause, Stop and Level Designer buttons, or in the column down the right (see slot).
ToolContext
Everything a tool needs to act, without reaching into the plugin.
ToolGroup
A part of the tool strip: the tools that do one kind of job, under a caption.
ToolGroups
The groups the tool strip divides tools into.
ToolOptionsContext
What a tool's options are built with, for the left of the designer's status bar.
ToolRegistry
The tools available in the designer's left-hand palette.
TransformCommand
Moves, rotates or scales one or more entities.
TransformModes
Which modes what is selected can take.
TransformSnapshot
A single entity's transform, captured so it can be restored exactly.
TrashedAsset
A file in the trash, able to come back.
TreeFilter
What the tree is narrowed to.
TreeRow
One line of the tree.
UngroupCommand
Takes a group apart: its children move up into its place, and the empty group goes.
UniqueNamer
Hands out entity names nothing else has.
UnknownComponents
The components a scene names that no registered definition can read, kept exactly as the file had them.
UnknownComponentsCard
What a scene named that nothing registered can read: listed, not editable, and saved back exactly as it came.
ValidationContext
What a validator looks at. File access goes through here so a check can be tested without a project on disk.
ViewportHandle
One point the author can drag.
ViewportHandles
Points a module lets the author drag in the viewport to edit the selected entity: a polygon's corners, a shape's size.
ViewportLook
How the viewport draws what the editor adds to the game — the grid, the handles, the selection — as the settings make it.
ViewportOverlay
Something a module draws over the editor's viewport, with the Level Designer open or not, as one of its gizmos (gizmoKind): a light's reach, a camera's frustum, a trigger volume in space.
ViewportOverlayContext
What a ViewportOverlay draws with, for one frame.
WorkingPlane
The plane a 3-D designer builds on where nothing is under the pointer: the ground at some height, or an upright wall at some depth.
WorkspaceContext
What a workspace's content is built with.
WorkspaceContribution
Something a module adds to the window workspaceId (a WorkspaceDefinition.id; the editor's own are in WorkspaceIds).
WorkspaceDefinition
A large tool a module adds — a sprite editor, a dialogue graph — opened over the editor while the scene stays loaded underneath. One is open at a time. While one is, the level's tools, keys and play controls stand down.
WorkspaceHeader
The bar along the top of a workspace: what it is and what file it has open, whether that is saved, Save, Undo and Redo — then the workspace's own tools, and on the right full screen and close.
WorkspaceIds
The ids of the editor's windows that modules add to most.
WorkspaceKeyScope
Where a workspace's keys arrive.
WorkspaceOverlay
Drawn over the window's view — its preview, its canvas — filling it: build is given the view's size.
WorkspaceSection
A section of the window's panel, after the window's own: title its header, build what is under it.
WorkspaceSections
The WorkspaceSections modules add to view's window, each under its header: what a window puts in its panel after its own sections.
WorkspaceTool
A button on the window's toolbar, after the window's own.
WorkspaceToolButtons
The WorkspaceTools modules add to view's window, as buttons: what a window puts on its toolbar after its own.
WorkspaceView
What a window hands what modules add to it: which window it is, the file it has open, the editor — and changes, which fires when what it shows does, so what is built from it is built again.

Enums

ArrayMode3D
How the 3-D designer's Array lays copies out.
AutosaveMode
What the autosave does with a scene that has changed.
ClosePrompt
When closing a scene asks first.
CommandScope
When a command may run.
DockSeverity
How loudly a dock's badge speaks.
DropZone
Where a dragged row would land relative to the one under it.
EditorButtonKind
What a text button is for.
EditorSnackBarType
What kind of message a snackbar gives: its colour and icon, and whether the Messages setting lets it show (EditorSnackBarController.shows). One that follows a task shows whatever its type.
GizmoKind
A kind of gizmo, turned off or on by itself: right-click the Gizmos button.
GizmoMode
Where the editor is, for what it draws over the level: each place keeps its own gizmos, shown or hidden, and its own kinds turned off.
MessageLevel
Which messages show over the editor.
OverlayDensity
How tightly the editor's chrome is packed: the three steps the settings dialog offers for OverlayUiSettings.compactness.
PaintMode
What the paint tool does on drag.
PivotMode3D
Where the 3-D gizmo sits on what is selected, and what it turns and scales about.
PrefabPlacement
How a prefab is created in the viewport.
ProblemSeverity
How bad a SceneProblem is: the colour and icon it is shown with, and the Problems dock lists errors first.
ResizeHandle
One of the eight resize handles on a selection's bounds.
TagUseKind
Whether an entity carries the tag, or something points at it.
ToolbarSlot
Where a ToolbarButton stands over the viewport.
ToolButton
Which mouse button began a gesture.
TransformMode
Which gizmo the selection shows: the floating toolbar's buttons, Q, W, E and R. One for the editor and the Level Designer alike.
UnsavedChoice
What to do with work that has not been saved.
ViewMode3D
How the 3-D view draws the scene: as the game does, its colours only, its edges, or what things collide with.
ViewportHandleStyle
How a ViewportHandle is drawn.
WorkingPlaneAxis
Which way the 3-D designer's working plane lies.
WorkspacePresentation
How an open workspace sits in the editor.

Mixins

InteractiveOverlay
An overlay that also takes pointer input: rulers you drag guides out of, a minimap you click to jump. Offered every press before any tool, topmost first; the one that returns true from onPointerDown owns the gesture.

Extensions

EditorLogSession on EditorLogService
What only the editor that hosts the log does with it: start capturing for a session and stop. Exported by host.dart; a module only logs.
EditorScopeHost on EditorScope
What only the editor that hosts a scope does with it: rebuild its registries, add its own tools, and connect what the scope asks of the editor's windows. Exported by host.dart; a module never needs it.
EditorSnackBarTypeX on EditorSnackBarType
The look of an EditorSnackBarType.
OverlayDensityX on OverlayDensity
What the settings dialog shows for an OverlayDensity, and the compactness it stands for.

Constants

kComponentGroups → const List<String>
The order of the Add Component picker's sections, by group name.
kTreeDropEdge → const double
How near a row's edge a drop has to be, in logical pixels, to mean "between these two" rather than "inside this one"; never more than a third of the row (dropZoneFor).

Properties

kSceneTreeRowTileHeight → double
The height the list lays a row out at.
no setter

Functions

askToRecover(BuildContext context, {required String title, String? message}) → Future<bool?>
Offers work that was never saved — an autosaved backup: Recover (true), Open saved (false), or Cancel — which is null, and decides nothing.
askToSaveChanges(BuildContext context, {required String title, String? message}) → Future<UnsavedChoice?>
Asks whether to save before something that would lose unsaved work: Save, Don't save, or Cancel — which is null.
buildComponentSections({required Entity entity, required EditorSceneState sceneState, required EditorScope scope, EditorHistory? history, World? world, Set<Type> hidden = const {}}) → List<Widget>
One inspector section per component on entity, built from each component's definition. A component with no definition is not shown: it cannot be saved either. The exception is what the file named but nothing could read, which is shown — read-only — because it is saved.
carriedWith(Iterable<Entity> moving, {required World world}) → List<Entity>
Everything under moving — children, theirs, and so on — that is not moving itself: what goes along when a parent is moved or turned.
createEditorLogStorage() → EditorLogStorage
The storage for this platform: the log file with dart:io, nothing on the web.
detachEntity(Entity entity, {required World world, required EditorSceneState sceneState}) → void
Takes entity out of whatever holds it — its parent's list of children, or the top-level order — leaving it parentless and in neither until it is placed again (placeEntity) or destroyed.
dropZoneFor(double dy, double height) → DropZone
What a drop dy pixels down a row height tall means.
editorFieldDecoration({String? hint, Widget? prefixIcon, Widget? suffixIcon, EdgeInsetsGeometry? contentPadding, String? suffixText}) → InputDecoration
The decoration every small field in the editor shares: a dark fill, a line that shows, the accent when it has the keyboard.
editorMaterialTheme([EditorThemeData? data]) → ThemeData
A Material theme in the editor's colours, for widgets from other packages that take their colours from Theme — the colour picker.
editorMenuDivider() → PopupMenuDivider
The rule between groups of items.
editorMenuHeading<T>(String label) → PopupMenuItem<T>
A group's name, above the things in it. Not something to choose.
editorMenuItem<T>(T value, String label, {bool enabled = true, Color? color, double height = 30, IconData? icon, Color? iconColor, String? shortcut, bool iconSlot = false}) → PopupMenuItem<T>
One line of a menu.
getComponentRegistryEntries(EditorScope scope) → List<ComponentEntry>
Every component the picker can add: each runtime definition the scope knows.
isEscapeDown(KeyEvent event) → bool
Whether event is Esc going down: what puts a field's value back.
isPinnedComponent(Type type) → bool
Whether components of type keep the first place and do not move: what an entity is placed by heads its list.
isSelfOrDescendant(Entity candidate, Entity entity, {required World world}) → bool
Whether candidate is entity or somewhere under it.
mayLeaveUnsaved(BuildContext context, {required bool dirty, required Future<bool> save(), String title = 'Save your changes?', String? message}) → Future<bool>
Asks what to do with unsaved work before leaving it, and does it.
openEditorDropdownMenu<T>(BuildContext anchor, {required List<EditorDropdownOption<T>> options, T? selected, bool searchable = false, T customValue(String typed)?, String customLabel(String typed)?, double fontSize = 11, double? width, double gap = 0}) → Future<EditorChoice<T>?>
Opens an EditorDropdown's list below whatever anchor is the context of — for a button that is not a dropdown field but offers the same list: a "⋮" menu's "Add tag…". Null when it was dismissed.
paintViewportHandles(Canvas canvas, List<ViewportHandle> handles, Offset? project(Vector3 world), {int activeIndex = -1}) → void
Draws handles where project puts them; the one at activeIndex is held.
parseTypedNumber(String text, {NumberScrubConfig? config}) → double?
A number typed into a field, or null for anything else — and for what is not a finite number (NaN, Infinity, 1e999), which no scene file can hold, so a component holding one could not be saved. With config, kept within its min and max, and whole when it is an integer.
placeComponent(List<Type> order, Type type, {Type? before, Type? after}) → List<Type>
order with type taken out and put back just before before or just after after — at the end when neither is found. Pinned types stay first, as they were.
placeEntity(Entity entity, {required World world, required EditorSceneState sceneState, required HierarchySlot slot}) → void
Moves entity into a slot, detaching it from wherever it is.
reorderedTypes(Entity entity, Type type, {Type? before, Type? after}) → List<Type>?
The order a set of moves leaves entity in, or null when nothing moves.
sampleViewport(GlobalKey<State<StatefulWidget>> key, Offset global) → Future<Color?>
The colour the viewport shows at global, read off the game drawn under key's repaint boundary — gizmos and all. Null away from the viewport.
selectionToShapePaintStyle(ColourSelection sel, {BlendMode blendMode = BlendMode.modulate}) → ShapePaintStyle
sel as a shape's paint. A gradient's tint becomes the style's colour, which the engine multiplies over the gradient by blendMode.
shapePaintStyleToSelection(ShapePaintStyle style) → ColourSelection
style as the picker's selection. With a gradient, the style's colour is the tint over it, and the solid colour to switch back to is the gradient's first.
showEditorColourPicker(BuildContext context, {required ColourSelection initial, ColourDialogView view = ColourDialogView.both, String? title, bool showTint = false, ValueChanged<ColourSelection>? onPreview}) → Future<ColourSelection?>
Opens the colour picker beside context's widget, in the editor's look, offering the project's palettes and gradients and an eyedropper on the viewport. Each change goes to onPreview while it is open; the choice comes back when it closes, null when cancelled.
showEditorConfirm(BuildContext context, {required String title, required String message, required String confirmLabel, bool danger = true}) → Future<bool>
Asks before something that cannot be taken back. True when the user went ahead.
showEditorMenu<T>(BuildContext context, Offset at, List<PopupMenuEntry<T>> items) → Future<T?>
Opens items at the global point at, in the editor's colours.
showEditorMenuBelow<T>(BuildContext anchor, List<PopupMenuEntry<T>> items, {double gap = 4}) → Future<T?>
Opens items gap below the widget anchor is the context of: from its left edge, or — where there is no room to the right — its right edge, so a menu from a button at the end of a row opens inward instead of pressed against the header and the window's edge.
tooltipWithShortcut(String tooltip, String? shortcut) → String
Label (Ctrl+S): a tooltip with the key that does the same, when there is one.
workspaceOverlays(WorkspaceView view, Size size) → List<Widget>
The WorkspaceOverlays modules add to view's window, over a view of size: each fills it, the first furthest back. What a window stacks over its view.

Typedefs

FieldEditorBuilder = Widget Function(FieldEditorContext context)
Builds the inspector control for one field.
InheritedColor = ({Color color, String from})? Function(Component component, String field)
What component's unset colour field field falls back to, or null when this lookup has nothing to say about it.
PrefabPicture = Widget? Function(PrefabDefinition prefab, double size)
Draws prefab's picture for the palette — a shape seen from above at an angle, a model's thumbnail — size pixels square; null when it has none, and the palette shows its icon (see EditorModule.prefabPictures).
SceneValidator = List<SceneProblem> Function(ValidationContext context)
One check over the scene. A module adds its own through EditorModule.validators.
ScrollableBuilder = Widget Function(BuildContext context, ScrollController controller)
Builds a scrollable around controller.