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"
29class ObjectTileEditorPanel;
58 std::unique_ptr<zelda3::DungeonEditorSystem>* system) {
126 int subtype = -1)
const;
161 ImVec2(0x100 + 1, 0x10 * 0x40 + 1)};
172 std::array<zelda3::Room, 0x128>*
rooms_ =
nullptr;
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 DrawObjectRenderer()
std::function< void(const zelda3::RoomObject &) object_placement_callback_)
uint8_t cached_preview_palette_
void DrawCompactPropertiesEditor()
int entrance_target_room_id_
project::YazeProject * project_
void DrawNewCustomObjectDialog()
void EnsureCustomObjectsInitialized()
zelda3::RoomObject preview_object_
ImU32 GetObjectTypeColor(int object_id)
zelda3::DungeonObjectEditor * object_editor_
void DrawIntegratedEditingPanels()
std::array< zelda3::Room, 0x128 > * rooms_
bool GetOrCreatePreview(const zelda3::RoomObject &object, float size, gfx::BackgroundBuffer **out)
void PlaceObjectAtPosition(int x, int y)
MinecartTrackEditorPanel minecart_track_editor_
gui::Canvas room_gfx_canvas_
void SetCustomObjectsFolder(const std::string &folder)
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 set_rooms(std::array< zelda3::Room, 0x128 > *rooms)
std::function< void(int)> object_double_click_callback_
void SetContext(EditorContext ctx)
int GetStaticEditorObjectId() const
void RenderObjectPrimitive(const zelda3::RoomObject &object, int x, int y)
void SetProject(project::YazeProject *project)
void DrawCompactEntranceEditor()
std::string GetObjectTypeSymbol(int object_id)
ObjectTileEditorPanel * tile_editor_panel_
void SetGameData(zelda3::GameData *game_data)
void SetObjectDoubleClickCallback(std::function< void(int)> callback)
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 registry_initialized_
zelda3::GameData * game_data() const
void set_object_editor(std::unique_ptr< zelda3::DungeonObjectEditor > *editor)
void SetCurrentPaletteGroup(const gfx::PaletteGroup &palette_group)
bool enable_object_previews_
void DrawCompactDoorEditor()
std::unique_ptr< zelda3::DungeonEditorSystem > * dungeon_editor_system_
void DrawCompactObjectEditor()
void DrawCompactItemEditor()
void DrawCompactSpriteEditor()
std::array< zelda3::Room, 0x128 > * get_rooms()
void set_dungeon_editor_system(std::unique_ptr< zelda3::DungeonEditorSystem > *system)
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
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)
void SetStaticEditorObjectId(int obj_id)
std::string custom_objects_folder_
void DrawCompactChestEditor()
int static_editor_object_id_
void set_current_palette_group_id(uint64_t id)
void DrawObjectAssetBrowser()
gfx::PaletteGroup current_palette_group_
bool MatchesObjectFilter(int obj_id, int filter_type)
gui::Canvas object_canvas_
void SetObjectPlacementCallback(std::function< void(const zelda3::RoomObject &)> callback)
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).
Modern, robust canvas for drawing and manipulating graphics.
Interactive dungeon object editor with scroll wheel support.
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.