Handles object selection, preview, and editing UI. More...
#include <dungeon_object_selector.h>
Private Member Functions | |
| bool | MatchesObjectFilter (int obj_id, int filter_type) |
| bool | MatchesObjectSearch (int obj_id, const std::string &name, int subtype=-1) const |
| void | CalculateObjectDimensions (const zelda3::RoomObject &object, int &width, int &height) |
| bool | DrawObjectPreview (const zelda3::RoomObject &object, ImVec2 top_left, float size) |
| zelda3::RoomObject | MakePreviewObject (int obj_id) const |
| void | EnsureRegistryInitialized () |
| ImU32 | GetObjectTypeColor (int object_id) |
| std::string | GetObjectTypeSymbol (int object_id) |
| void | EnsureCustomObjectsInitialized () |
| void | DrawCustomObjectWorkshopButton (int custom_count) |
| void | DrawCustomObjectWorkshopPopup (float item_size) |
| void | DrawNewCustomObjectDialog () |
| bool | GetOrCreatePreview (const zelda3::RoomObject &object, float size, gfx::BackgroundBuffer **out) |
Handles object selection, preview, and editing UI.
Definition at line 32 of file dungeon_object_selector.h.
|
inlineexplicit |
Definition at line 34 of file dungeon_object_selector.h.
|
inline |
Definition at line 37 of file dungeon_object_selector.h.
References yaze::editor::EditorContext::game_data, game_data_, yaze::editor::EditorContext::rom, and rom_.
Referenced by yaze::editor::ObjectSelectorContent::SetContext().
|
inline |
Definition at line 41 of file dungeon_object_selector.h.
References game_data_, and rom_.
|
inline |
|
inline |
|
inline |
Definition at line 46 of file dungeon_object_selector.h.
References game_data(), and game_data_.
Referenced by yaze::editor::ObjectSelectorContent::SetGameData().

|
inline |
Definition at line 47 of file dungeon_object_selector.h.
References game_data_.
Referenced by SetGameData().
|
inline |
Definition at line 50 of file dungeon_object_selector.h.
References rooms_.
Referenced by yaze::editor::ObjectSelectorContent::SetRooms().
|
inline |
Definition at line 51 of file dungeon_object_selector.h.
References rooms_.
Referenced by yaze::editor::ObjectSelectorContent::DrawInteractionSummary().
|
inline |
Definition at line 52 of file dungeon_object_selector.h.
References current_room_id_.
Referenced by yaze::editor::ObjectSelectorContent::SetCurrentRoom().
|
inline |
Definition at line 55 of file dungeon_object_selector.h.
References current_palette_group_id_.
|
inline |
Definition at line 65 of file dungeon_object_selector.h.
References current_palette_group_, and InvalidatePreviewCache().
Referenced by yaze::editor::ObjectSelectorContent::SetCurrentPaletteGroup().

|
inline |
Definition at line 69 of file dungeon_object_selector.h.
References current_palette_id_.
| void yaze::editor::DungeonObjectSelector::SetCustomObjectsFolder | ( | const std::string & | folder | ) |
Definition at line 647 of file dungeon_object_selector.cc.
References custom_objects_folder_, custom_objects_initialized_, EnsureCustomObjectsInitialized(), and InvalidatePreviewCache().
Referenced by yaze::editor::DungeonEditorV2::Load().

|
inline |
Definition at line 75 of file dungeon_object_selector.h.
References object_selected_callback_.
Referenced by yaze::editor::ObjectSelectorContent::ObjectSelectorContent().
|
inline |
Definition at line 81 of file dungeon_object_selector.h.
References preview_object_.
|
inline |
Definition at line 82 of file dungeon_object_selector.h.
References object_loaded_.
| void yaze::editor::DungeonObjectSelector::DrawObjectAssetBrowser | ( | ) |
Definition at line 234 of file dungeon_object_selector.cc.
References yaze::gui::BeginRoomObjectDragSource(), yaze::zelda3::ObjectTileEditor::CaptureObjectLayout(), current_palette_group_, current_palette_group_id_, current_room_id_, yaze::Rom::data(), DrawCustomObjectWorkshopButton(), DrawCustomObjectWorkshopPopup(), DrawObjectPreview(), yaze::gfx::PaletteGroupMap::dungeon_main, enable_object_previews_, EnsureCustomObjectsInitialized(), game_data_, yaze::zelda3::CustomObjectManager::Get(), yaze::zelda3::ObjectDrawer::GetDrawRoutineId(), yaze::zelda3::GetObjectName(), yaze::zelda3::GetObjectSubtype(), GetObjectTypeColor(), GetObjectTypeSymbol(), yaze::editor::AgentUI::GetTheme(), ICON_MD_CLEAR, ICON_MD_IMAGE, ICON_MD_LABEL, ICON_MD_SEARCH, ICON_MD_TUNE, yaze::zelda3::kNumberOfRooms, layout_cache_, MakePreviewObject(), MatchesObjectFilter(), MatchesObjectSearch(), object_grid_density_, object_loaded_, object_search_buffer_, object_selected_callback_, object_type_filter_, yaze::zelda3::GameData::palette_groups, preview_object_, preview_palette_, rom_, rooms_, selected_object_id_, yaze::zelda3::RoomObject::SetRom(), yaze::gfx::PaletteGroup::size(), yaze::gui::IconSize::Small(), yaze::gui::ThemedIconButton(), and yaze::gui::ToggleButton().
Referenced by yaze::editor::ObjectSelectorContent::DrawObjectSelector().
| void yaze::editor::DungeonObjectSelector::SelectObject | ( | int | obj_id, |
| int | subtype = -1 ) |
Definition at line 211 of file dungeon_object_selector.cc.
References current_palette_group_id_, yaze::gfx::PaletteGroupMap::dungeon_main, game_data_, object_loaded_, object_selected_callback_, yaze::zelda3::GameData::palette_groups, preview_object_, preview_palette_, rom_, selected_object_id_, and yaze::zelda3::RoomObject::SetRom().
Referenced by DrawCustomObjectWorkshopPopup(), and yaze::editor::ObjectSelectorContent::SelectObject().

|
inline |
Definition at line 91 of file dungeon_object_selector.h.
References tile_editor_panel_.
Referenced by yaze::editor::DungeonEditorV2::Load().
|
inline |
Definition at line 94 of file dungeon_object_selector.h.
References project_.
Referenced by yaze::editor::DungeonEditorV2::Load().
| void yaze::editor::DungeonObjectSelector::InvalidatePreviewCache | ( | ) |
Definition at line 673 of file dungeon_object_selector.cc.
References layout_cache_, preview_cache_, and preview_cache_invalidations_.
Referenced by DrawCustomObjectWorkshopPopup(), GetOrCreatePreview(), yaze::editor::DungeonEditorV2::Load(), yaze::editor::DungeonEditorV2::RefreshRomBackedState(), SetCurrentPaletteGroup(), and SetCustomObjectsFolder().
|
inline |
Definition at line 102 of file dungeon_object_selector.h.
References preview_cache_invalidations_.
|
inline |
Definition at line 105 of file dungeon_object_selector.h.
References enable_object_previews_.
|
private |
Definition at line 572 of file dungeon_object_selector.cc.
Referenced by DrawCustomObjectWorkshopPopup(), and DrawObjectAssetBrowser().
|
private |
Definition at line 591 of file dungeon_object_selector.cc.
References object_search_buffer_.
Referenced by DrawCustomObjectWorkshopPopup(), and DrawObjectAssetBrowser().
|
private |
Definition at line 633 of file dungeon_object_selector.cc.
References yaze::zelda3::DimensionService::Get(), and yaze::zelda3::DimensionService::GetPixelDimensions().

|
private |
Definition at line 771 of file dungeon_object_selector.cc.
References yaze::gfx::BackgroundBuffer::bitmap(), and GetOrCreatePreview().
Referenced by DrawCustomObjectWorkshopPopup(), and DrawObjectAssetBrowser().

|
private |
Definition at line 666 of file dungeon_object_selector.cc.
References yaze::zelda3::RoomObject::EnsureTilesLoaded(), rom_, and yaze::zelda3::RoomObject::SetRom().
Referenced by DrawCustomObjectWorkshopPopup(), and DrawObjectAssetBrowser().

|
private |
Definition at line 640 of file dungeon_object_selector.cc.
References object_registry_, yaze::zelda3::DungeonObjectRegistry::RegisterVanillaRange(), and registry_initialized_.

|
private |
Definition at line 109 of file dungeon_object_selector.cc.
References yaze::editor::AgentUI::GetTheme().
Referenced by DrawObjectAssetBrowser().

|
private |
Definition at line 164 of file dungeon_object_selector.cc.
Referenced by DrawObjectAssetBrowser().
|
private |
Definition at line 656 of file dungeon_object_selector.cc.
References custom_objects_folder_, custom_objects_initialized_, yaze::zelda3::CustomObjectManager::Get(), and yaze::zelda3::CustomObjectManager::Initialize().
Referenced by DrawObjectAssetBrowser(), GetOrCreatePreview(), and SetCustomObjectsFolder().

|
private |
Definition at line 875 of file dungeon_object_selector.cc.
References ICON_MD_PRECISION_MANUFACTURING, and open_custom_workshop_popup_.
Referenced by DrawObjectAssetBrowser().
|
private |
Definition at line 894 of file dungeon_object_selector.cc.
References yaze::gui::BeginRoomObjectDragSource(), create_filename_, create_object_id_, current_room_id_, DrawNewCustomObjectDialog(), DrawObjectPreview(), enable_object_previews_, yaze::zelda3::CustomObjectManager::Get(), yaze::zelda3::GetObjectName(), yaze::editor::AgentUI::GetTheme(), ICON_MD_ADD, ICON_MD_CLOSE, ICON_MD_FOLDER, ICON_MD_INFO, ICON_MD_PRECISION_MANUFACTURING, ICON_MD_REFRESH, ICON_MD_WARNING, InvalidatePreviewCache(), MakePreviewObject(), MatchesObjectFilter(), MatchesObjectSearch(), object_type_filter_, preview_object_, selected_object_id_, SelectObject(), show_create_dialog_, yaze::zelda3::RoomObject::size_, and tile_editor_panel_.
Referenced by DrawObjectAssetBrowser().
|
private |
Definition at line 791 of file dungeon_object_selector.cc.
References create_filename_, create_height_, create_object_id_, create_width_, current_room_id_, yaze::zelda3::CustomObjectManager::Get(), yaze::editor::AgentUI::GetTheme(), yaze::editor::ObjectTileEditorPanel::OpenForNewObject(), rooms_, show_create_dialog_, and tile_editor_panel_.
Referenced by DrawCustomObjectWorkshopPopup().

|
private |
Definition at line 679 of file dungeon_object_selector.cc.
References yaze::gfx::BackgroundBuffer::bitmap(), cached_preview_blockset_, cached_preview_palette_, cached_preview_room_id_, yaze::zelda3::ObjectTileEditor::CaptureObjectLayout(), yaze::gfx::Arena::CREATE, current_palette_group_, current_room_id_, EnsureCustomObjectsInitialized(), yaze::gfx::Arena::Get(), InvalidatePreviewCache(), yaze::Rom::is_loaded(), preview_cache_, yaze::gfx::Arena::ProcessTextureQueue(), yaze::gfx::Arena::QueueTextureCommand(), yaze::zelda3::ObjectTileEditor::RenderLayoutToBitmap(), rom_, rooms_, and yaze::editor::DungeonRoomStore::size().
Referenced by DrawObjectPreview().
|
private |
Definition at line 127 of file dungeon_object_selector.h.
Referenced by DrawCustomObjectWorkshopPopup(), and DrawNewCustomObjectDialog().
|
private |
Definition at line 128 of file dungeon_object_selector.h.
Referenced by DrawCustomObjectWorkshopButton().
|
private |
Definition at line 129 of file dungeon_object_selector.h.
Referenced by DrawNewCustomObjectDialog().
|
private |
Definition at line 130 of file dungeon_object_selector.h.
Referenced by DrawNewCustomObjectDialog().
|
private |
Definition at line 131 of file dungeon_object_selector.h.
Referenced by DrawCustomObjectWorkshopPopup(), and DrawNewCustomObjectDialog().
|
private |
Definition at line 132 of file dungeon_object_selector.h.
Referenced by DrawCustomObjectWorkshopPopup(), and DrawNewCustomObjectDialog().
|
private |
Definition at line 135 of file dungeon_object_selector.h.
Referenced by DrawCustomObjectWorkshopPopup(), DrawNewCustomObjectDialog(), and SetTileEditorPanel().
|
private |
Definition at line 136 of file dungeon_object_selector.h.
Referenced by SetProject().
|
private |
Definition at line 138 of file dungeon_object_selector.h.
Referenced by context(), DrawObjectAssetBrowser(), GetOrCreatePreview(), MakePreviewObject(), rom(), SelectObject(), SetContext(), and SetRom().
|
private |
Definition at line 139 of file dungeon_object_selector.h.
Referenced by context(), DrawObjectAssetBrowser(), game_data(), SelectObject(), SetContext(), and SetGameData().
|
private |
Definition at line 140 of file dungeon_object_selector.h.
Referenced by EnsureCustomObjectsInitialized(), and SetCustomObjectsFolder().
|
private |
Definition at line 141 of file dungeon_object_selector.h.
Referenced by EnsureCustomObjectsInitialized(), and SetCustomObjectsFolder().
|
private |
Definition at line 144 of file dungeon_object_selector.h.
Referenced by DrawNewCustomObjectDialog(), DrawObjectAssetBrowser(), get_rooms(), GetOrCreatePreview(), and set_rooms().
|
private |
Definition at line 145 of file dungeon_object_selector.h.
Referenced by DrawCustomObjectWorkshopPopup(), DrawNewCustomObjectDialog(), DrawObjectAssetBrowser(), GetOrCreatePreview(), and set_current_room_id().
|
private |
Definition at line 148 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), SelectObject(), and set_current_palette_group_id().
|
private |
Definition at line 149 of file dungeon_object_selector.h.
Referenced by SetCurrentPaletteId().
|
private |
Definition at line 150 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), GetOrCreatePreview(), and SetCurrentPaletteGroup().
|
private |
Definition at line 152 of file dungeon_object_selector.h.
Referenced by EnsureRegistryInitialized().
|
private |
Definition at line 155 of file dungeon_object_selector.h.
Referenced by DrawCustomObjectWorkshopPopup(), DrawObjectAssetBrowser(), GetPreviewObject(), and SelectObject().
|
private |
Definition at line 156 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), and SelectObject().
|
private |
Definition at line 157 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), IsObjectLoaded(), and SelectObject().
|
private |
Definition at line 160 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), SelectObject(), and SetObjectSelectedCallback().
|
private |
Definition at line 163 of file dungeon_object_selector.h.
Referenced by DrawCustomObjectWorkshopPopup(), DrawObjectAssetBrowser(), and SelectObject().
|
private |
Definition at line 166 of file dungeon_object_selector.h.
Referenced by DrawCustomObjectWorkshopPopup(), and DrawObjectAssetBrowser().
|
private |
Definition at line 167 of file dungeon_object_selector.h.
|
private |
Definition at line 168 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser().
|
private |
Definition at line 169 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), and MatchesObjectSearch().
|
private |
Definition at line 172 of file dungeon_object_selector.h.
Referenced by EnsureRegistryInitialized().
|
private |
Definition at line 175 of file dungeon_object_selector.h.
Referenced by DrawCustomObjectWorkshopPopup(), DrawObjectAssetBrowser(), and object_previews_enabled_for_testing().
|
private |
Definition at line 180 of file dungeon_object_selector.h.
Referenced by GetOrCreatePreview(), and InvalidatePreviewCache().
|
private |
Definition at line 181 of file dungeon_object_selector.h.
Referenced by GetOrCreatePreview().
|
private |
Definition at line 182 of file dungeon_object_selector.h.
Referenced by GetOrCreatePreview().
|
private |
Definition at line 183 of file dungeon_object_selector.h.
Referenced by GetOrCreatePreview().
|
private |
Definition at line 185 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), and InvalidatePreviewCache().
|
private |
Definition at line 189 of file dungeon_object_selector.h.
Referenced by InvalidatePreviewCache(), and preview_cache_invalidations_for_testing().