// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "SMassDebuggerViewBase.h" #include "Widgets/Views/SListView.h" #include "MassEntityHandle.h" struct FMassDebuggerModel; struct FMassDebuggerArchetypeData; struct FMassDebuggerProcessorData; class ITableRow; class STableViewBase; class UMassProcessor; class SMassBreakpointsView : public SMassDebuggerViewBase { public: SLATE_BEGIN_ARGS(SMassBreakpointsView) { } SLATE_END_ARGS() void Construct(const FArguments& InArgs, TSharedRef InDebuggerModel); protected: /** Unused pure virtual function */ virtual void OnRefresh() override; /** Unused pure virtual function */ virtual void OnProcessorsSelected(TConstArrayView> SelectedProcessors, ESelectInfo::Type SelectInfo) override { } /** Unused pure virtual function */ virtual void OnArchetypesSelected(TConstArrayView> SelectedArchetypes, ESelectInfo::Type SelectInfo) override { } private: FReply HandleAddWriteBreakpointClicked(); FReply ClearBreakpointsClicked(); struct FBreakpointDisplay { TWeakObjectPtr Processor; TWeakObjectPtr WriteFragment; /** Specifies that this breakpoint is not for a specific entity, but will trigger for any entity selected in the mass or gameplay debugger*/ bool bBreakForSelectedEntity = false; FMassEntityHandle Entity; }; TArray> WriteBreakpoints; TSharedRef OnGenerateBreakpointRow(TSharedPtr InItem, const TSharedRef& OwnerTable); TSharedPtr>> WriteBreakpointsListView; void RefreshBreakpoints(); };