1#ifndef YAZE_APP_EDITOR_DUNGEON_DUNGEON_OBJECT_SELECTOR_H
2#define YAZE_APP_EDITOR_DUNGEON_DUNGEON_OBJECT_SELECTOR_H
18#include "imgui/imgui.h"
56 std::unique_ptr<zelda3::DungeonEditorSystem>* system) {
134 ImVec2(0x100 + 1, 0x10 * 0x40 + 1)};
143 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()
std::map< int, std::unique_ptr< gfx::BackgroundBuffer > > preview_cache_
int entrance_target_room_id_
bool GetOrCreatePreview(int obj_id, float size, gfx::BackgroundBuffer **out)
zelda3::RoomObject preview_object_
ImU32 GetObjectTypeColor(int object_id)
zelda3::DungeonObjectEditor * object_editor_
void DrawIntegratedEditingPanels()
std::array< zelda3::Room, 0x128 > * rooms_
void PlaceObjectAtPosition(int x, int y)
MinecartTrackEditorPanel minecart_track_editor_
gui::Canvas room_gfx_canvas_
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 DrawCompactEntranceEditor()
std::string GetObjectTypeSymbol(int object_id)
void SetGameData(zelda3::GameData *game_data)
void SetObjectDoubleClickCallback(std::function< void(int)> callback)
gfx::SnesPalette preview_palette_
bool IsObjectLoaded() 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)
void SelectObject(int obj_id)
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)
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_)
EditorContext context() const
zelda3::RoomObject MakePreviewObject(int obj_id) const
int cached_preview_room_id_
bool DrawObjectPreview(const zelda3::RoomObject &object, ImVec2 top_left, float size)
void SetStaticEditorObjectId(int obj_id)
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()
uint64_t current_palette_group_id_
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.