Expand description
Main crate for the Jackdaw editor.
Usage of this crate is meant for headless operation. If you want to interact with the jackdaw API for extensions, use the jackdaw_api crate instead.
Modules§
- add_
entity_ picker - Unified Add Entity picker, shared by the toolbar Add menu and the
scene-tree Add Entity button. Sources items from built-in templates
plus extension-contributed
RegisteredMenuEntryrows undermenu == "Add". - alignment_
guides - app_ops
- App-level operators: open the Extensions dialog, open the Keybind settings dialog, toggle hot reload, return to the project-select home screen. None have keybinds currently; they exist so menus (and a future command palette) can dispatch them uniformly.
- asset_
browser - asset_
catalog - brush
- brush_
drag_ ops - Modal operators for the per-element brush drags: face / vertex /
edge. Each one wraps the corresponding interaction state machine
that used to run as an unconditional system in
brush::interaction. The drag math itself is unchanged; this file owns the modal lifecycle (trigger on click, per-frame invoke, release commit, Escape cancel) and Right-click cancel. - brush_
element_ ops - One-shot brush-element operators: delete the active sub-element
and nudge selected vertices/edges/faces along Y by one grid step.
Dispatch by current
BrushEditMode. - build_
status - Static-editor build state machine.
- builtin_
extensions - Built-in Jackdaw extensions. Each feature area of the editor owns
its dock windows through a
JackdawExtension, so Jackdaw uses the same API third-party authors do. Disable one in File > Extensions to remove its windows from the layout. - clip_
ops - Clip-tool operators. Replace the keybind/click branches in
brush::interaction::handle_clip_mode. The remaining clip-mode work (recomputing the preview plane and drawing the gizmo overlay) stays ininteraction.rs. - command_
palette - commands
- core_
extension - custom_
properties - default_
style - document_
ops - draw_
brush - edit_
mode_ ops - Edit-mode switch operators: Object / Vertex / Edge / Face / Clip / Physics. Each one either enters the named mode or, if already in it, toggles back out to Object.
- entity_
ops - entity_
templates - ext_
build - Editor-driven build pipeline for extension and game projects.
- extension_
resolution - Persistence for the enabled-extensions list at
~/.config/jackdaw/extensions.json. Read on startup, rewritten whenever the user toggles an extension. - extension_
watcher - Watch extension dylib directories for
.so/.dylib/.dllchanges and surface them to the user. - extensions_
dialog - File > Extensions dialog. Toggles compiled-in extensions at runtime
and persists the current state to
extensions.json. - face_
grid - gizmo_
ops - Gizmo mode + space operators.
- gizmos
- grid_
ops - Grid-size operators: increase / decrease the editor grid by one power. Flips a resource, no history entry.
- hierarchy
- history_
ops - Undo/Redo operators.
- hot_
reload - Build-artifact watcher: when cargo writes a fresh
target/debug/lib<name>.sofor the active project, install it and hot-swap the running dylib. - inspector
- keybind_
focus - Decide whether a keybind/operator gate should refuse because the user is typing into a UI text input.
- keybind_
settings - keybinds
- layout
- material_
browser - material_
preview - measure_
tool - modal_
transform - navmesh
- new_
project - Scaffolding user projects via Bevy CLI.
- operator_
tooltip - Operator bridge into the generic feathers tooltip pipeline.
- physics_
brush_ bridge - Bridge between editor collider configuration and avian
Collidercomponents. - physics_
tool - Hammer-style physics placement tool.
- pie
- Play-In-Editor runtime.
- prefab_
picker - prelude
- Everything needed to start using Jackdaw.
- project
- project_
files - Project Files panel: a file tree view with live filesystem watching.
- project_
select - reflect_
default - Default-construct any reflected type, including ones that
don’t
#[derive(Default)]. - remote
- restart
- Respawn the editor binary from within a running instance.
- scene_
io - scene_
ops - Scene I/O operators: new / open / save / save as / save selection as template / open recent.
- sdk_
paths - Locate the SDK dylib, its deps/ dir, and the rustc wrapper.
- selection
- snapping
- status_
bar - terrain
- transform_
ops - Transform-shortcut operators: reset, 90° rotate, and nudge.
- undo_
snapshot SceneJsnAst-backed implementation of the snapshotter traits.- view_
modes - view_
ops - View-mode toggles and per-viewport view operators.
- viewport
- viewport_
overlays - viewport_
select - viewport_
util
Structs§
- Blocks
Camera Input - Marker component for UI overlays that should block viewport camera input (scroll, pan, orbit) while they exist. Add this to any overlay entity (e.g. prefab picker, context menus) to automatically disable camera controls.
- Dylib
Loader Plugin - Enable discovery and loading of dynamic-library extensions.
- Editor
Category - Picker grouping for a component. Attach via
#[reflect(@EditorCategory("Your Group"))]. - Editor
Core Plugin - Plugin required for the Jackdaw’s core functionality.
- Editor
Description - Picker tooltip override. Falls back to the reflected doc comment when absent.
- Editor
Entity - Editor
Hidden - Hides things from editor-facing surfaces. Used in two ways:
- Editor
Interaction Systems - System set for all editor interaction systems (input handling, viewport clicks, gizmo drags, etc.). Automatically disabled when any dialog is open.
- Editor
Plugins - The editor plugin group. Construct with
EditorPlugins::defaultfor the builder, or add the default instance directly withapp.add_plugins(EditorPlugin::default()). - Extension
Plugin - Jackdaw
Draw Systems - System set for drawing systems. Scheduled in
PostUpdateafter all propagation sets. - Menu
BarDirty - Drained once per frame so multiple registrations coalesce into a single menu-bar rebuild.
- NonSerializable
- Marker component for entities that should not be included in scene serialization. Add this to runtime-generated child entities (brush face meshes, terrain chunks, etc.) that are rebuilt automatically from their parent’s component data.
- Skip
Serialization - Marker for entities that exist as editor-time visual
indicators. The save filter skips this entity (and its
subtree) so the helper never lands in
.jsn; the editor viewport still renders it.
Enums§
Functions§
- no_
dialog_ open - Run condition: returns
truewhen noEditorDialogentity exists.