NcEngine
EditorContext.h
Go to the documentation of this file.
1
5#pragma once
6
7#include "ncengine/ecs/Ecs.h"
8#include "ncengine/input/Input.h"
11
12namespace nc
13{
14struct SystemEvents;
15
16namespace ui::editor
17{
20{
21 input::KeyCode toggleEditor = input::KeyCode::Tilde;
22 input::KeyCode openNewSceneDialog = input::KeyCode::F1;
23 input::KeyCode openSaveSceneDialog = input::KeyCode::F2;
24 input::KeyCode openLoadSceneDialog = input::KeyCode::F3;
25 input::KeyCode toggleEditorCamera = input::KeyCode::F5;
26
27 input::KeyCode translateMode = input::KeyCode::T;
28 input::KeyCode rotateMode = input::KeyCode::R;
29 input::KeyCode scaleMode = input::KeyCode::S;
30};
31
33enum class OpenState
34{
35 Closed, // Editor was closed this frame
36 ClosePersisted, // Editor remains closed
37 Opened, // Editor was opened this frame
38 OpenPersisted // Editor remains open
39};
40
43{
44 // General game state
45 ecs::Ecs world;
46 ModuleProvider modules;
47 SystemEvents* events = nullptr;
48
49 // Mutable state (for internal use)
50 Entity selectedEntity = Entity::Null();
51 Vector3 eulerRotation = Vector3::Zero();
52 OpenState openState = OpenState::Closed;
53 ImVec2 dimensions = ImVec2{};
54 bool rebuildStaticsOnTransformWrite = true;
55
56 // Immutable state
57 const Entity objectBucket = Entity::Null();
58 const Entity editorCamera = Entity::Null();
59 const EditorHotkeys hotkeys = EditorHotkeys{};
60};
61} // namespace ui::editor
62} // namespace nc
OpenState
Signals editor open and close events.
Definition: EditorContext.h:34
Identifies an object in the registry.
Definition: Entity.h:18
static constexpr auto Null() noexcept
Construct a null Entity.
Definition: Entity.h:61
Provides access to registered Modules.
Definition: ModuleProvider.h:15
Interface for higher-level entity and component operations with optional type access restriction.
Definition: Ecs.h:18
Signals for internal engine events.
Definition: Events.h:14
A three component vector.
Definition: Vector.h:29
State for the editor.
Definition: EditorContext.h:43
Hotkeys for the editor.
Definition: EditorContext.h:20