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"
9
#include "
ncengine/module/ModuleProvider.h
"
10
#include "
ncengine/ui/ImGuiUtility.h
"
11
12
namespace
nc
13
{
14
struct
SystemEvents;
15
16
namespace
ui::editor
17
{
19
struct
EditorHotkeys
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
33
enum 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
42
struct
EditorContext
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
OpenState
openState = OpenState::Closed;
52
ImVec2 dimensions = ImVec2{};
53
bool
rebuildStaticsOnTransformWrite =
true
;
54
55
// Immutable state
56
const
Entity
objectBucket =
Entity::Null
();
57
const
Entity
editorCamera =
Entity::Null
();
58
const
EditorHotkeys
hotkeys =
EditorHotkeys
{};
59
};
60
}
// namespace ui::editor
61
}
// namespace nc
Ecs.h
nc::ui::editor::OpenState
OpenState
Signals editor open and close events.
Definition:
EditorContext.h:34
ImGuiUtility.h
ModuleProvider.h
nc::Entity
Identifies an object in the registry.
Definition:
Entity.h:18
nc::Entity::Null
static constexpr auto Null() noexcept
Construct a null Entity.
Definition:
Entity.h:61
nc::ModuleProvider
Provides access to registered Modules.
Definition:
ModuleProvider.h:15
nc::ecs::EcsInterface
Interface for higher-level entity and component operations with optional type access restriction.
Definition:
Ecs.h:18
nc::SystemEvents
Signals for internal engine events.
Definition:
Events.h:14
nc::ui::editor::EditorContext
State for the editor.
Definition:
EditorContext.h:43
nc::ui::editor::EditorHotkeys
Hotkeys for the editor.
Definition:
EditorContext.h:20
include
ncengine
ui
editor
EditorContext.h
Generated by
1.9.4