1#ifndef YAZE_APP_EDITOR_DUNGEON_INTERACTION_ITEM_INTERACTION_HANDLER_H_
2#define YAZE_APP_EDITOR_DUNGEON_INTERACTION_ITEM_INTERACTION_HANDLER_H_
25 bool HandleClick(
int canvas_x,
int canvas_y)
override;
26 void HandleDrag(ImVec2 current_pos, ImVec2 delta)
override;
33 int canvas_y)
const override;
Abstract base class for entity interaction handlers.
Handles pot item placement and interaction in the dungeon editor.
void DrawSelectionHighlight() override
Draw selection highlight for selected entities.
std::optional< size_t > selected_item_index_
uint8_t GetItemId() const
Get current item ID for placement.
bool HandleClick(int canvas_x, int canvas_y) override
Handle mouse click at canvas position.
bool IsPlacementActive() const override
Check if placement mode is active.
void DrawGhostPreview() override
Draw ghost preview during placement.
void BeginPlacement() override
Begin placement mode.
void PlaceItemAtPosition(int canvas_x, int canvas_y)
Place item at position.
void HandleDrag(ImVec2 current_pos, ImVec2 delta) override
Handle mouse drag.
void ClearSelection()
Clear item selection.
std::optional< size_t > GetEntityAtPosition(int canvas_x, int canvas_y) const override
Get entity at canvas position.
bool item_placement_mode_
void DeleteSelected()
Delete selected item.
bool HasSelection() const
Check if an item is selected.
void SetItemId(uint8_t id)
Set item ID for placement.
void HandleRelease() override
Handle mouse release.
std::optional< size_t > GetSelectedIndex() const
Get selected item index.
void SelectItem(size_t index)
Select item at index.
void CancelPlacement() override
Cancel current placement.