1#ifndef YAZE_APP_EDITOR_DUNGEON_PANELS_MINECART_TRACK_EDITOR_PANEL_H
2#define YAZE_APP_EDITOR_DUNGEON_PANELS_MINECART_TRACK_EDITOR_PANEL_H
29 std::string
GetId()
const override {
return "dungeon.minecart_tracks"; }
31 std::string
GetIcon()
const override {
return "M"; }
34 void Draw(
bool* p_open)
override;
55 bool ParseSection(
const std::string& content,
const std::string& label, std::vector<int>& out_values);
56 std::string
FormatSection(
const std::string& label,
const std::vector<int>& values);
Base interface for all logical panel components.
void StartCoordinatePicking(int track_index)
std::string FormatSection(const std::string &label, const std::vector< int > &values)
std::string GetId() const override
Unique identifier for this panel.
std::string GetIcon() const override
Material Design icon for this panel.
bool IsPickingCoordinates() const
std::string GetEditorCategory() const override
Editor category this panel belongs to.
std::string status_message_
void Draw(bool *p_open) override
Draw the panel content.
int GetPickingTrackIndex() const
std::function< void(int room_id)> RoomNavigationCallback
std::vector< MinecartTrack > tracks_
RoomNavigationCallback room_navigation_callback_
void SetRoomNavigationCallback(RoomNavigationCallback callback)
MinecartTrackEditorPanel(const std::string &start_root="")
void CancelCoordinatePicking()
bool ParseSection(const std::string &content, const std::string &label, std::vector< int > &out_values)
std::string project_root_
void SetProjectRoot(const std::string &root)
std::string GetDisplayName() const override
Human-readable name shown in menus and title bars.
void SetPickedCoordinates(int room_id, uint16_t camera_x, uint16_t camera_y)
Editors are the view controllers for the application.