Files
UnrealEngine/Engine/Source/Runtime/AIModule/Classes/Navigation/CrowdAgentInterface.h
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

42 lines
1.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "UObject/Interface.h"
#include "AITypes.h"
#include "CrowdAgentInterface.generated.h"
UINTERFACE(MinimalAPI, meta=(CannotImplementInterfaceInBlueprint))
class UCrowdAgentInterface : public UInterface
{
GENERATED_UINTERFACE_BODY()
};
class ICrowdAgentInterface
{
GENERATED_IINTERFACE_BODY()
/** @return current location of crowd agent */
virtual FVector GetCrowdAgentLocation() const { return FAISystem::InvalidLocation; }
/** @return current velocity of crowd agent */
virtual FVector GetCrowdAgentVelocity() const { return FVector::ZeroVector; }
/** fills information about agent's collision cylinder */
virtual void GetCrowdAgentCollisions(float& CylinderRadius, float& CylinderHalfHeight) const {}
/** @return max speed of crowd agent */
virtual float GetCrowdAgentMaxSpeed() const { return 0.0f; }
/** Group mask for this agent */
virtual int32 GetCrowdAgentAvoidanceGroup() const { return 1; }
/** Will avoid other agents if they are in one of specified groups */
virtual int32 GetCrowdAgentGroupsToAvoid() const { return MAX_int32; }
/** Will NOT avoid other agents if they are in one of specified groups, higher priority than GroupsToAvoid */
virtual int32 GetCrowdAgentGroupsToIgnore() const { return 0; }
};