1#ifndef YAZE_APP_EDITOR_SYSTEM_EDITOR_REGISTRY_H_
2#define YAZE_APP_EDITOR_SYSTEM_EDITOR_REGISTRY_H_
5#include <unordered_map>
59 const std::string& category)
const;
76 static const std::unordered_map<EditorType, std::string>
kEditorNames;
Manages editor types, categories, and lifecycle.
void HideCurrentEditorPanels()
void RegisterEditor(EditorType type, Editor *editor)
static const std::unordered_map< EditorType, std::string > kEditorNames
static EditorType GetEditorTypeFromCategory(const std::string &category)
static const std::unordered_map< EditorType, std::string > kEditorCategories
void ValidateEditorType(EditorType type) const
static std::vector< std::string > GetAllEditorCategories()
Get all editor categories in display order for sidebar.
std::vector< EditorType > GetEditorsInCategory(const std::string &category) const
static bool IsPanelBasedEditor(EditorType type)
void SetJumpToDungeonRoomCallback(std::function< void(int)> callback)
void ShowEditorPanels(EditorType editor_type)
void SetJumpToOverworldMapCallback(std::function< void(int)> callback)
void SetEditorActive(EditorType type, bool active)
std::string GetEditorDisplayName(EditorType type) const
void ToggleEditorPanels(EditorType editor_type)
void UnregisterEditor(EditorType type)
bool IsEditorActive(EditorType type) const
void JumpToOverworldMap(int map_id)
bool IsValidEditorType(EditorType type) const
bool IsEditorVisible(EditorType type) const
std::function< void(int)> jump_to_room_callback_
~EditorRegistry()=default
void SwitchToEditor(EditorType editor_type)
std::vector< std::string > GetAvailableCategories() const
void JumpToDungeonRoom(int room_id)
std::function< void(int)> jump_to_map_callback_
static const std::unordered_map< EditorType, bool > kPanelBasedEditors
Editor * GetEditor(EditorType type) const
static std::string GetEditorCategory(EditorType type)
std::unordered_map< EditorType, Editor * > registered_editors_
Interface for editor classes.