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;
112 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()
std::size_t preview_cache_invalidations_
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_
void SetContext(EditorContext ctx)
void SetProject(project::YazeProject *project)
std::string GetObjectTypeSymbol(int object_id)
ObjectTileEditorPanel * tile_editor_panel_
void DrawCustomObjectWorkshopButton(int custom_count)
bool open_custom_workshop_popup_
void SetGameData(zelda3::GameData *game_data)
gfx::SnesPalette preview_palette_
bool IsObjectLoaded() const
bool MatchesObjectSearch(int obj_id, const std::string &name, int subtype=-1) const
DungeonObjectSelector(Rom *rom=nullptr)
bool object_previews_enabled_for_testing() const
void set_rooms(DungeonRoomStore *rooms)
bool registry_initialized_
zelda3::GameData * game_data() const
void SetCurrentPaletteGroup(const gfx::PaletteGroup &palette_group)
std::size_t preview_cache_invalidations_for_testing() const
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
void DrawCustomObjectWorkshopPopup(float item_size)
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)
std::string custom_objects_folder_
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.