孟宇 2 miesięcy temu
rodzic
commit
16535261d8

+ 31 - 31
Ability/Plugins/EzAbility/Source/EzAbilityTest/Private/EzAbilityTest.cpp

@@ -44,37 +44,37 @@ struct FEzAbilityTest_MakeAndBakeEzAbility : FAITestBase
 		UEzAbilityState& StateA = Root.AddChildState(FName(TEXT("A")));
 		UEzAbilityState& StateB = Root.AddChildState(FName(TEXT("B")));
 
-		// // Root
-		// auto& EvalA = EditorData.AddEvaluator<FTestEval_A>();
-		//
-		// // State A
-		// auto& TaskB1 = StateA.AddTask<FTestTask_B>();
-		// EditorData.AddPropertyBinding(EvalA, TEXT("IntA"), TaskB1, TEXT("IntB"));
-		//
-		// // auto& IntCond = StateA.AddEnterCondition<FEzAbilityCompareIntCondition>(EGenericAICheck::Less);
-		// // IntCond.GetInstanceData().Right = 2;
-		// //
-		// // EditorData.AddPropertyBinding(EvalA, TEXT("IntA"), IntCond, TEXT("Left"));
-		//
-		// StateA.AddTransition(EEzAbilityTransitionTrigger::OnStateCompleted, EEzAbilityTransitionType::GotoState, &StateB);
-		//
-		// // State B
-		// auto& TaskB2 = StateB.AddTask<FTestTask_B>();
-		// EditorData.AddPropertyBinding(EvalA, TEXT("bBoolA"), TaskB2, TEXT("bBoolB"));
-		//
-		// FEzAbilityTransition& Trans = StateB.AddTransition({}, EEzAbilityTransitionType::GotoState, &Root);
-		// // auto& TransFloatCond = Trans.AddCondition<FEzAbilityCompareFloatCondition>(EGenericAICheck::Less);
-		// // TransFloatCond.GetInstanceData().Right = 13.0f;
-		// //EditorData.AddPropertyBinding(EvalA, TEXT("FloatA"), TransFloatCond, TEXT("Left"));
-		//
-		// StateB.AddTransition(EEzAbilityTransitionTrigger::OnStateCompleted, EEzAbilityTransitionType::Succeeded);
-		//
-		// FEzAbilityCompilerLog Log;
-		// FEzAbilityCompiler Compiler(Log);
-		// const bool bResult = Compiler.Compile(EzAbility);
-		//
-		// AITEST_TRUE("EzAbility should get compiled", bResult);
-		// AITEST_TRUE("EzAbility should be ready to run", EzAbility.IsReadyToRun());
+		// Root
+		auto& EvalA = EditorData.AddEvaluator<FEzAbilityTestEval_A>();
+		
+		// State A
+		auto& TaskB1 = StateA.AddTask<FEzAbilityTestTask_B>();
+		EditorData.AddPropertyBinding(EvalA, TEXT("IntA"), TaskB1, TEXT("IntB"));
+		
+		// auto& IntCond = StateA.AddEnterCondition<FEzAbilityCompareIntCondition>(EGenericAICheck::Less);
+		// IntCond.GetInstanceData().Right = 2;
+		
+		//EditorData.AddPropertyBinding(EvalA, TEXT("IntA"), IntCond, TEXT("Left"));
+		
+		StateA.AddTransition(EEzAbilityTransitionTrigger::OnStateCompleted, EEzAbilityTransitionType::GotoState, &StateB);
+		
+		// State B
+		auto& TaskB2 = StateB.AddTask<FEzAbilityTestTask_B>();
+		EditorData.AddPropertyBinding(EvalA, TEXT("bBoolA"), TaskB2, TEXT("bBoolB"));
+		
+		FEzAbilityTransition& Trans = StateB.AddTransition({}, EEzAbilityTransitionType::GotoState, &Root);
+		// auto& TransFloatCond = Trans.AddCondition<FEzAbilityCompareFloatCondition>(EGenericAICheck::Less);
+		// TransFloatCond.GetInstanceData().Right = 13.0f;
+		//EditorData.AddPropertyBinding(EvalA, TEXT("FloatA"), TransFloatCond, TEXT("Left"));
+		
+		StateB.AddTransition(EEzAbilityTransitionTrigger::OnStateCompleted, EEzAbilityTransitionType::Succeeded);
+		
+		FEzAbilityCompilerLog Log;
+		FEzAbilityCompiler Compiler(Log);
+		const bool bResult = Compiler.Compile(EzAbility);
+		
+		AITEST_TRUE("EzAbility should get compiled", bResult);
+		AITEST_TRUE("EzAbility should be ready to run", EzAbility.IsReadyToRun());
 		return true;
 	}
 };

+ 71 - 70
Ability/Plugins/EzAbility/Source/EzAbilityTest/Private/EzAblityTestTypes.h

@@ -5,19 +5,18 @@
 #include "Evaluator/EzAbilityEvaluator.h"
 #include "Task/EzAbilityTask.h"
 
-//#include "EzAblityTestTypes.generated.h"
+#include "EzAblityTestTypes.generated.h"
 
 class UEzAbility;
 struct FEzAbilityInstanceData;
 
-
 struct FTestEzAbilityExecutionContext : public FEzAbilityContext
 {
 	FTestEzAbilityExecutionContext(UObject& InOwner, const UEzAbility& InEzAbility, FEzAbilityInstanceData& InInstanceData)
 		: FEzAbilityContext(InOwner, InEzAbility, InInstanceData)
 	{
 	}
-	
+		
 	struct FLogItem
 	{
 		FLogItem() = default;
@@ -26,7 +25,7 @@ struct FTestEzAbilityExecutionContext : public FEzAbilityContext
 		FString Message; 
 	};
 	TArray<FLogItem> LogItems;
-	
+		
 	void Log(const FName& Name, const FString& Message)
 	{
 		LogItems.Emplace(Name, Message);
@@ -57,7 +56,7 @@ struct FTestEzAbilityExecutionContext : public FEzAbilityContext
 		}
 
 		operator bool() const { return Index < Context.LogItems.Num(); }
-		
+			
 		const FTestEzAbilityExecutionContext& Context;
 		int32 Index = 0;
 	};
@@ -90,73 +89,73 @@ struct FTestEzAbilityExecutionContext : public FEzAbilityContext
 
 		return true;
 	}
-	
+		
 };
 
-// USTRUCT()
-// struct FTestEval_AInstanceData
-// {
-// 	GENERATED_BODY()
-// 	
-// 	UPROPERTY(EditAnywhere, Category = Parameter)
-// 	float FloatA = 0.0f;
-//
-// 	UPROPERTY(EditAnywhere, Category = Parameter)
-// 	int32 IntA = 0;
-//
-// 	UPROPERTY(EditAnywhere, Category = Parameter)
-// 	bool bBoolA = false;
-// };
-//
-// USTRUCT()
-// struct FTestEval_A : public FEzAbilityEvaluator
-// {
-// 	GENERATED_BODY()
-//
-// 	using FInstanceDataType = FTestEval_AInstanceData;
-//
-// 	FTestEval_A() = default;
-// 	FTestEval_A(const FName InName) { Name = InName; }
-// 	virtual ~FTestEval_A() override {}
-//
-// 	virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); }
-// };
-//
-// USTRUCT()
-// struct FTestTask_BInstanceData
-// {
-// 	GENERATED_BODY()
-//
-// 	UPROPERTY(EditAnywhere, Category = Parameter)
-// 	float FloatB = 0.0f;
-//
-// 	UPROPERTY(EditAnywhere, Category = Parameter)
-// 	int32 IntB = 0;
-//
-// 	UPROPERTY(EditAnywhere, Category = Parameter)
-// 	bool bBoolB = false;
-// };
-//
-// USTRUCT()
-// struct FTestTask_B : public FEzAbilityTask
-// {
-// 	GENERATED_BODY()
-//
-// 	using FInstanceDataType = FTestTask_BInstanceData;
-//
-// 	FTestTask_B() = default;
-// 	FTestTask_B(const FName InName) { Name = InName; }
-// 	virtual ~FTestTask_B() override {}
-// 	
-// 	virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); }
-//
-// 	virtual EAbilityRunStatus EnterState(FEzAbilityContext& Context, const FEzAbilityTransitionResult& Transition) const
-// 	{
-// 		FTestEzAbilityExecutionContext& TestContext = static_cast<FTestEzAbilityExecutionContext&>(Context);
-// 		TestContext.Log(Name,  TEXT("EnterState"));
-// 		return EAbilityRunStatus::Running;
-// 	}
-// };
+USTRUCT()
+struct FEzAbilityTestEval_AInstanceData
+{
+	GENERATED_BODY()
+		
+	UPROPERTY(EditAnywhere, Category = Parameter)
+	float FloatA = 0.0f;
+
+	UPROPERTY(EditAnywhere, Category = Parameter)
+	int32 IntA = 0;
+
+	UPROPERTY(EditAnywhere, Category = Parameter)
+	bool bBoolA = false;
+};
+
+USTRUCT()
+struct FEzAbilityTestEval_A : public FEzAbilityEvaluator
+{
+	GENERATED_BODY()
+
+	using FInstanceDataType = FEzAbilityTestEval_AInstanceData;
+
+	FEzAbilityTestEval_A() = default;
+	FEzAbilityTestEval_A(const FName InName) { Name = InName; }
+	virtual ~FEzAbilityTestEval_A() override {}
+
+	virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); }
+};
+
+USTRUCT()
+struct FEzAbilityTestTask_BInstanceData
+{
+	GENERATED_BODY()
+
+	UPROPERTY(EditAnywhere, Category = Parameter)
+	float FloatB = 0.0f;
+
+	UPROPERTY(EditAnywhere, Category = Parameter)
+	int32 IntB = 0;
+
+	UPROPERTY(EditAnywhere, Category = Parameter)
+	bool bBoolB = false;
+};
+
+USTRUCT()
+struct FEzAbilityTestTask_B : public FEzAbilityTask
+{
+	GENERATED_BODY()
+
+	using FInstanceDataType = FEzAbilityTestTask_BInstanceData;
+
+	FEzAbilityTestTask_B() = default;
+	FEzAbilityTestTask_B(const FName InName) { Name = InName; }
+	virtual ~FEzAbilityTestTask_B() override {}
+	
+	virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); }
+
+	virtual EAbilityRunStatus EnterState(FEzAbilityContext& Context, const FEzAbilityTransitionResult& Transition) const
+	{
+		FTestEzAbilityExecutionContext& TestContext = static_cast<FTestEzAbilityExecutionContext&>(Context);
+		TestContext.Log(Name,  TEXT("EnterState"));
+		return EAbilityRunStatus::Running;
+	}
+};
 
 // USTRUCT()
 // struct FTestTask_PrintValueInstanceData
@@ -519,3 +518,5 @@ struct FTestEzAbilityExecutionContext : public FEzAbilityContext
 // 	UPROPERTY(EditAnywhere, Category = "")
 // 	TSoftClassPtr<UObject> SoftClass;
 // };
+
+