// ©2023 Batty Bovine Productions, LLC. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"

#include "ComboActionGraphEdge.generated.h"


/**
 * Combo Action edges.
 *
 * Currently those edges are just connecting objects with no advanced logic.
 */
UCLASS(ClassGroup=("Combo Input|Action"), NotBlueprintType)
class COMBOINPUT_API UComboActionGraphEdge : public UObject
{
	GENERATED_BODY()

public:
	UFUNCTION(BlueprintCallable, Category="Combo Input|Action")
		void SetGraph(class UComboActionGraph *InGraph) { this->Graph = InGraph; }
	UFUNCTION(BlueprintCallable, Category="Combo Input|Action")
		void SetStartNode(class UComboActionGraphNode *InNode) { this->StartNode = InNode; }
	UFUNCTION(BlueprintCallable, Category="Combo Input|Action")
		void SetEndNode(class UComboActionGraphNode *InNode) { this->EndNode = InNode; }

	UFUNCTION(BlueprintPure, Category="Combo Input|Action")
		class UComboActionGraph *GetGraph() const { return this->Graph; }
	UFUNCTION(BlueprintPure, Category="Combo Input|Action")
		class UComboActionGraphNode *GetStartNode() const { return this->StartNode; }
	UFUNCTION(BlueprintPure, Category="Combo Input|Action")
		class UComboActionGraphNode *GetEndNode() const { return this->EndNode; }
	
private:
	UPROPERTY(VisibleAnywhere, Category="Combo Input|Action")
		class UComboActionGraph *Graph = nullptr;
	UPROPERTY(BlueprintReadOnly, Category="Combo Input|Action", meta=(AllowPrivateAccess="true"))
		class UComboActionGraphNode *StartNode = nullptr;
	UPROPERTY(BlueprintReadOnly, Category="Combo Input|Action", meta=(AllowPrivateAccess="true"))
		class UComboActionGraphNode *EndNode = nullptr;
};
