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.