1#ifndef YAZE_APP_EDITOR_CORE_CONTENT_REGISTRY_H_
2#define YAZE_APP_EDITOR_CORE_CONTENT_REGISTRY_H_
24class GlobalEditorContext;
25struct EditorDependencies;
45namespace ContentRegistry {
169 std::vector<std::unique_ptr<EditorPanel>>
CreateAll();
175 void Register(std::unique_ptr<EditorPanel> panel);
181 std::vector<EditorPanel*>
GetAll();
209 auto editor = std::make_unique<T>();
210 editor->SetDependencies(deps);
230 void add(
const std::string&
id,
const std::string& key,
const std::string& desc);
231 std::vector<ShortcutDef>
GetAll();
247 void add(
const std::string& section,
const std::string& key,
const std::string& default_val,
const std::string& desc);
248 std::vector<SettingDef>
GetAll();
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Base interface for all logical panel components.
Interface for editor classes.
Instance-based runtime context replacing ContentRegistry::Context.
void SetGlobalContext(GlobalEditorContext *ctx)
Rom * rom()
Get the current ROM instance.
void SetEventBus(::yaze::EventBus *bus)
Set the current EventBus instance.
::yaze::EventBus * event_bus()
Get the current EventBus instance.
void SetRom(Rom *rom)
Set the current ROM instance.
void SetGameData(::yaze::zelda3::GameData *data)
Set the current game data instance.
Editor * current_editor()
Get the currently active editor.
void SetCurrentEditor(Editor *editor)
Set the currently active editor.
::yaze::zelda3::GameData * game_data()
Get the current game data instance.
::yaze::project::YazeProject * current_project()
Get the current project instance.
void Clear()
Clear all context state.
void SetCurrentProject(::yaze::project::YazeProject *project)
Set the current project instance.
void RegisterFactory(EditorFactory factory)
std::function< std::unique_ptr< Editor >(const EditorDependencies &)> EditorFactory
std::vector< std::unique_ptr< Editor > > CreateAll(const EditorDependencies &deps)
std::vector< std::unique_ptr< EditorPanel > > CreateAll()
Create new instances of all registered panels.
std::vector< EditorPanel * > GetAll()
Get all registered panels.
void Clear()
Clear all registered panels.
void Register(std::unique_ptr< EditorPanel > panel)
Register a panel instance (Legacy/Global).
void add()
Register a panel type for auto-creation.
std::function< std::unique_ptr< EditorPanel >()> PanelFactory
void RegisterFactory(PanelFactory factory)
Register a panel factory.
EditorPanel * Get(const std::string &id)
Get a specific panel by its ID.
void Register(const SettingDef &setting)
std::vector< SettingDef > GetAll()
void add(const std::string §ion, const std::string &key, const std::string &default_val, const std::string &desc)
std::vector< ShortcutDef > GetAll()
void add(const std::string &id, const std::string &key, const std::string &desc)
void Register(const ShortcutDef &shortcut)
std::string default_value
Unified dependency container for all editor types.
Modern project structure with comprehensive settings consolidation.