Manages tile painting, fill, selection, and eyedropper operations. More...
#include <tile_painting_manager.h>

Public Member Functions | |
| TilePaintingManager (const TilePaintingDependencies &deps, const TilePaintingCallbacks &callbacks) | |
| void | CheckForOverworldEdits () |
| Main entry point: check for tile edits (paint, fill, stamp). | |
| void | CheckForSelectRectangle () |
| Draw and create the tile16 IDs that are currently selected. | |
| void | RenderUpdatedMapBitmap (const ImVec2 &click_position, const std::vector< uint8_t > &tile_data) |
| Update bitmap pixels after a single tile paint. | |
| bool | PickTile16FromHoveredCanvas () |
| Eyedropper: pick the tile16 under the hovered canvas position. | |
| void | ToggleBrushTool () |
| Toggle between DRAW_TILE and MOUSE modes. | |
| void | ActivateFillTool () |
| Toggle FILL_TILE mode on/off. | |
Private Member Functions | |
| void | DrawOverworldEdits () |
| Handle the actual drawing of a single tile (called by CheckForOverworldEdits when DrawTilemapPainter triggers). | |
Private Attributes | |
| TilePaintingDependencies | deps_ |
| TilePaintingCallbacks | callbacks_ |
Manages tile painting, fill, selection, and eyedropper operations.
Extracted from OverworldEditor to encapsulate the ~349 lines of tile editing logic. Operates on shared state through TilePaintingDependencies and delegates undo/refresh through TilePaintingCallbacks.
Definition at line 55 of file tile_painting_manager.h.
| yaze::editor::TilePaintingManager::TilePaintingManager | ( | const TilePaintingDependencies & | deps, |
| const TilePaintingCallbacks & | callbacks ) |
Definition at line 21 of file tile_painting_manager.cc.
| void yaze::editor::TilePaintingManager::CheckForOverworldEdits | ( | ) |
Main entry point: check for tile edits (paint, fill, stamp).
Definition at line 190 of file tile_painting_manager.cc.
References callbacks_, CheckForSelectRectangle(), yaze::editor::TilePaintingCallbacks::create_undo_point, yaze::editor::TilePaintingDependencies::current_map, yaze::editor::TilePaintingDependencies::current_mode, yaze::editor::TilePaintingDependencies::current_tile16, yaze::editor::TilePaintingDependencies::current_world, deps_, yaze::editor::DRAW_TILE, DrawOverworldEdits(), yaze::gui::Canvas::DrawTilemapPainter(), yaze::editor::FILL_TILE, yaze::editor::TilePaintingCallbacks::finalize_paint_operation, yaze::core::FeatureFlags::get(), yaze::zelda3::Overworld::GetTile(), yaze::gfx::GetTilemapData(), yaze::gui::Canvas::global_scale(), yaze::gui::Canvas::hover_mouse_pos(), yaze::gui::Canvas::IsMouseHovering(), yaze::core::FeatureFlags::Flags::Overworld::kEnableSpecialWorldExpansion, yaze::zelda3::kNumOverworldMaps, yaze::editor::kOverworldMapSize, yaze::editor::kTile16Size, LOG_DEBUG, LOG_ERROR, yaze::zelda3::Overworld::mutable_map_tiles(), yaze::editor::TilePaintingDependencies::overworld, yaze::core::FeatureFlags::Flags::overworld, yaze::editor::TilePaintingDependencies::ow_map_canvas, yaze::editor::TilePaintingCallbacks::refresh_overworld_map, yaze::editor::TilePaintingCallbacks::refresh_overworld_map_on_demand, RenderUpdatedMapBitmap(), yaze::editor::TilePaintingDependencies::rom, yaze::gui::Canvas::select_rect_active(), yaze::gui::Canvas::selected_points(), yaze::editor::TilePaintingDependencies::selected_tile16_ids, yaze::zelda3::Overworld::set_current_map(), yaze::zelda3::Overworld::set_current_world(), yaze::Rom::set_dirty(), and yaze::editor::TilePaintingDependencies::tile16_blockset.
| void yaze::editor::TilePaintingManager::CheckForSelectRectangle | ( | ) |
Draw and create the tile16 IDs that are currently selected.
Definition at line 431 of file tile_painting_manager.cc.
References callbacks_, yaze::editor::TilePaintingDependencies::current_map, yaze::editor::TilePaintingDependencies::current_tile16, yaze::editor::TilePaintingDependencies::current_world, deps_, yaze::gui::Canvas::DrawBitmapGroup(), yaze::gui::Canvas::DrawSelectRect(), yaze::zelda3::Overworld::GetTileFromPosition(), yaze::gui::Canvas::global_scale(), yaze::editor::TilePaintingDependencies::overworld, yaze::editor::TilePaintingDependencies::ow_map_canvas, yaze::editor::TilePaintingCallbacks::scroll_blockset_to_current_tile, yaze::gui::Canvas::select_rect_active(), yaze::editor::TilePaintingDependencies::selected_tile16_ids, yaze::gui::Canvas::selected_tile_pos(), yaze::gui::Canvas::selected_tiles(), yaze::zelda3::Overworld::set_current_map(), yaze::zelda3::Overworld::set_current_world(), yaze::gui::Canvas::set_selected_tile_pos(), and yaze::editor::TilePaintingDependencies::tile16_blockset.
Referenced by CheckForOverworldEdits().
| void yaze::editor::TilePaintingManager::RenderUpdatedMapBitmap | ( | const ImVec2 & | click_position, |
| const std::vector< uint8_t > & | tile_data ) |
Update bitmap pixels after a single tile paint.
Definition at line 111 of file tile_painting_manager.cc.
References yaze::editor::TilePaintingDependencies::current_map, deps_, yaze::gfx::Arena::Get(), yaze::gfx::Bitmap::is_active(), yaze::editor::kOverworldMapSize, yaze::editor::kTile16Size, LOG_ERROR, yaze::editor::TilePaintingDependencies::maps_bmp, yaze::gfx::Arena::QueueTextureCommand(), yaze::gfx::Bitmap::set_modified(), yaze::gfx::Bitmap::size(), yaze::gfx::Arena::UPDATE, and yaze::gfx::Bitmap::WriteToPixel().
Referenced by CheckForOverworldEdits(), and DrawOverworldEdits().
| bool yaze::editor::TilePaintingManager::PickTile16FromHoveredCanvas | ( | ) |
Eyedropper: pick the tile16 under the hovered canvas position.
Definition at line 473 of file tile_painting_manager.cc.
References callbacks_, yaze::editor::TilePaintingDependencies::current_tile16, yaze::editor::TilePaintingDependencies::current_world, deps_, yaze::core::FeatureFlags::get(), yaze::gui::Canvas::global_scale(), yaze::gui::Canvas::hover_mouse_pos(), yaze::gui::Canvas::IsMouseHovering(), yaze::core::FeatureFlags::Flags::Overworld::kEnableSpecialWorldExpansion, yaze::editor::kOverworldMapSize, yaze::editor::kTile16Size, yaze::util::logf(), yaze::zelda3::Overworld::mutable_map_tiles(), yaze::editor::TilePaintingDependencies::overworld, yaze::core::FeatureFlags::Flags::overworld, yaze::editor::TilePaintingDependencies::ow_map_canvas, yaze::editor::TilePaintingCallbacks::scroll_blockset_to_current_tile, yaze::editor::Tile16Editor::SetCurrentTile(), and yaze::editor::TilePaintingDependencies::tile16_editor.
| void yaze::editor::TilePaintingManager::ToggleBrushTool | ( | ) |
Toggle between DRAW_TILE and MOUSE modes.
Definition at line 543 of file tile_painting_manager.cc.
References yaze::editor::TilePaintingDependencies::current_mode, deps_, yaze::editor::DRAW_TILE, yaze::gui::kEntityManipulation, yaze::gui::kTilePainting, yaze::editor::MOUSE, yaze::editor::TilePaintingDependencies::ow_map_canvas, and yaze::gui::Canvas::SetUsageMode().

| void yaze::editor::TilePaintingManager::ActivateFillTool | ( | ) |
Toggle FILL_TILE mode on/off.
Definition at line 560 of file tile_painting_manager.cc.
References yaze::editor::TilePaintingDependencies::current_mode, deps_, yaze::editor::DRAW_TILE, yaze::editor::FILL_TILE, yaze::gui::kTilePainting, yaze::editor::TilePaintingDependencies::ow_map_canvas, and yaze::gui::Canvas::SetUsageMode().

|
private |
Handle the actual drawing of a single tile (called by CheckForOverworldEdits when DrawTilemapPainter triggers).
Definition at line 29 of file tile_painting_manager.cc.
References yaze::gfx::Tilemap::atlas, callbacks_, yaze::editor::TilePaintingCallbacks::create_undo_point, yaze::editor::TilePaintingDependencies::current_map, yaze::editor::TilePaintingDependencies::current_tile16, yaze::editor::TilePaintingDependencies::current_world, deps_, yaze::gui::Canvas::drawn_tile_position(), yaze::gfx::GetTilemapData(), yaze::gui::Canvas::global_scale(), yaze::gfx::Bitmap::is_active(), yaze::editor::kOverworldMapSize, LOG_ERROR, yaze::editor::TilePaintingDependencies::maps_bmp, yaze::zelda3::Overworld::mutable_map_tiles(), yaze::editor::TilePaintingDependencies::overworld, yaze::editor::TilePaintingDependencies::ow_map_canvas, RenderUpdatedMapBitmap(), yaze::editor::TilePaintingDependencies::rom, yaze::Rom::set_dirty(), yaze::editor::TilePaintingDependencies::tile16_blockset, and yaze::gfx::Bitmap::vector().
Referenced by CheckForOverworldEdits().
|
private |
Definition at line 84 of file tile_painting_manager.h.
Referenced by ActivateFillTool(), CheckForOverworldEdits(), CheckForSelectRectangle(), DrawOverworldEdits(), PickTile16FromHoveredCanvas(), RenderUpdatedMapBitmap(), and ToggleBrushTool().
|
private |
Definition at line 85 of file tile_painting_manager.h.
Referenced by CheckForOverworldEdits(), CheckForSelectRectangle(), DrawOverworldEdits(), and PickTile16FromHoveredCanvas().