Files
UnrealEngine/Engine/Source/Editor/MassEntityDebugger/Private/SMassBreakpointsView.h
2025-05-18 13:04:45 +08:00

58 lines
1.7 KiB
C++

// 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<FMassDebuggerModel> InDebuggerModel);
protected:
/** Unused pure virtual function */
virtual void OnRefresh() override;
/** Unused pure virtual function */
virtual void OnProcessorsSelected(TConstArrayView<TSharedPtr<FMassDebuggerProcessorData>> SelectedProcessors, ESelectInfo::Type SelectInfo) override
{
}
/** Unused pure virtual function */
virtual void OnArchetypesSelected(TConstArrayView<TSharedPtr<FMassDebuggerArchetypeData>> SelectedArchetypes, ESelectInfo::Type SelectInfo) override
{
}
private:
FReply HandleAddWriteBreakpointClicked();
FReply ClearBreakpointsClicked();
struct FBreakpointDisplay
{
TWeakObjectPtr<const UMassProcessor> Processor;
TWeakObjectPtr<const UScriptStruct> 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<TSharedPtr<FBreakpointDisplay>> WriteBreakpoints;
TSharedRef<ITableRow> OnGenerateBreakpointRow(TSharedPtr<FBreakpointDisplay> InItem, const TSharedRef<STableViewBase>& OwnerTable);
TSharedPtr<SListView<TSharedPtr<FBreakpointDisplay>>> WriteBreakpointsListView;
void RefreshBreakpoints();
};