// © 2024 Long Ly. All rights reserved. Any unauthorized use, reproduction, or distribution of this trademark is strictly prohibited and may result in legal action.

#pragma once

#include "CoreMinimal.h"
#include "AnimGraphNode_Base.h"
#include "Nodes/AnimNode_OLSMask.h"
#include "AnimGraphNode_OLSMask.generated.h"

/**
 * 
 */
UCLASS(MinimalAPI)
class UAnimGraphNode_OLSMask : public UAnimGraphNode_Base
{
	GENERATED_BODY()

public:

	UAnimGraphNode_OLSMask(const FObjectInitializer& objectInitializer);
	
private:
	
	// UEdGraphNode interface
	virtual FLinearColor GetNodeTitleColor() const override;
	virtual FText GetTooltipText() const override;
	virtual FText GetNodeTitle(ENodeTitleType::Type TitleType) const override;
	virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
	// End of UEdGraphNode interface

	// UAnimGraphNode_Base interface
	virtual FString GetNodeCategory() const override;
	virtual void PreloadRequiredAssets() override;
	virtual void BakeDataDuringCompilation(class FCompilerResultsLog& MessageLog) override;
	// End of UAnimGraphNode_Base interface

	// Gives each visual node a chance to validate that they are still valid in the context of the compiled class, giving a last shot at error or warning generation after primary compilation is finished
	virtual void ValidateAnimNodeDuringCompilation(class USkeleton* skeleton, class FCompilerResultsLog& MessageLog) override;
	// End of UAnimGraphNode_Base interface

private:
	UPROPERTY(EditAnywhere, Category=Settings)
	FAnimNode_OLSMask Node;
};
