Olympe Engine 2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
TilemapEditorApp.h
Go to the documentation of this file.
1/*
2 * Olympe Tilemap Editor - Main Application
3 *
4 * ImGui-based tilemap/level editor application.
5 */
6
7#pragma once
8
9#include "LevelManager.h"
10#include "EditorState.h"
11#include <memory>
12#include <string>
13
14namespace Olympe {
15namespace Editor {
16
18 {
19 public:
22
23 // Initialization and shutdown
24 bool Initialize();
25 void Shutdown();
26
27 // Main render loop
28 void Render();
29
30 // File operations
31 void NewLevel();
32 void OpenLevel();
33 void SaveLevel();
34 void SaveLevelAs();
35
36 // Editor state
37 bool HasUnsavedChanges() const;
38 const std::string& GetCurrentLevelName() const;
39
40 private:
41 // UI Rendering methods
42 void RenderMenuBar();
43 void RenderToolbar();
45 void RenderEntityList();
47 void RenderHistoryPanel();
48 void RenderStatusBar();
49
50 // Helper methods
51 void ShowNewLevelDialog();
54 void ShowAboutDialog();
55
56 // Editor state
57 std::unique_ptr<LevelManager> m_levelManager;
58 std::unique_ptr<EditorState> m_editorState;
59
60 // UI state
65
68
69 // Editor settings
72
73 // Selection state
74 std::string m_selectedEntityId;
76
78 };
79
80} // namespace Editor
81} // namespace Olympe
std::unique_ptr< EditorState > m_editorState
const std::string & GetCurrentLevelName() const
std::unique_ptr< LevelManager > m_levelManager