Skip to content

File CollisionDataDetails.h

File List > CollisionEditor > Public > CollisionDataDetails.h

Go to the documentation of this file

#pragma once

#include "CoreMinimal.h"
#include "IDetailCustomization.h"
#include "GameplayTagContainer.h"
#include "Input/Reply.h"

class UCollisionData;
class IDetailCategoryBuilder;


class FCollisionDataDetails : public IDetailCustomization
{
public:
    static TSharedRef<IDetailCustomization> MakeInstance();

    virtual void CustomizeDetails(IDetailLayoutBuilder& DetailBuilder) override;

private:
    void BuildSelectedCelView(IDetailLayoutBuilder& DetailBuilder, IDetailCategoryBuilder& Category);
    void OnCelSelected(const FGameplayTag& CelName);

    FReply OnAddNewCel();
    FReply OnDeleteSelectedCel();
    FReply OnTemplateSelectedCel();
    FReply OnRefreshTree();

    bool CanDeleteSelectedCel() const;
    bool CanTemplateSelectedCel() const;

    TWeakObjectPtr<UCollisionData> CollisionDataPtr;
    TSharedPtr<IPropertyHandle> CollisionFramesHandle;
    IDetailLayoutBuilder* CachedDetailBuilder = nullptr;
    FGameplayTag SelectedCelName;
};