5#include "CoreMinimal.h"
8#include "GravityData.generated.h"
19 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=
"Gravity")
20 TObjectPtr<AActor> TrackedActor =
nullptr;
24 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Gravity")
25 UPrimitiveComponent* PrimitiveRoot =
nullptr;
30 if(Actor ==
nullptr){
return;}
32 if(TrackedActor ==
nullptr){
return;}
34 if(CharacterInterface ==
nullptr)
37 if(TrackedActor->GetRootComponent() !=
nullptr)
39 UPrimitiveComponent* Primitive = Cast<UPrimitiveComponent>(TrackedActor->GetRootComponent());
40 if(Primitive !=
nullptr)
42 PrimitiveRoot = Primitive;
49 if(
Character->GetPrimitiveComponent() !=
nullptr)
54 if(ALSInterface ==
nullptr){bIsALSCharacter =
false;
return;}
55 bIsALSCharacter =
true;
56 ALSCharacter = ALSInterface;
66 if(TrackedActor ==
nullptr){
return false;}
67 if(bIsCharacter &&
Character ==
nullptr){
return false;}
68 if(PrimitiveRoot ==
nullptr){
return false;}
69 if(bIsCharacter ==
false)
71 if(PrimitiveRoot->IsAnySimulatingPhysics() && PrimitiveRoot->IsGravityEnabled())
82 if(
Other.TrackedActor ==
nullptr || TrackedActor ==
nullptr){
return false;}
83 if(
Other.TrackedActor == TrackedActor){
return true;}
88 if(
Other ==
nullptr || TrackedActor ==
nullptr){
return false;}
89 if(
Other == TrackedActor){
return true;}
94 UPROPERTY(VisibleAnywhere, Category=
"Gravity")
95 bool bIsCharacter = false;
96 UPROPERTY(VisibleAnywhere, Category="Gravity")
97 bool bIsALSCharacter = false;
Definition ALSCharacterInterface.h:24
Definition CustomCharacter.h:19
virtual UPrimitiveComponent * GetPrimitiveComponent()=0
Definition GravityData.h:15
FTrackedGravityActor(AActor *Actor)
Definition GravityData.h:28
bool IsValid() const
Definition GravityData.h:64
bool operator==(const FTrackedGravityActor &Other) const
Definition GravityData.h:80
bool IsCharacter() const
Definition GravityData.h:59
bool operator==(const AActor *Other) const
Definition GravityData.h:86