Compare commits

...

2 Commits

Author SHA1 Message Date
baz b381da2744 Create PatrolRoute 2024-02-08 23:41:11 +00:00
baz dcd292cb48 Create Clear Focus Task 2024-02-08 21:51:36 +00:00
4 changed files with 78 additions and 1 deletions

View File

@ -0,0 +1,34 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "PatrolRoute.h"
// Sets default values
APatrolRoute::APatrolRoute()
{
PrimaryActorTick.bCanEverTick = false;
Spline = CreateDefaultSubobject<USplineComponent>(TEXT("Spline"));
Spline->SetupAttachment(RootComponent);
}
void APatrolRoute::IncrementPatrolRoute()
{
if (PatrolIndex == Spline->GetNumberOfSplinePoints() - 1)
{
Direction = -1;
}
else if (PatrolIndex == 0)
{
Direction = 1;
}
PatrolIndex += Direction;
}
FVector APatrolRoute::GetSplinePointAtWorld(int pointIndex)
{
return Spline->GetLocationAtSplinePoint(pointIndex, ESplineCoordinateSpace::World);
}

View File

@ -0,0 +1,32 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Components/SplineComponent.h"
#include "GameFramework/Actor.h"
#include "PatrolRoute.generated.h"
UCLASS()
class NAKATOMI_API APatrolRoute : public AActor
{
GENERATED_BODY()
public:
UPROPERTY(BlueprintReadWrite)
USplineComponent* Spline;
private:
int PatrolIndex = 0;
int Direction;
public:
// Sets default values for this actor's properties
APatrolRoute();
void IncrementPatrolRoute();
FVector GetSplinePointAtWorld(int pointIndex);
};

View File

@ -1,5 +1,13 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "Tasks/BTTClearFocus.h"
#include "../Tasks/BTTClearFocus.h"
#include "Nakatomi/EnemyAIController.h"
EBTNodeResult::Type UBTTClearFocus::ExecuteTask(UBehaviorTreeComponent& owner, uint8* memory)
{
auto enemyController = Cast<AEnemyAIController>(owner.GetAIOwner());
enemyController->ClearFocus(EAIFocusPriority::Default);
return EBTNodeResult::Succeeded;
}

View File

@ -13,5 +13,8 @@ UCLASS()
class NAKATOMI_API UBTTClearFocus : public UBTTaskNode
{
GENERATED_BODY()
public:
virtual EBTNodeResult::Type ExecuteTask(UBehaviorTreeComponent& owner, uint8* memory) override;
};