Unified card combining object selection, emulator preview, and canvas interaction. More...
#include <object_editor_card.h>
Public Member Functions | |
| ObjectEditorCard (gfx::IRenderer *renderer, Rom *rom, DungeonCanvasViewer *canvas_viewer) | |
| void | Draw (bool *p_open) |
| DungeonObjectSelector & | object_selector () |
| gui::DungeonObjectEmulatorPreview & | emulator_preview () |
| void | SetCurrentRoom (int room_id) |
Private Types | |
| enum class | InteractionMode { None , Place , Select , Delete } |
Private Member Functions | |
| void | DrawObjectSelector () |
| void | DrawEmulatorPreview () |
| void | DrawInteractionControls () |
| void | DrawSelectedObjectInfo () |
| void | DrawObjectPreviewIcon (int object_id, const ImVec2 &size) |
Private Attributes | |
| Rom * | rom_ |
| DungeonCanvasViewer * | canvas_viewer_ |
| int | current_room_id_ = 0 |
| DungeonObjectSelector | object_selector_ |
| gui::DungeonObjectEmulatorPreview | emulator_preview_ |
| std::unordered_map< int, gui::Canvas > | object_preview_canvases_ |
| int | selected_tab_ = 0 |
| bool | show_emulator_preview_ = false |
| bool | show_object_list_ = true |
| bool | show_interaction_controls_ = true |
| InteractionMode | interaction_mode_ = InteractionMode::None |
| zelda3::RoomObject | preview_object_ {0, 0, 0, 0, 0} |
| bool | has_preview_object_ = false |
| gfx::IRenderer * | renderer_ |
Unified card combining object selection, emulator preview, and canvas interaction.
This card replaces three separate components:
It provides a complete workflow for managing dungeon objects in one place.
Definition at line 29 of file object_editor_card.h.
|
strongprivate |
| Enumerator | |
|---|---|
| None | |
| Place | |
| Select | |
| Delete | |
Definition at line 68 of file object_editor_card.h.
| yaze::editor::ObjectEditorCard::ObjectEditorCard | ( | gfx::IRenderer * | renderer, |
| Rom * | rom, | ||
| DungeonCanvasViewer * | canvas_viewer | ||
| ) |
Definition at line 11 of file object_editor_card.cc.
References emulator_preview_, and yaze::gui::DungeonObjectEmulatorPreview::Initialize().

| void yaze::editor::ObjectEditorCard::Draw | ( | bool * | p_open | ) |
Definition at line 16 of file object_editor_card.cc.
References yaze::gui::EditorCard::Begin(), canvas_viewer_, yaze::editor::DungeonCanvasViewer::ClearPreviewObject(), Delete, DrawEmulatorPreview(), DrawObjectSelector(), DrawSelectedObjectInfo(), yaze::gui::EditorCard::End(), has_preview_object_, ICON_MD_CONSTRUCTION, ICON_MD_LIST, ICON_MD_MONITOR, interaction_mode_, None, Place, preview_object_, yaze::gui::EditorCard::Right, Select, yaze::gui::EditorCard::SetDefaultSize(), yaze::editor::DungeonCanvasViewer::SetObjectInteractionEnabled(), yaze::gui::EditorCard::SetPosition(), and yaze::editor::DungeonCanvasViewer::SetPreviewObject().
|
inline |
Definition at line 37 of file object_editor_card.h.
References object_selector_.
|
inline |
Definition at line 38 of file object_editor_card.h.
References emulator_preview_.
|
inline |
Definition at line 41 of file object_editor_card.h.
References current_room_id_.
|
private |
Definition at line 81 of file object_editor_card.cc.
References canvas_viewer_, yaze::editor::DungeonCanvasViewer::ClearPreviewObject(), DrawObjectPreviewIcon(), has_preview_object_, ICON_MD_BORDER_ALL, ICON_MD_BORDER_VERTICAL, ICON_MD_CLEAR, ICON_MD_GRID_ON, ICON_MD_INFO, ICON_MD_SEARCH, ICON_MD_STAR, yaze::zelda3::RoomObject::id_, interaction_mode_, None, Place, preview_object_, yaze::editor::DungeonCanvasViewer::SetObjectInteractionEnabled(), and yaze::editor::DungeonCanvasViewer::SetPreviewObject().
Referenced by Draw().

|
private |
Definition at line 202 of file object_editor_card.cc.
References emulator_preview_, yaze::gui::HelpMarker(), ICON_MD_INFO, ICON_MD_PREVIEW, yaze::gui::DungeonObjectEmulatorPreview::Render(), and show_emulator_preview_.
Referenced by Draw().

|
private |
|
private |
Definition at line 270 of file object_editor_card.cc.
References yaze::zelda3::RoomObject::BG1, yaze::zelda3::RoomObject::BG2, canvas_viewer_, Delete, yaze::editor::DungeonObjectInteraction::GetSelectedObjectIndices(), has_preview_object_, ICON_MD_ADD_BOX, ICON_MD_CHECK_BOX, ICON_MD_CHECKLIST, ICON_MD_CLEAR, ICON_MD_DELETE, ICON_MD_INFO, yaze::zelda3::RoomObject::id_, interaction_mode_, yaze::zelda3::RoomObject::layer_, yaze::editor::DungeonCanvasViewer::object_interaction(), Place, preview_object_, and Select.
Referenced by Draw().

|
private |
Definition at line 232 of file object_editor_card.cc.
Referenced by DrawObjectSelector().
|
private |
Definition at line 50 of file object_editor_card.h.
|
private |
Definition at line 51 of file object_editor_card.h.
Referenced by Draw(), DrawObjectSelector(), and DrawSelectedObjectInfo().
|
private |
Definition at line 52 of file object_editor_card.h.
Referenced by SetCurrentRoom().
|
private |
Definition at line 55 of file object_editor_card.h.
Referenced by object_selector().
|
private |
Definition at line 56 of file object_editor_card.h.
Referenced by DrawEmulatorPreview(), emulator_preview(), and ObjectEditorCard().
|
private |
Definition at line 59 of file object_editor_card.h.
|
private |
Definition at line 62 of file object_editor_card.h.
|
private |
Definition at line 63 of file object_editor_card.h.
Referenced by DrawEmulatorPreview().
|
private |
Definition at line 64 of file object_editor_card.h.
|
private |
Definition at line 65 of file object_editor_card.h.
|
private |
Definition at line 74 of file object_editor_card.h.
Referenced by Draw(), DrawObjectSelector(), and DrawSelectedObjectInfo().
|
private |
Definition at line 77 of file object_editor_card.h.
Referenced by Draw(), DrawObjectSelector(), and DrawSelectedObjectInfo().
|
private |
Definition at line 78 of file object_editor_card.h.
Referenced by Draw(), DrawObjectSelector(), and DrawSelectedObjectInfo().
|
private |
Definition at line 79 of file object_editor_card.h.