Lyra character
Overall overview
classDiagram
class AActor{
}
class ACharacter{
}
class ALyraCharacter{
-TObjectPtr~ULyraCameraComponent~ CameraComponent
-TObjectPtr~ULyraHealthComponent~ HealthComponent
-TObjectPtr~ULyraPawnExtensionComponent~ PawnExtComponent
#OnDeathStarted(AActor* OwningActor)
#PossessedBy(AController* NewController)
#SetupPlayerInputcomponent(UInputComponent* PlayerInputComponent)
}
class ALyraCharacterWithAbilities{
-TObjectPtr~ULyraAbilitySystemComponent~ AbilitySystemComponent;
}
class AModularCharacter{
}
class APawn{
}
class UCharacterMovementComponent{
}
class ULyraAbilitySystemComponent{
}
class ULyraCameraComponent{
+FindCameraComponent(const AActor* Actor) ULyraCameraComponent*
#GetCameraView(float DeltaTime, FMinimalViewInfo& DesiredView)
}
class ULyraCharacterMovementComponent{
}
class ULyraHealthComponent{
+FindHealthComponent(const AActor* Actor) ULyraHealthComponent*
+GetHealth() float
#HandleHealthChanged(AActor* DamageInstigator, AActor* DamageCauser)
}
class ULyraPawnExtensionComponent{
+FindPawnExtensionComponent(const AActor* Actor) ULyraPawnExtensionComponent*
+HandleControllerChanged()
+SetupPlayerInputComponent()
}
class ULyraPawnData{
+TSubclassOf~APawn~ PawnClass
}
class ULyraAbilitySet{
}
class ULyraInputConfig{
}
class ULyraCameraMode{
}
class UPawnComponent{
}
ACharacter "0..*" --* "1" UCharacterMovementComponent
ACharacter --|> APawn
AModularCharacter --|> ACharacter
APawn --|> AActor
ALyraCharacter --* ULyraHealthComponent
ALyraCharacter --* ULyraCameraComponent
ALyraCharacter --* ULyraPawnExtensionComponent
ALyraCharacter --|> AModularCharacter
ALyraCharacterWithAbilities --|> ALyraCharacter
ALyraCharacterWithAbilities "0..*" --* "1" ULyraAbilitySystemComponent
ULyraCharacterMovementComponent --|> UCharacterMovementComponent
ULyraPawnExtensionComponent --|> UPawnComponent
ULyraPawnExtensionComponent --* ULyraAbilitySystemComponent
ULyraPawnExtensionComponent --* ULyraPawnData
ULyraPawnData "0..*" --* "1" APawn
ULyraPawnData "1" --* "0..*" ULyraAbilitySet
ULyraPawnData --* ULyraInputConfig
ULyraPawnData --* ULyraCameraMode
ULyraPawnExtensionComponent focus
classDiagram
class APawn{
}
class ULyraAbilitySystemComponent{
}
class ULyraPawnExtensionComponent{
+FindPawnExtensionComponent(const AActor* Actor) ULyraPawnExtensionComponent*
+HandleControllerChanged()
+SetupPlayerInputComponent()
}
class ULyraPawnData{
+TSubclassOf~APawn~ PawnClass
}
class ULyraAbilitySet{
}
class ULyraInputConfig{
}
class ULyraCameraMode{
}
class UPawnComponent{
}
ULyraPawnExtensionComponent --|> UPawnComponent
ULyraPawnExtensionComponent --* ULyraAbilitySystemComponent
ULyraPawnExtensionComponent --* ULyraPawnData
ULyraPawnData "0..*" --* "1" APawn
ULyraPawnData "1" --* "0..*" ULyraAbilitySet
ULyraPawnData --* ULyraInputConfig
ULyraPawnData --* ULyraCameraMode
note for APawn "pawn is the base class of all actors that can be possessed by players or AI"
note for ULyraAbilitySystemComponent "base ability system component class"
note for ULyraPawnExtensionComponent "components adding functionality to all pawn classes\ncan be used for characters/vehicles"
note for ULyraPawnData "non-mutable data asset that contains properties used to define a pawn"
note for UPawnComponent "actor component made for APawn and receives pawn events."
ALyraCharacter focus
classDiagram
class AActor{
}
class ACharacter{
}
class ALyraCharacter{
-TObjectPtr~ULyraCameraComponent~ CameraComponent
-TObjectPtr~ULyraHealthComponent~ HealthComponent
-TObjectPtr~ULyraPawnExtensionComponent~ PawnExtComponent
#OnDeathStarted(AActor* OwningActor)
#PossessedBy(AController* NewController)
#SetupPlayerInputcomponent(UInputComponent* PlayerInputComponent)
}
class ALyraCharacterWithAbilities{
-TObjectPtr~ULyraAbilitySystemComponent~ AbilitySystemComponent;
}
class AModularCharacter{
}
class APawn{
}
class UCharacterMovementComponent{
}
class ULyraAbilitySystemComponent{
}
class ULyraCameraComponent{
+FindCameraComponent(const AActor* Actor) ULyraCameraComponent*
#GetCameraView(float DeltaTime, FMinimalViewInfo& DesiredView)
}
class ULyraCharacterMovementComponent{
}
class ULyraHealthComponent{
+FindHealthComponent(const AActor* Actor) ULyraHealthComponent*
+GetHealth() float
#HandleHealthChanged(AActor* DamageInstigator, AActor* DamageCauser)
}
class ULyraPawnExtensionComponent{
}
ACharacter "0..*" --* "1" UCharacterMovementComponent
ACharacter --|> APawn
AModularCharacter --|> ACharacter
APawn --|> AActor
ALyraCharacter --* ULyraHealthComponent
ALyraCharacter --* ULyraCameraComponent
ALyraCharacter --* ULyraPawnExtensionComponent
ALyraCharacter --|> AModularCharacter
ALyraCharacterWithAbilities --|> ALyraCharacter
ALyraCharacterWithAbilities "0..*" --* "1" ULyraAbilitySystemComponent
ULyraCharacterMovementComponent --|> UCharacterMovementComponent
note for AActor "base class for an Object that can be placed or spawned in a level"
note for ALyraCharacter "base character pawn class\nresponsible for sending events to pawn components"
note for UCharacterMovementComponent "handles movement logic for the associated Character owner.\nnetworking is fully implemented"
note for ULyraAbilitySystemComponent "base ability system component class"
note for ULyraPawnExtensionComponent "components adding functionality to all pawn classes\ncan be used for characters/vehicles"