41class SystemEditorViewport;
67 void Start()
override;
68 void Update(
float deltaTime)
override;
79 void RegisterMenuActions();
81 bool HasUnsavedChanges();
82 void SaveCurrentFile();
83 void OnSaveComplete(
bool success);
85 void ActivateOpenDialog();
86 void ActivateSaveDialog();
87 void ActivateNewSystemDialog();
89 void HandlePendingFileRequest();
90 void HandleBodyOperations();
92 void SetupLayout(
ImGuiID dockspaceID);
97 bool DrawBodyNode(
SystemBody *body,
bool isRoot);
98 void HandleOutlinerDragDrop(
SystemBody *refBody);
101 void DrawBodyProperties();
102 void DrawSystemProperties();
104 void EditName(
const char *undo_label, std::string *name);
106 void DrawUndoDebug();
108 UndoSystem *GetUndo() {
return m_undo.get(); }
111 class UndoSetSelection;
114 enum FileRequestType {
132 Type type = TYPE_None;
133 uint32_t newBodyType = 0;
143 std::unique_ptr<CustomSystemsDatabase> m_systemLoader;
145 CustomSystemInfo m_systemInfo;
147 std::unique_ptr<SystemEditorViewport> m_viewport;
150 std::unique_ptr<class LuaNameGen> m_nameGen;
152 std::unique_ptr<UndoSystem> m_undo;
153 size_t m_lastSavedUndoStack;
155 std::string m_filepath;
156 std::string m_filedir;
161 BodyRequest m_pendingOp;
163 FileRequestType m_pendingFileReq;
165 std::unique_ptr<pfd::open_file> m_openFile;
166 std::unique_ptr<pfd::save_file> m_saveFile;
176 std::unique_ptr<ActionBinder> m_menuBinder;
178 bool m_metricsWindowOpen =
false;
179 bool m_undoStackWindowOpen =
false;
180 bool m_binderWindowOpen =
false;
181 bool m_debugWindowOpen =
false;
183 bool m_resetDockingLayout =
false;
unsigned int ImGuiID
Definition: Modal.h:9
unsigned int ImGuiID
Definition: SystemEditor.h:18
Definition: Application.h:21
Definition: CustomSystem.h:45
Definition: CustomSystem.h:91
Definition: EditorApp.h:20
Definition: SystemEditor.h:46
bool WriteSystem(const std::string &filepath)
Definition: SystemEditor.cpp:241
void Update(float deltaTime) override
Definition: SystemEditor.cpp:555
Random & GetRng()
Definition: SystemEditor.h:58
RefCountedPtr< Galaxy > GetGalaxy()
Definition: SystemEditor.cpp:360
bool LoadSystem(SystemPath path)
Definition: SystemEditor.cpp:175
void End() override
Definition: SystemEditor.cpp:373
void NewSystem(SystemPath path)
Definition: SystemEditor.cpp:135
void HandleInput()
Definition: SystemEditor.cpp:550
void SetSelectedBody(SystemBody *body)
Definition: SystemEditor.cpp:362
bool LoadSystemFromDisk(const std::string &absolutePath)
Definition: SystemEditor.cpp:153
SystemBody * GetSelectedBody()
Definition: SystemEditor.h:62
void DrawBodyContextMenu(SystemBody *body)
Definition: SystemEditor.cpp:1031
~SystemEditor()
Definition: SystemEditor.cpp:131
void Start() override
Definition: SystemEditor.cpp:369
Definition: UndoSystem.h:112
Definition: FileSystem.h:78
Definition: LuaNameGen.h:14
Definition: RefCounted.h:36
Definition: StarSystem.h:28
Definition: SystemBody.h:137
Definition: SystemPath.h:13
Definition: ActionBinder.h:14
const char * GetBodyIcon(const SystemBody *body)
Definition: SystemEditor.cpp:56
Definition: CityOnPlanet.h:28
Definition: SystemEditor.h:20