Handles object selection, placement, and interaction within the dungeon canvas. More...
#include <dungeon_object_interaction.h>
Classes | |
| struct | EntityClipboard |
Private Member Functions | |
| DungeonCanvasTransform | GetCanvasTransform () const |
| std::pair< int, int > | CalculateObjectBounds (const zelda3::RoomObject &object) |
| void | HandleLeftClick (const ImVec2 &canvas_mouse_pos) |
| void | UpdateCollisionPainting (const ImVec2 &canvas_mouse_pos) |
| void | UpdateWaterFillPainting (const ImVec2 &canvas_mouse_pos) |
| void | HandleObjectSelectionStart (const ImVec2 &canvas_mouse_pos) |
| void | HandleEmptySpaceClick (const ImVec2 &canvas_mouse_pos) |
| void | HandleMouseRelease () |
| bool | HandleKeyboardNudge () |
| void | CopySelectedEntitiesToClipboard (bool clipboard_origin_set) |
| std::vector< SelectedEntity > | PasteEntityClipboardAt (int target_pixel_x, int target_pixel_y) |
Private Attributes | |
| gui::Canvas * | canvas_ |
| zelda3::DungeonEditorSystem * | editor_system_ = nullptr |
| DungeonRoomStore * | rooms_ = nullptr |
| int | current_room_id_ = 0 |
| InteractionContext | interaction_context_ |
| InteractionCoordinator | entity_coordinator_ |
| InteractionModeManager | mode_manager_ |
| zelda3::RoomObject | preview_object_ {0, 0, 0, 0, 0} |
| gfx::PaletteGroup | current_palette_group_ |
| EntityClipboard | entity_clipboard_ |
| ObjectSelection | selection_ |
| std::function< void(const zelda3::RoomObject &) | object_placed_callback_ ) |
Handles object selection, placement, and interaction within the dungeon canvas.
This component manages mouse interactions for object selection (similar to OverworldEditor), object placement, drag operations, and multi-object selection.
Definition at line 43 of file dungeon_object_interaction.h.
|
inlineexplicit |
Definition at line 45 of file dungeon_object_interaction.h.
References yaze::editor::InteractionContext::canvas, entity_coordinator_, interaction_context_, yaze::editor::InteractionContext::selection, selection_, and yaze::editor::InteractionCoordinator::SetContext().

|
inline |
Set the unified interaction context.
This is the preferred method for configuring the interaction handler. It propagates context to all sub-handlers.
Definition at line 62 of file dungeon_object_interaction.h.
References yaze::editor::InteractionContext::canvas, canvas_, entity_coordinator_, interaction_context_, yaze::editor::InteractionContext::selection, selection_, and yaze::editor::InteractionCoordinator::SetContext().

|
inline |
Get the interaction coordinator for entity handling.
Use this for advanced entity operations (doors, sprites, items).
Definition at line 74 of file dungeon_object_interaction.h.
References entity_coordinator_.
Referenced by yaze::editor::BuildDungeonSelectionSnapshot(), yaze::editor::ObjectEditorContent::DeleteAllSelectedTypeInRoom(), yaze::editor::ObjectEditorContent::DeleteSelectedEntity(), yaze::editor::ObjectSelectorContent::Draw(), yaze::editor::DungeonCanvasViewer::DrawChangePingOverlay(), yaze::editor::ObjectEditorContent::DrawSelectedDoorInfo(), yaze::editor::ObjectEditorContent::DuplicateSelectedSprite(), yaze::editor::DungeonCanvasViewer::GetObjectUnderContextCursor(), yaze::editor::DungeonCanvasViewer::HandleRoomCanvasDropTargets(), yaze::editor::DungeonCanvasViewer::HandleTouchLongPressContextMenu(), yaze::editor::anonymous_namespace{object_editor_content.cc}::MutateSelectedItem(), yaze::editor::anonymous_namespace{object_editor_content.cc}::MutateSelectedSprite(), and yaze::editor::DungeonCanvasViewer::RefreshRomBackedState().
|
inline |
Definition at line 75 of file dungeon_object_interaction.h.
References entity_coordinator_.
|
inline |
Definition at line 81 of file dungeon_object_interaction.h.
References interaction_context_, and yaze::editor::InteractionContext::last_mutation_domain.
|
inline |
Definition at line 84 of file dungeon_object_interaction.h.
References interaction_context_, and yaze::editor::InteractionContext::last_invalidation_domain.
|
inline |
Definition at line 89 of file dungeon_object_interaction.h.
References entity_coordinator_, interaction_context_, yaze::editor::InteractionContext::rom, and yaze::editor::InteractionCoordinator::SetContext().
Referenced by yaze::editor::DungeonCanvasViewer::DungeonCanvasViewer(), yaze::editor::DungeonCanvasViewer::SetContext(), and yaze::editor::DungeonCanvasViewer::SetRom().

| void yaze::editor::DungeonObjectInteraction::HandleCanvasMouseInput | ( | ) |
Definition at line 39 of file dungeon_object_interaction.cc.
References CancelPlacement(), canvas_, yaze::editor::DraggingObjects, entity_coordinator_, GetCanvasTransform(), yaze::editor::InteractionModeManager::GetMode(), yaze::editor::InteractionCoordinator::HandleDrag(), HandleKeyboardNudge(), HandleLayerKeyboardShortcuts(), HandleLeftClick(), HandleMouseRelease(), yaze::editor::InteractionCoordinator::HandleMouseWheel(), yaze::editor::InteractionCoordinator::HasEntitySelection(), yaze::gui::Canvas::IsMouseHovering(), yaze::editor::InteractionCoordinator::IsPlacementActive(), yaze::editor::ObjectSelection::IsRectangleSelectionActive(), yaze::editor::dungeon_coords::IsWithinBounds(), mode_manager_, yaze::editor::PaintCollision, yaze::editor::PaintWaterFill, yaze::editor::DungeonCanvasTransform::ScreenToRoomPixels(), selection_, UpdateCollisionPainting(), and UpdateWaterFillPainting().
Referenced by yaze::editor::DungeonCanvasViewer::DrawRoomCanvasContent().
| void yaze::editor::DungeonObjectInteraction::CheckForObjectSelection | ( | ) |
Definition at line 392 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::DungeonCanvasViewer::DrawRoomCanvasContent().
| void yaze::editor::DungeonObjectInteraction::PlaceObjectAtPosition | ( | int | room_x, |
| int | room_y ) |
Definition at line 571 of file dungeon_object_interaction.cc.
| void yaze::editor::DungeonObjectInteraction::DrawSelectionHighlights | ( | ) |
Definition at line 420 of file dungeon_object_interaction.cc.
References yaze::zelda3::DimensionService::Get(), yaze::zelda3::DimensionService::GetDimensions(), yaze::zelda3::GetObjectName(), yaze::zelda3::GetObjectSubtype(), ICON_MD_DRAG_INDICATOR, ICON_MD_MOUSE, ICON_MD_TOUCH_APP, and yaze::zelda3::UsesRoomObjectStream().
Referenced by yaze::editor::DungeonCanvasViewer::DrawRoomCanvasContent().
| void yaze::editor::DungeonObjectInteraction::DrawHoverHighlight | ( | const std::vector< zelda3::RoomObject > & | objects | ) |
Definition at line 505 of file dungeon_object_interaction.cc.
References yaze::zelda3::DimensionService::Get(), yaze::zelda3::DimensionService::GetSelectionBoundsPixels(), yaze::editor::DungeonCanvasTransform::RoomPixelsToScreen(), yaze::editor::DungeonCanvasTransform::RoomSizeToScreen(), and yaze::editor::DungeonCanvasTransform::ScreenToRoomPixelCoordinates().
| void yaze::editor::DungeonObjectInteraction::DrawGhostPreview | ( | ) |
Definition at line 869 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::DungeonCanvasViewer::DrawRoomCanvasContent().
| std::pair< int, int > yaze::editor::DungeonObjectInteraction::RoomToCanvasCoordinates | ( | int | room_x, |
| int | room_y ) const |
Definition at line 583 of file dungeon_object_interaction.cc.
| std::pair< int, int > yaze::editor::DungeonObjectInteraction::CanvasToRoomCoordinates | ( | int | canvas_x, |
| int | canvas_y ) const |
Definition at line 589 of file dungeon_object_interaction.cc.
Referenced by UpdateCollisionPainting().
| bool yaze::editor::DungeonObjectInteraction::IsWithinCanvasBounds | ( | int | canvas_x, |
| int | canvas_y, | ||
| int | margin = 32 ) const |
Definition at line 595 of file dungeon_object_interaction.cc.
| void yaze::editor::DungeonObjectInteraction::SetCurrentRoom | ( | DungeonRoomStore * | rooms, |
| int | room_id ) |
Definition at line 600 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::DungeonCanvasViewer::PrepareRoomStateForCanvas(), and yaze::editor::DungeonCanvasViewer::RefreshRomBackedState().
| void yaze::editor::DungeonObjectInteraction::SetPreviewObject | ( | const zelda3::RoomObject & | object, |
| bool | loaded ) |
Definition at line 610 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::DungeonCanvasViewer::ClearPreviewObject(), and yaze::editor::DungeonCanvasViewer::SetPreviewObject().
|
inline |
Definition at line 114 of file dungeon_object_interaction.h.
References yaze::editor::InteractionContext::current_palette_group, current_palette_group_, entity_coordinator_, interaction_context_, and yaze::editor::InteractionCoordinator::SetContext().
Referenced by yaze::editor::DungeonCanvasViewer::SetPreviewObject().

|
inline |
Definition at line 121 of file dungeon_object_interaction.h.
References mode_manager_.
Referenced by yaze::editor::DungeonCanvasViewer::BuildDrawIssueReport(), yaze::editor::DungeonCanvasViewer::BuildSelectionIssueReport(), yaze::editor::CustomCollisionPanel::Draw(), yaze::editor::WaterFillPanel::Draw(), yaze::editor::DungeonWorkbenchContent::DrawCanvasPane(), yaze::editor::DungeonWorkbenchContent::DrawInspectorShelfRoom(), and yaze::editor::DungeonCanvasViewer::RefreshRomBackedState().
|
inline |
Definition at line 122 of file dungeon_object_interaction.h.
References mode_manager_.
|
inline |
Definition at line 125 of file dungeon_object_interaction.h.
References yaze::editor::InteractionModeManager::GetMode(), mode_manager_, and yaze::editor::PlaceObject.
Referenced by yaze::editor::ObjectSelectorContent::DrawInteractionSummary().

| void yaze::editor::DungeonObjectInteraction::CancelPlacement | ( | ) |
Definition at line 1054 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::ObjectSelectorContent::CancelPlacement(), HandleCanvasMouseInput(), and yaze::editor::DungeonCanvasViewer::RefreshRomBackedState().
| void yaze::editor::DungeonObjectInteraction::SetDoorPlacementMode | ( | bool | enabled, |
| zelda3::DoorType | type = zelda3::DoorType::NormalDoor ) |
Definition at line 994 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::DungeonCanvasViewer::BuildInsertContextMenu(), yaze::editor::DoorEditorContent::CancelPlacement(), and yaze::editor::DoorEditorContent::Draw().
|
inline |
Definition at line 134 of file dungeon_object_interaction.h.
References yaze::editor::InteractionModeManager::GetMode(), mode_manager_, and yaze::editor::PlaceDoor.
Referenced by yaze::editor::DungeonCanvasViewer::BuildInsertContextMenu().

|
inline |
Definition at line 137 of file dungeon_object_interaction.h.
References yaze::editor::InteractionModeManager::GetModeState(), mode_manager_, and yaze::editor::ModeState::preview_door_type.

|
inline |
Definition at line 140 of file dungeon_object_interaction.h.
References yaze::editor::InteractionModeManager::GetModeState(), mode_manager_, yaze::zelda3::NormalDoor, and yaze::editor::ModeState::preview_door_type.

|
inline |
Definition at line 144 of file dungeon_object_interaction.h.
References yaze::editor::InteractionModeManager::CancelCurrentMode(), yaze::editor::InteractionModeManager::GetMode(), mode_manager_, and yaze::editor::PlaceDoor.

| void yaze::editor::DungeonObjectInteraction::SetSpritePlacementMode | ( | bool | enabled, |
| uint8_t | sprite_id = 0 ) |
Definition at line 1011 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::SpriteEditorPanel::DrawPlacementControls(), and yaze::editor::SpriteEditorPanel::DrawSpriteSelector().
|
inline |
Definition at line 152 of file dungeon_object_interaction.h.
References yaze::editor::InteractionModeManager::GetMode(), mode_manager_, and yaze::editor::PlaceSprite.

|
inline |
Definition at line 155 of file dungeon_object_interaction.h.
References yaze::editor::InteractionModeManager::GetModeState(), mode_manager_, and yaze::editor::ModeState::preview_sprite_id.

|
inline |
Definition at line 158 of file dungeon_object_interaction.h.
References yaze::editor::InteractionModeManager::GetModeState(), mode_manager_, and yaze::editor::ModeState::preview_sprite_id.

|
inline |
Definition at line 161 of file dungeon_object_interaction.h.
References yaze::editor::InteractionModeManager::CancelCurrentMode(), yaze::editor::InteractionModeManager::GetMode(), mode_manager_, and yaze::editor::PlaceSprite.

| void yaze::editor::DungeonObjectInteraction::SetItemPlacementMode | ( | bool | enabled, |
| uint8_t | item_id = 0 ) |
Definition at line 1028 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::ItemEditorPanel::DrawItemSelector(), and yaze::editor::ItemEditorPanel::DrawPlacementControls().
|
inline |
Definition at line 169 of file dungeon_object_interaction.h.
References yaze::editor::InteractionModeManager::GetMode(), mode_manager_, and yaze::editor::PlaceItem.

|
inline |
Definition at line 172 of file dungeon_object_interaction.h.
References yaze::editor::InteractionModeManager::GetModeState(), mode_manager_, and yaze::editor::ModeState::preview_item_id.

|
inline |
Definition at line 175 of file dungeon_object_interaction.h.
References yaze::editor::InteractionModeManager::GetModeState(), mode_manager_, and yaze::editor::ModeState::preview_item_id.

|
inline |
Definition at line 178 of file dungeon_object_interaction.h.
References yaze::editor::InteractionModeManager::CancelCurrentMode(), yaze::editor::InteractionModeManager::GetMode(), mode_manager_, and yaze::editor::PlaceItem.

|
inline |
Definition at line 185 of file dungeon_object_interaction.h.
References yaze::editor::ObjectSelection::GetSelectedIndices(), and selection_.
Referenced by yaze::editor::DungeonCanvasViewer::BuildDrawIssueReport(), yaze::editor::BuildDungeonSelectionSnapshot(), yaze::editor::DungeonCanvasViewer::BuildSelectionContextMenuItems(), yaze::editor::DungeonCanvasViewer::BuildSelectionIssueReport(), yaze::editor::ObjectEditorContent::CycleObjectSelection(), yaze::editor::DungeonCanvasViewer::DrawChangePingOverlay(), yaze::editor::DungeonCanvasViewer::DrawRoomCanvasContent(), yaze::editor::ObjectEditorContent::DrawSelectedObjectInfo(), yaze::editor::ObjectEditorContent::DuplicateSelectedObjects(), yaze::editor::GetDefaultSelectionIssueCategory(), yaze::editor::DungeonCanvasViewer::HandleTouchLongPressContextMenu(), yaze::editor::ObjectEditorContent::OnSelectionChanged(), and yaze::editor::SyncObjectEditorSelectionToCanvas().

|
inline |
Definition at line 188 of file dungeon_object_interaction.h.
References yaze::editor::ObjectSelection::Add, yaze::editor::InteractionCoordinator::ClearEntitySelection(), yaze::editor::ObjectSelection::ClearSelection(), entity_coordinator_, selection_, and yaze::editor::ObjectSelection::SelectObject().
Referenced by yaze::editor::DungeonCanvasViewer::HandleRoomCanvasDropTargets(), yaze::editor::DungeonCanvasViewer::HandleTouchLongPressContextMenu(), yaze::editor::ObjectEditorContent::SelectAllObjects(), and yaze::editor::SyncObjectEditorSelectionToCanvas().

|
inline |
Definition at line 195 of file dungeon_object_interaction.h.
References yaze::editor::ObjectSelection::HasSelection(), yaze::editor::ObjectSelection::IsRectangleSelectionActive(), and selection_.

| void yaze::editor::DungeonObjectInteraction::ClearSelection | ( | ) |
Definition at line 638 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::ObjectEditorContent::DeselectAllObjects(), and yaze::editor::DungeonCanvasViewer::RefreshRomBackedState().
|
inline |
Definition at line 199 of file dungeon_object_interaction.h.
References yaze::editor::ObjectSelection::IsObjectSelected(), and selection_.

|
inline |
Definition at line 202 of file dungeon_object_interaction.h.
References yaze::editor::ObjectSelection::GetSelectionCount(), and selection_.
Referenced by yaze::editor::DungeonCanvasViewer::BuildReportContextMenu(), yaze::editor::DungeonWorkbenchContent::DrawInspectorCompactSummary(), yaze::editor::DungeonWorkbenchContent::DrawInspectorShelf(), and yaze::editor::DungeonCanvasViewer::HandleTouchLongPressContextMenu().

|
inline |
Definition at line 205 of file dungeon_object_interaction.h.
References selection_, and yaze::editor::ObjectSelection::SetSelectionChangedCallback().
Referenced by yaze::editor::ObjectEditorContent::SetupSelectionCallbacks().

| void yaze::editor::DungeonObjectInteraction::HandleScrollWheelResize | ( | ) |
Definition at line 873 of file dungeon_object_interaction.cc.
| bool yaze::editor::DungeonObjectInteraction::NudgeSelected | ( | int | delta_x, |
| int | delta_y ) |
Definition at line 372 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::ObjectEditorContent::NudgeCurrentSelection().
| void yaze::editor::DungeonObjectInteraction::HandleDeleteSelected | ( | ) |
Definition at line 645 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::ObjectEditorContent::DeleteCurrentSelection(), yaze::editor::DungeonCanvasViewer::DeleteSelectedObjects(), yaze::editor::ObjectEditorContent::DeleteSelectedObjects(), and yaze::editor::DungeonCanvasViewer::HandleTouchLongPressContextMenu().
| void yaze::editor::DungeonObjectInteraction::HandleDeleteAllObjects | ( | ) |
Definition at line 657 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::DungeonCanvasViewer::BuildRoomContextMenu().
| void yaze::editor::DungeonObjectInteraction::HandleCopySelected | ( | ) |
Definition at line 662 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::ObjectEditorContent::CopySelectedObjects(), and yaze::editor::DungeonCanvasViewer::HandleTouchLongPressContextMenu().
| void yaze::editor::DungeonObjectInteraction::HandlePasteObjects | ( | ) |
Definition at line 819 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::ObjectEditorContent::PasteObjects().
|
inline |
Definition at line 223 of file dungeon_object_interaction.h.
References entity_clipboard_, entity_coordinator_, yaze::editor::TileObjectHandler::HasClipboardData(), yaze::editor::DungeonObjectInteraction::EntityClipboard::HasData(), and yaze::editor::InteractionCoordinator::tile_handler().

| bool yaze::editor::DungeonObjectInteraction::SetObjectId | ( | size_t | index, |
| int16_t | id ) |
Definition at line 878 of file dungeon_object_interaction.cc.
| bool yaze::editor::DungeonObjectInteraction::SetObjectSize | ( | size_t | index, |
| uint8_t | size ) |
Definition at line 884 of file dungeon_object_interaction.cc.
| bool yaze::editor::DungeonObjectInteraction::SetObjectLayer | ( | size_t | index, |
| zelda3::RoomObject::LayerType | layer ) |
Definition at line 890 of file dungeon_object_interaction.cc.
| bool yaze::editor::DungeonObjectInteraction::CanAssignSelectedObjectsToLayer | ( | int | target_layer | ) | const |
Definition at line 901 of file dungeon_object_interaction.cc.
References yaze::zelda3::UsesRoomObjectStream().

| bool yaze::editor::DungeonObjectInteraction::SendSelectedToLayer | ( | int | target_layer | ) |
Definition at line 924 of file dungeon_object_interaction.cc.
| void yaze::editor::DungeonObjectInteraction::SendSelectedToFront | ( | ) |
Definition at line 932 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::DungeonCanvasViewer::HandleTouchLongPressContextMenu().
| void yaze::editor::DungeonObjectInteraction::SendSelectedToBack | ( | ) |
Definition at line 937 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::DungeonCanvasViewer::HandleTouchLongPressContextMenu().
| void yaze::editor::DungeonObjectInteraction::BringSelectedForward | ( | ) |
Definition at line 942 of file dungeon_object_interaction.cc.
| void yaze::editor::DungeonObjectInteraction::SendSelectedBackward | ( | ) |
Definition at line 947 of file dungeon_object_interaction.cc.
|
inline |
Definition at line 251 of file dungeon_object_interaction.h.
References selection_, and yaze::editor::ObjectSelection::SetLayerFilter().

|
inline |
Definition at line 252 of file dungeon_object_interaction.h.
References yaze::editor::ObjectSelection::GetLayerFilter(), and selection_.

|
inline |
Definition at line 253 of file dungeon_object_interaction.h.
References yaze::editor::ObjectSelection::IsLayerFilterActive(), and selection_.

|
inline |
Definition at line 254 of file dungeon_object_interaction.h.
References yaze::editor::ObjectSelection::IsMaskModeActive(), and selection_.
Referenced by yaze::editor::DungeonCanvasViewer::DrawRoomCanvasContent().

|
inline |
Definition at line 255 of file dungeon_object_interaction.h.
References yaze::editor::ObjectSelection::GetLayerFilterName(), and selection_.

|
inline |
Definition at line 258 of file dungeon_object_interaction.h.
References selection_, and yaze::editor::ObjectSelection::SetLayersMerged().
Referenced by yaze::editor::DungeonCanvasViewer::DrawLayerControls().

|
inline |
Definition at line 259 of file dungeon_object_interaction.h.
References yaze::editor::ObjectSelection::AreLayersMerged(), and selection_.

| void yaze::editor::DungeonObjectInteraction::HandleLayerKeyboardShortcuts | ( | ) |
Definition at line 952 of file dungeon_object_interaction.cc.
Referenced by HandleCanvasMouseInput().
|
inline |
Definition at line 265 of file dungeon_object_interaction.h.
References object_placed_callback_.
|
inline |
Definition at line 269 of file dungeon_object_interaction.h.
References entity_coordinator_, interaction_context_, yaze::editor::InteractionContext::on_invalidate_cache, and yaze::editor::InteractionCoordinator::SetContext().

|
inline |
Definition at line 273 of file dungeon_object_interaction.h.
References entity_coordinator_, interaction_context_, yaze::editor::InteractionContext::on_mutation, and yaze::editor::InteractionCoordinator::SetContext().

|
inline |
Definition at line 277 of file dungeon_object_interaction.h.
References editor_system_.
Referenced by yaze::editor::DungeonCanvasViewer::SetEditorSystem().
| void yaze::editor::DungeonObjectInteraction::SelectEntity | ( | EntityType | type, |
| size_t | index ) |
Definition at line 1045 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::DoorEditorContent::Draw(), yaze::editor::ItemEditorPanel::DrawRoomItems(), yaze::editor::SpriteEditorPanel::DrawRoomSprites(), yaze::editor::DungeonCanvasViewer::DungeonCanvasViewer(), and yaze::editor::DungeonCanvasViewer::HandleTouchLongPressContextMenu().
| void yaze::editor::DungeonObjectInteraction::ClearEntitySelection | ( | ) |
Definition at line 1050 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::ObjectEditorContent::DeselectAllObjects().
|
inline |
Definition at line 284 of file dungeon_object_interaction.h.
References entity_coordinator_, and yaze::editor::InteractionCoordinator::HasEntitySelection().
Referenced by yaze::editor::DungeonCanvasViewer::BuildDrawIssueReport(), yaze::editor::BuildDungeonSelectionSnapshot(), yaze::editor::DungeonCanvasViewer::BuildReportContextMenu(), yaze::editor::DungeonCanvasViewer::BuildSelectionIssueReport(), yaze::editor::DoorEditorContent::Draw(), yaze::editor::DungeonCanvasViewer::DrawChangePingOverlay(), yaze::editor::DungeonCanvasViewer::DrawRoomCanvasContent(), yaze::editor::ItemEditorPanel::DrawRoomItems(), yaze::editor::SpriteEditorPanel::DrawRoomSprites(), yaze::editor::GetDefaultSelectionIssueCategory(), HandleLeftClick(), and yaze::editor::DungeonCanvasViewer::HandleTouchLongPressContextMenu().

|
inline |
Definition at line 287 of file dungeon_object_interaction.h.
References entity_coordinator_, and yaze::editor::InteractionCoordinator::GetSelectedEntity().
Referenced by yaze::editor::DungeonCanvasViewer::BuildDrawIssueReport(), yaze::editor::BuildDungeonSelectionSnapshot(), yaze::editor::DungeonCanvasViewer::BuildSelectionIssueReport(), yaze::editor::DoorEditorContent::Draw(), yaze::editor::DungeonCanvasViewer::DrawChangePingOverlay(), yaze::editor::DungeonCanvasViewer::DrawRoomCanvasContent(), yaze::editor::ItemEditorPanel::DrawRoomItems(), yaze::editor::SpriteEditorPanel::DrawRoomSprites(), yaze::editor::ObjectEditorContent::DrawSelectedDoorInfo(), yaze::editor::ObjectEditorContent::DrawSelectedItemInfo(), yaze::editor::ObjectEditorContent::DrawSelectedSpriteInfo(), yaze::editor::GetDefaultSelectionIssueCategory(), and yaze::editor::DungeonCanvasViewer::HandleTouchLongPressContextMenu().

| void yaze::editor::DungeonObjectInteraction::DrawEntitySelectionHighlights | ( | ) |
Definition at line 1061 of file dungeon_object_interaction.cc.
Referenced by yaze::editor::DungeonCanvasViewer::DrawRoomCanvasContent().
| void yaze::editor::DungeonObjectInteraction::DrawDoorSnapIndicators | ( | ) |
Definition at line 1066 of file dungeon_object_interaction.cc.
|
inline |
Definition at line 296 of file dungeon_object_interaction.h.
References entity_coordinator_, interaction_context_, yaze::editor::InteractionContext::on_entity_changed, and yaze::editor::InteractionCoordinator::SetContext().

|
inline |
Definition at line 300 of file dungeon_object_interaction.h.
References entity_coordinator_, interaction_context_, yaze::editor::InteractionContext::on_door_pair_navigation, and yaze::editor::InteractionCoordinator::SetContext().
Referenced by yaze::editor::DungeonCanvasViewer::DungeonCanvasViewer().

|
inlineprivate |
Definition at line 307 of file dungeon_object_interaction.h.
References canvas_, yaze::gui::Canvas::global_scale(), yaze::gui::Canvas::scrolling(), and yaze::gui::Canvas::zero_point().
Referenced by HandleCanvasMouseInput().

|
private |
Definition at line 896 of file dungeon_object_interaction.cc.
References yaze::zelda3::DimensionService::Get(), and yaze::zelda3::DimensionService::GetPixelDimensions().

|
private |
Definition at line 117 of file dungeon_object_interaction.cc.
References entity_coordinator_, yaze::editor::InteractionCoordinator::HandleClick(), HandleEmptySpaceClick(), HandleObjectSelectionStart(), HasEntitySelection(), yaze::editor::ObjectSelection::HasSelection(), yaze::editor::InteractionCoordinator::IsPlacementActive(), yaze::editor::dungeon_coords::IsWithinBounds(), and selection_.
Referenced by HandleCanvasMouseInput().
|
private |
Definition at line 144 of file dungeon_object_interaction.cc.
References CanvasToRoomCoordinates(), current_room_id_, yaze::editor::paint_util::ForEachPointInSquareBrush(), yaze::editor::paint_util::ForEachPointOnLine(), yaze::editor::InteractionModeManager::GetModeState(), interaction_context_, yaze::editor::ModeState::is_painting, yaze::editor::kCustomCollision, mode_manager_, yaze::editor::InteractionContext::NotifyInvalidateCache(), yaze::editor::InteractionContext::NotifyMutation(), and rooms_.
Referenced by HandleCanvasMouseInput().
|
private |
Definition at line 203 of file dungeon_object_interaction.cc.
Referenced by HandleCanvasMouseInput().
|
private |
Definition at line 264 of file dungeon_object_interaction.cc.
Referenced by HandleLeftClick().
|
private |
Definition at line 281 of file dungeon_object_interaction.cc.
Referenced by HandleLeftClick().
|
private |
Definition at line 300 of file dungeon_object_interaction.cc.
Referenced by HandleCanvasMouseInput().
|
private |
Definition at line 332 of file dungeon_object_interaction.cc.
Referenced by HandleCanvasMouseInput().
|
private |
Definition at line 702 of file dungeon_object_interaction.cc.
References yaze::editor::SelectedEntity::type.
|
private |
Definition at line 765 of file dungeon_object_interaction.cc.
|
private |
Definition at line 312 of file dungeon_object_interaction.h.
Referenced by GetCanvasTransform(), HandleCanvasMouseInput(), and SetContext().
|
private |
Definition at line 313 of file dungeon_object_interaction.h.
Referenced by SetEditorSystem().
|
private |
Definition at line 314 of file dungeon_object_interaction.h.
Referenced by UpdateCollisionPainting().
|
private |
Definition at line 315 of file dungeon_object_interaction.h.
Referenced by UpdateCollisionPainting().
|
private |
Definition at line 318 of file dungeon_object_interaction.h.
Referenced by DungeonObjectInteraction(), last_invalidation_domain(), last_mutation_domain(), SetCacheInvalidationCallback(), SetContext(), SetCurrentPaletteGroup(), SetDoorPairNavigationCallback(), SetEntityChangedCallback(), SetMutationCallback(), SetRom(), and UpdateCollisionPainting().
|
private |
Definition at line 319 of file dungeon_object_interaction.h.
Referenced by DungeonObjectInteraction(), entity_coordinator(), entity_coordinator(), GetSelectedEntity(), HandleCanvasMouseInput(), HandleLeftClick(), HasClipboardData(), HasEntitySelection(), SetCacheInvalidationCallback(), SetContext(), SetCurrentPaletteGroup(), SetDoorPairNavigationCallback(), SetEntityChangedCallback(), SetMutationCallback(), SetRom(), and SetSelectedObjects().
|
private |
Definition at line 322 of file dungeon_object_interaction.h.
Referenced by CancelDoorPlacement(), CancelItemPlacement(), CancelSpritePlacement(), GetPreviewDoorType(), GetPreviewItemId(), GetPreviewSpriteId(), HandleCanvasMouseInput(), IsDoorPlacementActive(), IsItemPlacementActive(), IsObjectLoaded(), IsSpritePlacementActive(), mode_manager(), mode_manager(), SetPreviewDoorType(), SetPreviewItemId(), SetPreviewSpriteId(), and UpdateCollisionPainting().
|
private |
Definition at line 360 of file dungeon_object_interaction.h.
|
private |
Definition at line 363 of file dungeon_object_interaction.h.
Referenced by SetCurrentPaletteGroup().
|
private |
Definition at line 364 of file dungeon_object_interaction.h.
Referenced by HasClipboardData().
|
private |
Definition at line 367 of file dungeon_object_interaction.h.
Referenced by AreLayersMerged(), DungeonObjectInteraction(), GetLayerFilter(), GetLayerFilterName(), GetSelectedObjectIndices(), GetSelectionCount(), HandleCanvasMouseInput(), HandleLeftClick(), IsLayerFilterActive(), IsMaskModeActive(), IsObjectSelectActive(), IsObjectSelected(), SetContext(), SetLayerFilter(), SetLayersMerged(), SetSelectedObjects(), and SetSelectionChangeCallback().
|
private |
Definition at line 370 of file dungeon_object_interaction.h.
Referenced by SetObjectPlacedCallback().