1#ifndef YAZE_APP_EDITOR_DUNGEON_SELECTORS_OBJECT_SELECTOR_CONTENT_H_
2#define YAZE_APP_EDITOR_DUNGEON_SELECTORS_OBJECT_SELECTOR_CONTENT_H_
49 std::shared_ptr<zelda3::DungeonObjectEditor> object_editor =
nullptr);
55 std::string
GetId()
const override {
return "dungeon.object_selector"; }
66 void Draw(
bool* p_open)
override;
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.
void set_current_room_id(int room_id)
void SetContext(EditorContext ctx)
void SetGameData(zelda3::GameData *game_data)
void set_rooms(DungeonRoomStore *rooms)
void SetCurrentPaletteGroup(const gfx::PaletteGroup &palette_group)
Browse and place dungeon objects.
float GetPreferredWidth() const override
Get preferred width for this panel (optional)
std::string GetIcon() const override
Material Design icon for this panel.
void SetPlacementError(const std::string &message)
void SetOpenObjectEditorCallback(std::function< void()> callback)
static constexpr double kPlacementErrorDuration
void SetCanvasViewer(DungeonCanvasViewer *viewer)
void DrawObjectSelector()
void SetContext(EditorContext ctx)
void DrawRoomValidationBar()
zelda3::ObjectDrawInfo static_editor_draw_info_
gfx::IRenderer * renderer_
void DrawStaticObjectEditor()
int static_editor_object_id_
std::function< DungeonCanvasViewer *()> canvas_viewer_provider_
gfx::BackgroundBuffer static_preview_buffer_
TileEditorCallback tile_editor_callback_
void SetCurrentRoom(int room_id)
bool IsStaticEditorOpen() const
zelda3::RoomObject preview_object_
DungeonCanvasViewer * ResolveCanvasViewer()
void DrawInteractionSummary()
std::string GetDisplayName() const override
Human-readable name shown in menus and title bars.
void SetRooms(DungeonRoomStore *rooms)
void SetCanvasViewerProvider(std::function< DungeonCanvasViewer *()> provider)
void SetGameData(zelda3::GameData *game_data)
std::shared_ptr< zelda3::DungeonObjectEditor > object_editor_
DungeonObjectSelector & object_selector()
std::function< void()> open_object_editor_callback_
void SetCurrentPaletteGroup(const gfx::PaletteGroup &group)
std::string GetId() const override
Unique identifier for this panel.
DungeonCanvasViewer * canvas_viewer_
gui::Canvas static_preview_canvas_
int GetStaticEditorObjectId() const
void OnOpen() override
Called when panel becomes visible.
DungeonObjectSelector object_selector_
void OpenStaticObjectEditor(int object_id)
void OnClose() override
Called when panel is hidden.
std::string last_placement_error_
std::string GetEditorCategory() const override
Editor category this panel belongs to.
ObjectSelectorContent(gfx::IRenderer *renderer, Rom *rom, DungeonCanvasViewer *canvas_viewer, std::shared_ptr< zelda3::DungeonObjectEditor > object_editor=nullptr)
void SelectObject(int obj_id)
void CloseStaticObjectEditor()
bool static_preview_rendered_
int GetPriority() const override
Get display priority for menu ordering.
gfx::Bitmap static_preview_bitmap_
double placement_error_time_
void Draw(bool *p_open) override
Draw the panel content.
std::function< void(int16_t object_id)> TileEditorCallback
std::unique_ptr< zelda3::ObjectParser > object_parser_
void SetAgentOptimizedLayout(bool enabled)
void set_tile_editor_callback(TileEditorCallback callback)
Base interface for all logical window content components.
Represents a bitmap image optimized for SNES ROM hacking.
Defines an abstract interface for all rendering operations.
Modern, robust canvas for drawing and manipulating graphics.
#define ICON_MD_CONSTRUCTION
Lightweight view into the essential runtime context (Rom + GameData)
Represents a group of palettes.
Draw routine information for object rendering.