yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::editor::MinecartTrackEditorPanel Class Reference

#include <minecart_track_editor_panel.h>

Inheritance diagram for yaze::editor::MinecartTrackEditorPanel:
Collaboration diagram for yaze::editor::MinecartTrackEditorPanel:

Classes

struct  RoomTrackAudit
 

Public Types

using ProjectChangedCallback
 
using ProjectDraftChangedCallback = std::function<absl::Status()>
 
using ProjectSaveCallback = std::function<absl::Status()>
 
using CollisionBatchApplyCallback
 
using TrackEditCallback
 
using RoomNavigationCallback = std::function<void(int room_id)>
 

Public Member Functions

 MinecartTrackEditorPanel ()=default
 
std::string GetId () const override
 Unique identifier for this panel.
 
std::string GetWorkflowGroup () const override
 Optional workflow group for hack-centric actions.
 
std::string GetDisplayName () const override
 Human-readable name shown in menus and title bars.
 
std::string GetIcon () const override
 Material Design icon for this panel.
 
std::string GetEditorCategory () const override
 Editor category this panel belongs to.
 
void Draw (bool *p_open) override
 Draw the panel content.
 
void SetRooms (DungeonRoomStore *rooms)
 
absl::Status SetProject (project::YazeProject *project)
 
absl::Status RebindProjectContext (project::YazeProject *project)
 
absl::Status SaveTracks ()
 
absl::Status ReloadTracks ()
 
absl::Status DiscardUnpublishedChanges ()
 
bool HasUnpublishedChanges () const
 
absl::StatusOr< std::filesystem::path > ResolveTrackSourcePath () const
 
absl::Status UpdateTrack (size_t track_index, const MinecartTrack &track)
 
bool HasPendingProjectDraftChanges () const
 
absl::Status PrepareProjectSave ()
 
void SetTrackEditCallback (TrackEditCallback callback)
 
absl::Status MoveCartStart (const MinecartTrack &before, const MinecartTrack &after)
 
absl::Status RestoreTrackDraft (uint64_t generation, const MinecartTrack &expected, const MinecartTrack &replacement)
 
uint64_t track_generation () const
 
uint64_t canvas_revision () const
 
void MarkPairedTrackDraft ()
 
bool HasPairedTrackDraft () const
 
bool canvas_editing () const
 
void set_canvas_editing (bool enabled)
 
int selected_track () const
 
void SelectTrack (int id)
 
void SetActiveRoom (int room)
 
void CancelPick ()
 
void SetRailPaletteCallback (std::function< bool()> draw)
 
void SetCollisionStampCallback (MinecartCollisionApply apply)
 
const MinecartCollisionApply & collision_stamp_callback () const
 
bool collision_stamping () const
 
void set_collision_stamping (bool enabled)
 
uint8_t collision_stamp_value () const
 
int collision_stamp_size () const
 
void DrawRailTools ()
 
bool IsPickingCoordinates () const
 
int GetPickingTrackIndex () const
 
const std::vector< MinecartTrack > & GetTracks ()
 
void SetRoomNavigationCallback (RoomNavigationCallback callback)
 
void SetProjectChangedCallback (ProjectChangedCallback callback)
 
void SetProjectDraftChangedCallback (ProjectDraftChangedCallback callback)
 
void SetProjectSaveCallback (ProjectSaveCallback callback)
 
void SetCollisionBatchApplyCallback (CollisionBatchApplyCallback callback)
 
void InvalidateRoomAudit ()
 
void DetachRuntimeContext ()
 
- Public Member Functions inherited from yaze::editor::WindowContent
virtual ~WindowContent ()=default
 
virtual void OnFirstDraw ()
 Called once before the first Draw() in a session.
 
virtual bool RequiresLazyInit () const
 Whether this panel uses lazy initialization.
 
void InvalidateLazyInit ()
 Reset lazy init state so OnFirstDraw() runs again.
 
virtual void OnOpen ()
 Called when panel becomes visible.
 
virtual void OnClose ()
 Called when panel is hidden.
 
virtual void OnFocus ()
 Called when panel receives focus.
 
virtual WindowLifecycle GetWindowLifecycle () const
 Get the lifecycle category for this window.
 
virtual WindowContextScope GetContextScope () const
 Optional context binding for this window (room/selection/etc)
 
virtual WindowScope GetScope () const
 Get the registration scope for this window.
 
virtual WindowPresentationPolicy GetPresentationPolicy () const
 How this content is hosted and advertised by workspace chrome.
 
virtual bool IsEnabled () const
 Check if this panel is currently enabled.
 
virtual std::string GetDisabledTooltip () const
 Get tooltip text when panel is disabled.
 
virtual std::string GetShortcutHint () const
 Get keyboard shortcut hint for display.
 
virtual int GetPriority () const
 Get display priority for menu ordering.
 
virtual std::string GetWorkflowLabel () const
 Optional workflow label for menus/command palette.
 
virtual std::string GetWorkflowDescription () const
 Optional workflow description for menus/command palette.
 
virtual int GetWorkflowPriority () const
 Optional workflow ordering priority (lower sorts first).
 
virtual float GetPreferredWidth () const
 Get preferred width for this panel (optional)
 
virtual bool HasExactPreferredWidth () const
 Whether GetPreferredWidth() is an exact content width.
 
virtual float GetPreferredHeight () const
 Get preferred height for this panel (optional)
 
virtual bool PrefersFloating () const
 
virtual bool PreferAutoHideTabBar () const
 Whether the dock node hosting this panel should auto-hide its tab bar.
 
virtual bool IsVisibleByDefault () const
 Whether this panel should be visible by default.
 
virtual std::string GetParentPanelId () const
 Get parent panel ID for cascade behavior.
 
virtual bool CascadeCloseChildren () const
 Whether closing this panel should close child panels.
 
void DrawWithLazyInit (bool *p_open)
 Execute lazy initialization if needed, then call Draw()
 

Private Types

using OverlayListMember
 

Private Member Functions

absl::Status LoadTracks ()
 
absl::Status ValidateLoadedManifestIdentity () const
 
absl::Status RefreshProjectBinding ()
 
void ResetTrackSession ()
 
void StartCoordinatePicking (int track_index)
 
void CancelCoordinatePicking ()
 
void RebuildAuditCache (bool include_unmaterialized=false)
 
absl::Status BuildCollisionPreview (const std::vector< int > &room_ids)
 
absl::Status BuildAllEligibleCollisionPreview ()
 
absl::Status ApplyCollisionPreview ()
 
void ClearCollisionPreview ()
 
absl::StatusOr< zelda3::GeneratorOptions > ResolveGeneratorOptions () const
 
bool IsDefaultTrack (const MinecartTrack &track) const
 
void DrawOverlaySettings ()
 
void InitializeOverlayInputs ()
 
void ClearOverlayInputs ()
 
bool UpdateOverlayList (const char *label, std::string &input, OverlayListMember member)
 
absl::StatusOr< bool > CommitOverlayList (std::string &input, OverlayListMember member)
 
absl::StatusOr< bool > CommitOverlayInputsForSave ()
 
absl::StatusOr< bool > ResetOverlaySettings ()
 
absl::Status NotifyProjectChanged (const project::DungeonOverlaySettings &overlay)
 
absl::Status NotifyProjectDraftChanged ()
 
absl::Status SaveProjectSettings ()
 

Private Attributes

std::function< bool()> draw_rail_palette_
 
MinecartCollisionApply apply_collision_stamp_
 
bool collision_stamping_ = false
 
bool collision_stamp_large_ = true
 
uint8_t collision_stamp_value_ = 0xB1
 
TrackEditCallback track_edit_callback_
 
uint64_t track_generation_ = 0
 
uint64_t canvas_revision_ = 0
 
int selected_track_ = -1
 
int active_room_ = -1
 
bool canvas_editing_ = false
 
bool paired_track_draft_ = false
 
std::vector< MinecartTrack > tracks_
 
std::vector< MinecartTrack > loaded_tracks_
 
std::optional< MinecartTrackSourceDocument > source_document_
 
std::optional< core::MinecartTrackLayout::Source > loaded_source_identity_
 
std::filesystem::path loaded_source_path_
 
std::string loaded_source_sha256_
 
std::string bound_project_filepath_
 
std::optional< core::MinecartTrackLayout::Source > bound_source_identity_
 
DungeonRoomStore * rooms_ = nullptr
 
project::YazeProject * project_ = nullptr
 
std::unordered_map< int, RoomTrackAudit > room_audit_
 
std::unordered_map< int, std::vector< int > > route_usage_rooms_
 
std::vector< bool > route_slot_used_
 
std::vector< zelda3::TrackCollisionResult > collision_preview_
 
zelda3::GeneratorOptions collision_preview_options_
 
bool audit_dirty_ = true
 
bool audit_includes_all_rooms_ = false
 
bool load_attempted_ = false
 
bool loaded_ = false
 
std::string status_message_
 
bool show_success_ = false
 
float success_timer_ = 0.0f
 
bool picking_mode_ = false
 
int picking_track_index_ = -1
 
RoomNavigationCallback room_navigation_callback_
 
ProjectChangedCallback project_changed_callback_
 
ProjectDraftChangedCallback project_draft_changed_callback_
 
ProjectSaveCallback project_save_callback_
 
CollisionBatchApplyCallback collision_batch_apply_callback_
 
bool overlay_inputs_initialized_ = false
 
std::optional< project::DungeonOverlaySettings > overlay_inputs_model_
 
std::string overlay_track_tiles_input_
 
std::string overlay_track_stop_tiles_input_
 
std::string overlay_track_switch_tiles_input_
 
std::string overlay_track_object_ids_input_
 
std::string overlay_minecart_sprite_ids_input_
 

Friends

class MinecartTrackEditorPanelTestPeer
 

Additional Inherited Members

- Protected Member Functions inherited from yaze::editor::WindowContent
void InvalidateCache ()
 Invalidate all cached computations.
 
template<typename T >
T & GetCached (const std::string &key, std::function< T()> compute)
 Get or compute a cached value.
 
bool IsCacheValid () const
 Check if cache has been invalidated.
 
void ClearCache ()
 Clear all cached values (more aggressive than InvalidateCache)
 

Detailed Description

Definition at line 27 of file minecart_track_editor_panel.h.

Member Typedef Documentation

◆ ProjectChangedCallback

Initial value:
std::function<absl::Status(const project::DungeonOverlaySettings&)>

Definition at line 29 of file minecart_track_editor_panel.h.

◆ ProjectDraftChangedCallback

Definition at line 31 of file minecart_track_editor_panel.h.

◆ ProjectSaveCallback

using yaze::editor::MinecartTrackEditorPanel::ProjectSaveCallback = std::function<absl::Status()>

Definition at line 32 of file minecart_track_editor_panel.h.

◆ CollisionBatchApplyCallback

Initial value:
std::function<absl::Status(
const std::vector<zelda3::TrackCollisionResult>&,
const zelda3::GeneratorOptions&)>

Definition at line 33 of file minecart_track_editor_panel.h.

◆ TrackEditCallback

Initial value:
std::function<absl::Status(
const MinecartTrack&, const MinecartTrack&, bool)>

Definition at line 71 of file minecart_track_editor_panel.h.

◆ RoomNavigationCallback

using yaze::editor::MinecartTrackEditorPanel::RoomNavigationCallback = std::function<void(int room_id)>

Definition at line 119 of file minecart_track_editor_panel.h.

◆ OverlayListMember

Initial value:
std::vector<uint16_t> project::DungeonOverlaySettings::*

Definition at line 178 of file minecart_track_editor_panel.h.

Constructor & Destructor Documentation

◆ MinecartTrackEditorPanel()

yaze::editor::MinecartTrackEditorPanel::MinecartTrackEditorPanel ( )
default

Member Function Documentation

◆ GetId()

std::string yaze::editor::MinecartTrackEditorPanel::GetId ( ) const
inlineoverridevirtual

Unique identifier for this panel.

Returns
Panel ID in format "{category}.{name}" (e.g., "dungeon.room_selector")

IDs should be:

  • Lowercase with underscores
  • Prefixed with editor category
  • Unique across all panels

Implements yaze::editor::WindowContent.

Definition at line 40 of file minecart_track_editor_panel.h.

Referenced by yaze::editor::DungeonEditorV2::Load().

◆ GetWorkflowGroup()

std::string yaze::editor::MinecartTrackEditorPanel::GetWorkflowGroup ( ) const
inlineoverridevirtual

Optional workflow group for hack-centric actions.

Returns
Non-empty group name to surface this panel in hack workflows.

Reimplemented from yaze::editor::WindowContent.

Definition at line 41 of file minecart_track_editor_panel.h.

◆ GetDisplayName()

std::string yaze::editor::MinecartTrackEditorPanel::GetDisplayName ( ) const
inlineoverridevirtual

Human-readable name shown in menus and title bars.

Returns
Display name (e.g., "Room Selector")

Implements yaze::editor::WindowContent.

Definition at line 42 of file minecart_track_editor_panel.h.

◆ GetIcon()

std::string yaze::editor::MinecartTrackEditorPanel::GetIcon ( ) const
inlineoverridevirtual

Material Design icon for this panel.

Returns
Icon constant (e.g., ICON_MD_LIST)

Implements yaze::editor::WindowContent.

Definition at line 43 of file minecart_track_editor_panel.h.

References ICON_MD_TRAIN.

◆ GetEditorCategory()

std::string yaze::editor::MinecartTrackEditorPanel::GetEditorCategory ( ) const
inlineoverridevirtual

Editor category this panel belongs to.

Returns
Category name matching EditorType (e.g., "Dungeon", "Overworld")

Implements yaze::editor::WindowContent.

Definition at line 44 of file minecart_track_editor_panel.h.

◆ Draw()

void yaze::editor::MinecartTrackEditorPanel::Draw ( bool * p_open)
overridevirtual

Draw the panel content.

Parameters
p_openPointer to visibility flag (nullptr if not closable)

Called by WorkspaceWindowManager when the panel is visible. Do NOT call ImGui::Begin/End - the PanelWindow wrapper handles that. Just draw your content directly.

Implements yaze::editor::WindowContent.

Definition at line 1055 of file minecart_track_editor_panel.cc.

References active_room_, ApplyCollisionPreview(), audit_dirty_, audit_includes_all_rooms_, bound_project_filepath_, BuildAllEligibleCollisionPreview(), BuildCollisionPreview(), CancelCoordinatePicking(), canvas_editing(), canvas_editing_, ClearCollisionPreview(), collision_batch_apply_callback_, collision_preview_, DiscardUnpublishedChanges(), DrawOverlaySettings(), DrawRailTools(), HasUnpublishedChanges(), ICON_MD_ARROW_FORWARD, ICON_MD_CANCEL, ICON_MD_CHECK_CIRCLE, ICON_MD_ERROR, ICON_MD_INFO, ICON_MD_MY_LOCATION, ICON_MD_PREVIEW, ICON_MD_REFRESH, ICON_MD_RESTORE, ICON_MD_SAVE, ICON_MD_WARNING_AMBER, yaze::gui::InputHexWordCustom(), IsDefaultTrack(), load_attempted_, LoadTracks(), picking_mode_, picking_track_index_, project_, yaze::project::YazeProject::project_opened(), project_save_callback_, RebuildAuditCache(), RefreshProjectBinding(), ReloadTracks(), room_audit_, room_navigation_callback_, rooms_, route_slot_used_, route_usage_rooms_, SaveProjectSettings(), SaveTracks(), selected_track_, set_canvas_editing(), show_success_, yaze::editor::DungeonRoomStore::size(), StartCoordinatePicking(), status_message_, tracks_, and UpdateTrack().

Referenced by yaze::editor::DungeonWorkbenchContent::DrawWorkbenchTool().

◆ SetRooms()

void yaze::editor::MinecartTrackEditorPanel::SetRooms ( DungeonRoomStore * rooms)
inline

◆ SetProject()

absl::Status yaze::editor::MinecartTrackEditorPanel::SetProject ( project::YazeProject * project)

◆ RebindProjectContext()

absl::Status yaze::editor::MinecartTrackEditorPanel::RebindProjectContext ( project::YazeProject * project)

◆ SaveTracks()

◆ ReloadTracks()

absl::Status yaze::editor::MinecartTrackEditorPanel::ReloadTracks ( )

Definition at line 418 of file minecart_track_editor_panel.cc.

References HasUnpublishedChanges(), LoadTracks(), and RefreshProjectBinding().

Referenced by Draw().

Here is the call graph for this function:

◆ DiscardUnpublishedChanges()

absl::Status yaze::editor::MinecartTrackEditorPanel::DiscardUnpublishedChanges ( )

Definition at line 401 of file minecart_track_editor_panel.cc.

References audit_dirty_, CancelCoordinatePicking(), canvas_revision_, HasUnpublishedChanges(), loaded_, loaded_tracks_, paired_track_draft_, track_generation_, and tracks_.

Referenced by Draw().

Here is the call graph for this function:

◆ HasUnpublishedChanges()

◆ ResolveTrackSourcePath()

absl::StatusOr< std::filesystem::path > yaze::editor::MinecartTrackEditorPanel::ResolveTrackSourcePath ( ) const

◆ UpdateTrack()

absl::Status yaze::editor::MinecartTrackEditorPanel::UpdateTrack ( size_t track_index,
const MinecartTrack & track )

Definition at line 355 of file minecart_track_editor_panel.cc.

References yaze::editor::MinecartTrack::id, loaded_, RestoreTrackDraft(), track_edit_callback_, track_generation_, and tracks_.

Referenced by Draw().

Here is the call graph for this function:

◆ HasPendingProjectDraftChanges()

◆ PrepareProjectSave()

absl::Status yaze::editor::MinecartTrackEditorPanel::PrepareProjectSave ( )

Definition at line 350 of file minecart_track_editor_panel.cc.

References CommitOverlayInputsForSave().

Referenced by yaze::editor::DungeonEditorV2::PrepareProjectSave().

Here is the call graph for this function:

◆ SetTrackEditCallback()

void yaze::editor::MinecartTrackEditorPanel::SetTrackEditCallback ( TrackEditCallback callback)
inline

◆ MoveCartStart()

absl::Status yaze::editor::MinecartTrackEditorPanel::MoveCartStart ( const MinecartTrack & before,
const MinecartTrack & after )

Definition at line 393 of file minecart_track_editor_panel.cc.

References track_edit_callback_.

◆ RestoreTrackDraft()

absl::Status yaze::editor::MinecartTrackEditorPanel::RestoreTrackDraft ( uint64_t generation,
const MinecartTrack & expected,
const MinecartTrack & replacement )

◆ track_generation()

uint64_t yaze::editor::MinecartTrackEditorPanel::track_generation ( ) const
inline

Definition at line 82 of file minecart_track_editor_panel.h.

References track_generation_.

◆ canvas_revision()

uint64_t yaze::editor::MinecartTrackEditorPanel::canvas_revision ( ) const
inline

Definition at line 84 of file minecart_track_editor_panel.h.

References canvas_revision_.

◆ MarkPairedTrackDraft()

void yaze::editor::MinecartTrackEditorPanel::MarkPairedTrackDraft ( )
inline

Definition at line 85 of file minecart_track_editor_panel.h.

References HasUnpublishedChanges(), and paired_track_draft_.

Here is the call graph for this function:

◆ HasPairedTrackDraft()

bool yaze::editor::MinecartTrackEditorPanel::HasPairedTrackDraft ( ) const
inline

Definition at line 86 of file minecart_track_editor_panel.h.

References paired_track_draft_.

◆ canvas_editing()

◆ set_canvas_editing()

◆ selected_track()

int yaze::editor::MinecartTrackEditorPanel::selected_track ( ) const
inline

Definition at line 89 of file minecart_track_editor_panel.h.

References selected_track_.

◆ SelectTrack()

void yaze::editor::MinecartTrackEditorPanel::SelectTrack ( int id)
inline

Definition at line 90 of file minecart_track_editor_panel.h.

References selected_track_.

◆ SetActiveRoom()

void yaze::editor::MinecartTrackEditorPanel::SetActiveRoom ( int room)
inline

Definition at line 91 of file minecart_track_editor_panel.h.

References active_room_.

◆ CancelPick()

void yaze::editor::MinecartTrackEditorPanel::CancelPick ( )
inline

Definition at line 92 of file minecart_track_editor_panel.h.

References CancelCoordinatePicking().

Here is the call graph for this function:

◆ SetRailPaletteCallback()

void yaze::editor::MinecartTrackEditorPanel::SetRailPaletteCallback ( std::function< bool()> draw)
inline

◆ SetCollisionStampCallback()

void yaze::editor::MinecartTrackEditorPanel::SetCollisionStampCallback ( MinecartCollisionApply apply)
inline

◆ collision_stamp_callback()

const MinecartCollisionApply & yaze::editor::MinecartTrackEditorPanel::collision_stamp_callback ( ) const
inline

Definition at line 100 of file minecart_track_editor_panel.h.

References apply_collision_stamp_.

◆ collision_stamping()

bool yaze::editor::MinecartTrackEditorPanel::collision_stamping ( ) const
inline

◆ set_collision_stamping()

void yaze::editor::MinecartTrackEditorPanel::set_collision_stamping ( bool enabled)
inline

◆ collision_stamp_value()

uint8_t yaze::editor::MinecartTrackEditorPanel::collision_stamp_value ( ) const
inline

Definition at line 109 of file minecart_track_editor_panel.h.

References collision_stamp_value_.

◆ collision_stamp_size()

int yaze::editor::MinecartTrackEditorPanel::collision_stamp_size ( ) const
inline

Definition at line 110 of file minecart_track_editor_panel.h.

References collision_stamp_large_.

◆ DrawRailTools()

void yaze::editor::MinecartTrackEditorPanel::DrawRailTools ( )

◆ IsPickingCoordinates()

bool yaze::editor::MinecartTrackEditorPanel::IsPickingCoordinates ( ) const
inline

◆ GetPickingTrackIndex()

int yaze::editor::MinecartTrackEditorPanel::GetPickingTrackIndex ( ) const
inline

◆ GetTracks()

const std::vector< MinecartTrack > & yaze::editor::MinecartTrackEditorPanel::GetTracks ( )

◆ SetRoomNavigationCallback()

void yaze::editor::MinecartTrackEditorPanel::SetRoomNavigationCallback ( RoomNavigationCallback callback)
inline

Definition at line 120 of file minecart_track_editor_panel.h.

References room_navigation_callback_.

◆ SetProjectChangedCallback()

void yaze::editor::MinecartTrackEditorPanel::SetProjectChangedCallback ( ProjectChangedCallback callback)
inline

◆ SetProjectDraftChangedCallback()

void yaze::editor::MinecartTrackEditorPanel::SetProjectDraftChangedCallback ( ProjectDraftChangedCallback callback)
inline

◆ SetProjectSaveCallback()

void yaze::editor::MinecartTrackEditorPanel::SetProjectSaveCallback ( ProjectSaveCallback callback)
inline

◆ SetCollisionBatchApplyCallback()

void yaze::editor::MinecartTrackEditorPanel::SetCollisionBatchApplyCallback ( CollisionBatchApplyCallback callback)
inline

◆ InvalidateRoomAudit()

◆ DetachRuntimeContext()

◆ LoadTracks()

◆ ValidateLoadedManifestIdentity()

absl::Status yaze::editor::MinecartTrackEditorPanel::ValidateLoadedManifestIdentity ( ) const
private

◆ RefreshProjectBinding()

absl::Status yaze::editor::MinecartTrackEditorPanel::RefreshProjectBinding ( )
private

◆ ResetTrackSession()

◆ StartCoordinatePicking()

void yaze::editor::MinecartTrackEditorPanel::StartCoordinatePicking ( int track_index)
private

◆ CancelCoordinatePicking()

void yaze::editor::MinecartTrackEditorPanel::CancelCoordinatePicking ( )
private

◆ RebuildAuditCache()

◆ BuildCollisionPreview()

◆ BuildAllEligibleCollisionPreview()

absl::Status yaze::editor::MinecartTrackEditorPanel::BuildAllEligibleCollisionPreview ( )
private

Definition at line 1003 of file minecart_track_editor_panel.cc.

References BuildCollisionPreview(), RebuildAuditCache(), and room_audit_.

Referenced by Draw().

Here is the call graph for this function:

◆ ApplyCollisionPreview()

absl::Status yaze::editor::MinecartTrackEditorPanel::ApplyCollisionPreview ( )
private

Definition at line 1014 of file minecart_track_editor_panel.cc.

References audit_dirty_, ClearCollisionPreview(), collision_batch_apply_callback_, collision_preview_, collision_preview_options_, and RETURN_IF_ERROR.

Referenced by Draw().

Here is the call graph for this function:

◆ ClearCollisionPreview()

void yaze::editor::MinecartTrackEditorPanel::ClearCollisionPreview ( )
private

◆ ResolveGeneratorOptions()

absl::StatusOr< zelda3::GeneratorOptions > yaze::editor::MinecartTrackEditorPanel::ResolveGeneratorOptions ( ) const
private

◆ IsDefaultTrack()

bool yaze::editor::MinecartTrackEditorPanel::IsDefaultTrack ( const MinecartTrack & track) const
private

◆ DrawOverlaySettings()

◆ InitializeOverlayInputs()

◆ ClearOverlayInputs()

void yaze::editor::MinecartTrackEditorPanel::ClearOverlayInputs ( )
private

◆ UpdateOverlayList()

bool yaze::editor::MinecartTrackEditorPanel::UpdateOverlayList ( const char * label,
std::string & input,
OverlayListMember member )
private

◆ CommitOverlayList()

absl::StatusOr< bool > yaze::editor::MinecartTrackEditorPanel::CommitOverlayList ( std::string & input,
OverlayListMember member )
private

◆ CommitOverlayInputsForSave()

◆ ResetOverlaySettings()

◆ NotifyProjectChanged()

absl::Status yaze::editor::MinecartTrackEditorPanel::NotifyProjectChanged ( const project::DungeonOverlaySettings & overlay)
private

◆ NotifyProjectDraftChanged()

absl::Status yaze::editor::MinecartTrackEditorPanel::NotifyProjectDraftChanged ( )
private

Definition at line 662 of file minecart_track_editor_panel.cc.

References project_, and project_draft_changed_callback_.

Referenced by UpdateOverlayList().

◆ SaveProjectSettings()

absl::Status yaze::editor::MinecartTrackEditorPanel::SaveProjectSettings ( )
private

Definition at line 673 of file minecart_track_editor_panel.cc.

References CommitOverlayInputsForSave(), project_, yaze::project::YazeProject::project_opened(), and project_save_callback_.

Referenced by Draw().

Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ MinecartTrackEditorPanelTestPeer

friend class MinecartTrackEditorPanelTestPeer
friend

Definition at line 159 of file minecart_track_editor_panel.h.

Member Data Documentation

◆ draw_rail_palette_

std::function<bool()> yaze::editor::MinecartTrackEditorPanel::draw_rail_palette_
private

◆ apply_collision_stamp_

MinecartCollisionApply yaze::editor::MinecartTrackEditorPanel::apply_collision_stamp_
private

◆ collision_stamping_

bool yaze::editor::MinecartTrackEditorPanel::collision_stamping_ = false
private

◆ collision_stamp_large_

bool yaze::editor::MinecartTrackEditorPanel::collision_stamp_large_ = true
private

Definition at line 204 of file minecart_track_editor_panel.h.

Referenced by collision_stamp_size(), and DrawRailTools().

◆ collision_stamp_value_

uint8_t yaze::editor::MinecartTrackEditorPanel::collision_stamp_value_ = 0xB1
private

Definition at line 205 of file minecart_track_editor_panel.h.

Referenced by collision_stamp_value(), and DrawRailTools().

◆ track_edit_callback_

TrackEditCallback yaze::editor::MinecartTrackEditorPanel::track_edit_callback_
private

◆ track_generation_

uint64_t yaze::editor::MinecartTrackEditorPanel::track_generation_ = 0
private

◆ canvas_revision_

uint64_t yaze::editor::MinecartTrackEditorPanel::canvas_revision_ = 0
private

◆ selected_track_

int yaze::editor::MinecartTrackEditorPanel::selected_track_ = -1
private

◆ active_room_

int yaze::editor::MinecartTrackEditorPanel::active_room_ = -1
private

Definition at line 210 of file minecart_track_editor_panel.h.

Referenced by Draw(), and SetActiveRoom().

◆ canvas_editing_

bool yaze::editor::MinecartTrackEditorPanel::canvas_editing_ = false
private

◆ paired_track_draft_

bool yaze::editor::MinecartTrackEditorPanel::paired_track_draft_ = false
private

◆ tracks_

std::vector<MinecartTrack> yaze::editor::MinecartTrackEditorPanel::tracks_
private

◆ loaded_tracks_

std::vector<MinecartTrack> yaze::editor::MinecartTrackEditorPanel::loaded_tracks_
private

◆ source_document_

std::optional<MinecartTrackSourceDocument> yaze::editor::MinecartTrackEditorPanel::source_document_
private

◆ loaded_source_identity_

std::optional<core::MinecartTrackLayout::Source> yaze::editor::MinecartTrackEditorPanel::loaded_source_identity_
private

◆ loaded_source_path_

std::filesystem::path yaze::editor::MinecartTrackEditorPanel::loaded_source_path_
private

Definition at line 217 of file minecart_track_editor_panel.h.

Referenced by LoadTracks(), ResetTrackSession(), and SaveTracks().

◆ loaded_source_sha256_

std::string yaze::editor::MinecartTrackEditorPanel::loaded_source_sha256_
private

Definition at line 218 of file minecart_track_editor_panel.h.

Referenced by LoadTracks(), ResetTrackSession(), and SaveTracks().

◆ bound_project_filepath_

std::string yaze::editor::MinecartTrackEditorPanel::bound_project_filepath_
private

◆ bound_source_identity_

std::optional<core::MinecartTrackLayout::Source> yaze::editor::MinecartTrackEditorPanel::bound_source_identity_
private

Definition at line 220 of file minecart_track_editor_panel.h.

Referenced by RefreshProjectBinding(), and SetProject().

◆ rooms_

DungeonRoomStore* yaze::editor::MinecartTrackEditorPanel::rooms_ = nullptr
private

◆ project_

◆ room_audit_

std::unordered_map<int, RoomTrackAudit> yaze::editor::MinecartTrackEditorPanel::room_audit_
private

◆ route_usage_rooms_

std::unordered_map<int, std::vector<int> > yaze::editor::MinecartTrackEditorPanel::route_usage_rooms_
private

Definition at line 224 of file minecart_track_editor_panel.h.

Referenced by Draw(), and RebuildAuditCache().

◆ route_slot_used_

std::vector<bool> yaze::editor::MinecartTrackEditorPanel::route_slot_used_
private

Definition at line 225 of file minecart_track_editor_panel.h.

Referenced by Draw(), and RebuildAuditCache().

◆ collision_preview_

std::vector<zelda3::TrackCollisionResult> yaze::editor::MinecartTrackEditorPanel::collision_preview_
private

◆ collision_preview_options_

zelda3::GeneratorOptions yaze::editor::MinecartTrackEditorPanel::collision_preview_options_
private

◆ audit_dirty_

◆ audit_includes_all_rooms_

bool yaze::editor::MinecartTrackEditorPanel::audit_includes_all_rooms_ = false
private

◆ load_attempted_

bool yaze::editor::MinecartTrackEditorPanel::load_attempted_ = false
private

◆ loaded_

bool yaze::editor::MinecartTrackEditorPanel::loaded_ = false
private

◆ status_message_

◆ show_success_

bool yaze::editor::MinecartTrackEditorPanel::show_success_ = false
private

◆ success_timer_

float yaze::editor::MinecartTrackEditorPanel::success_timer_ = 0.0f
private

Definition at line 234 of file minecart_track_editor_panel.h.

◆ picking_mode_

bool yaze::editor::MinecartTrackEditorPanel::picking_mode_ = false
private

◆ picking_track_index_

int yaze::editor::MinecartTrackEditorPanel::picking_track_index_ = -1
private

◆ room_navigation_callback_

RoomNavigationCallback yaze::editor::MinecartTrackEditorPanel::room_navigation_callback_
private

◆ project_changed_callback_

ProjectChangedCallback yaze::editor::MinecartTrackEditorPanel::project_changed_callback_
private

◆ project_draft_changed_callback_

ProjectDraftChangedCallback yaze::editor::MinecartTrackEditorPanel::project_draft_changed_callback_
private

◆ project_save_callback_

ProjectSaveCallback yaze::editor::MinecartTrackEditorPanel::project_save_callback_
private

◆ collision_batch_apply_callback_

CollisionBatchApplyCallback yaze::editor::MinecartTrackEditorPanel::collision_batch_apply_callback_
private

◆ overlay_inputs_initialized_

bool yaze::editor::MinecartTrackEditorPanel::overlay_inputs_initialized_ = false
private

◆ overlay_inputs_model_

std::optional<project::DungeonOverlaySettings> yaze::editor::MinecartTrackEditorPanel::overlay_inputs_model_
private

◆ overlay_track_tiles_input_

std::string yaze::editor::MinecartTrackEditorPanel::overlay_track_tiles_input_
private

◆ overlay_track_stop_tiles_input_

std::string yaze::editor::MinecartTrackEditorPanel::overlay_track_stop_tiles_input_
private

◆ overlay_track_switch_tiles_input_

std::string yaze::editor::MinecartTrackEditorPanel::overlay_track_switch_tiles_input_
private

◆ overlay_track_object_ids_input_

std::string yaze::editor::MinecartTrackEditorPanel::overlay_track_object_ids_input_
private

◆ overlay_minecart_sprite_ids_input_

std::string yaze::editor::MinecartTrackEditorPanel::overlay_minecart_sprite_ids_input_
private

The documentation for this class was generated from the following files: