1#ifndef YAZE_APP_EDITOR_DUNGEON_DUNGEON_OBJECT_SELECTOR_H
2#define YAZE_APP_EDITOR_DUNGEON_DUNGEON_OBJECT_SELECTOR_H
20#include "imgui/imgui.h"
27class ObjectTileEditorPanel;
104 int subtype = -1)
const;
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Handles object selection, preview, and editing UI.
uint8_t cached_preview_palette_
project::YazeProject * project_
DungeonRoomStore * rooms_
void DrawNewCustomObjectDialog()
void EnsureCustomObjectsInitialized()
zelda3::RoomObject preview_object_
ImU32 GetObjectTypeColor(int object_id)
bool GetOrCreatePreview(const zelda3::RoomObject &object, float size, gfx::BackgroundBuffer **out)
void SetCustomObjectsFolder(const std::string &folder)
DungeonRoomStore * get_rooms()
char create_filename_[128]
void set_current_room_id(int room_id)
uint64_t current_palette_id_
void CalculateObjectDimensions(const zelda3::RoomObject &object, int &width, int &height)
zelda3::DungeonObjectRegistry object_registry_
std::function< void(int)> object_double_click_callback_
void SetContext(EditorContext ctx)
int GetStaticEditorObjectId() const
void SetProject(project::YazeProject *project)
std::string GetObjectTypeSymbol(int object_id)
ObjectTileEditorPanel * tile_editor_panel_
void SetGameData(zelda3::GameData *game_data)
void SetObjectDoubleClickCallback(std::function< void(int)> callback)
gfx::SnesPalette preview_palette_
bool IsObjectLoaded() const
bool MatchesObjectSearch(int obj_id, const std::string &name, int subtype=-1) const
DungeonObjectSelector(Rom *rom=nullptr)
void set_rooms(DungeonRoomStore *rooms)
bool registry_initialized_
zelda3::GameData * game_data() const
void SetCurrentPaletteGroup(const gfx::PaletteGroup &palette_group)
bool enable_object_previews_
void SelectObject(int obj_id, int subtype=-1)
uint8_t cached_preview_blockset_
void SetCurrentPaletteId(uint64_t palette_id)
void InvalidatePreviewCache()
const zelda3::RoomObject & GetPreviewObject() const
zelda3::GameData * game_data_
std::function< void(const zelda3::RoomObject &) object_selected_callback_)
std::map< uint64_t, std::unique_ptr< gfx::BackgroundBuffer > > preview_cache_
EditorContext context() const
char object_search_buffer_[64]
void SetTileEditorPanel(ObjectTileEditorPanel *panel)
zelda3::RoomObject MakePreviewObject(int obj_id) const
std::map< uint32_t, zelda3::ObjectTileLayout > layout_cache_
int cached_preview_room_id_
bool DrawObjectPreview(const zelda3::RoomObject &object, ImVec2 top_left, float size)
void SetStaticEditorObjectId(int obj_id)
std::string custom_objects_folder_
int static_editor_object_id_
void set_current_palette_group_id(uint64_t id)
void DrawObjectAssetBrowser()
gfx::PaletteGroup current_palette_group_
bool MatchesObjectFilter(int obj_id, int filter_type)
void SetObjectSelectedCallback(std::function< void(const zelda3::RoomObject &)> callback)
void EnsureRegistryInitialized()
bool custom_objects_initialized_
uint64_t current_palette_group_id_
Panel for editing the tile8 composition of dungeon objects.
Represents a palette of colors for the Super Nintendo Entertainment System (SNES).
Minimal registry for dungeon objects (vanilla or custom).
Lightweight view into the essential runtime context (Rom + GameData)
zelda3::GameData * game_data
Represents a group of palettes.
Modern project structure with comprehensive settings consolidation.