You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- Moved all State Tree things into StateTree folder - Added StateTree conditions that check Smart Object slot tags and state - Added StateTree task to modify SmartObject slot tags - Added StateTree task to monitor SmartObject slot tags - Added StateTree task to listen SmartObject events - Added StateTree task to sync execution based on SmartObject slot tags #rb Maxime.Mercier Luciano.Ferraro #preflight 636124a8ef6d25c67458635c [CL 22888785 by mikko mononen in ue5-main branch]
77 lines
2.1 KiB
C++
77 lines
2.1 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "ContextualAnimTypes.h"
|
|
#include "GameplayInteractionsTypes.h"
|
|
#include "ContextualAnimStateTreeTask.generated.h"
|
|
|
|
class UGameplayTask_PlayContextualAnim;
|
|
class UContextualAnimSceneAsset;
|
|
|
|
/**
|
|
* FContextualAnimStateTreeTask instance data
|
|
* @see FContextualAnimStateTreeTask
|
|
*/
|
|
USTRUCT()
|
|
struct FContextualAnimStateTreeTaskInstanceData
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
UPROPERTY(EditAnywhere, Category="Context")
|
|
TObjectPtr<AActor> Actor = nullptr;
|
|
|
|
UPROPERTY(EditAnywhere, Category = Parameter)
|
|
TObjectPtr<UContextualAnimSceneAsset> ContextualAnimAsset = nullptr;
|
|
|
|
UPROPERTY(EditAnywhere, Category = Parameter)
|
|
TObjectPtr<AActor> InteractableObject = nullptr;
|
|
|
|
UPROPERTY()
|
|
TObjectPtr<UGameplayTask_PlayContextualAnim> Task = nullptr;
|
|
|
|
UPROPERTY(EditAnywhere, Category = Parameter)
|
|
float Duration = 0.0f;
|
|
|
|
UPROPERTY()
|
|
float Time = 0.f;
|
|
|
|
UPROPERTY(EditAnywhere, Category = Parameter)
|
|
FName InteractorRole;
|
|
|
|
UPROPERTY(EditAnywhere, Category = Parameter)
|
|
FName InteractableObjectRole;
|
|
|
|
UPROPERTY(VisibleAnywhere, Category = Parameter)
|
|
FGameplayInteractionAbortContext AbortContext;
|
|
};
|
|
|
|
|
|
/**
|
|
* Builds context and creates GameplayTask that will control playback of a ContextualAnimScene
|
|
*/
|
|
USTRUCT(meta = (DisplayName = "Contextual Anim Task"))
|
|
struct FContextualAnimStateTreeTask : public FGameplayInteractionStateTreeTask
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
using FInstanceDataType = FContextualAnimStateTreeTaskInstanceData;
|
|
|
|
protected:
|
|
|
|
virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); }
|
|
|
|
virtual EStateTreeRunStatus EnterState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const override;
|
|
virtual EStateTreeRunStatus Tick(FStateTreeExecutionContext& Context, const float DeltaTime) const override;
|
|
virtual void ExitState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const override;
|
|
|
|
UPROPERTY(EditAnywhere, Category = Parameter)
|
|
FName Section;
|
|
|
|
UPROPERTY(EditAnywhere, Category = Parameter)
|
|
FName ExitSection;
|
|
|
|
UPROPERTY(EditAnywhere, Category = Parameter)
|
|
bool bEnabled = true;
|
|
};
|