aboutsummaryrefslogtreecommitdiff
path: root/source/Game/EditorCore.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/Game/EditorCore.hpp')
-rw-r--r--source/Game/EditorCore.hpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/source/Game/EditorCore.hpp b/source/Game/EditorCore.hpp
new file mode 100644
index 0000000..726f43e
--- /dev/null
+++ b/source/Game/EditorCore.hpp
@@ -0,0 +1,39 @@
+#pragma once
+
+#include <memory>
+
+class App;
+class SpriteDefinition;
+
+class IEditorInspector {
+public:
+ enum TargetType {
+ ITT_GameObject,
+ ITT_Ires,
+ ITT_Level,
+ ITT_None,
+ };
+
+public:
+ virtual ~IEditorInspector() = default;
+ virtual void SelectTarget(TargetType type, void* object) = 0;
+};
+
+class IEditorContentBrowser {
+public:
+ virtual ~IEditorContentBrowser() = default;
+};
+
+class IEditor {
+public:
+ static std::unique_ptr<IEditor> CreateInstance(App* app);
+ virtual ~IEditor() = default;
+
+ virtual void OnGameStateChanged(bool running) = 0;
+ virtual void Show() = 0;
+
+ virtual IEditorInspector& GetInspector() = 0;
+ virtual IEditorContentBrowser& GetContentBrowser() = 0;
+
+ virtual void OpenSpriteViewer(SpriteDefinition* sprite) = 0;
+};