22. Init ability actor info
This commit is contained in:
		| @@ -43,11 +43,31 @@ AGasaCharacter::AGasaCharacter() | ||||
| 	{ | ||||
| 		AbilitySystem = CreateDefaultSubobject<UGasaAbilitySystemComp>("Ability System"); | ||||
| 		AbilitySystem->SetIsReplicated(true); | ||||
| 		AbilitySystem->SetReplicationMode(EGameplayEffectReplicationMode::Minimal); | ||||
| 		 | ||||
| 		Attributes = CreateDefaultSubobject<UAttributeSet>("Attributes"); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| #pragma region Pawn | ||||
| void AGasaCharacter::PossessedBy(AController* NewController) | ||||
| { | ||||
| 	Super::PossessedBy(NewController); | ||||
|  | ||||
| 	if (bAutoAbilitySystem) | ||||
| 	{ | ||||
| 		// TODO(Ed): Do we need to do this for enemies? | ||||
| 		AbilitySystem->InitAbilityActorInfo(this, this); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| void AGasaCharacter::OnRep_PlayerState() | ||||
| { | ||||
| 	Super::OnRep_PlayerState(); | ||||
| } | ||||
| #pragma endregion Pawn | ||||
|  | ||||
| #pragma region Actor | ||||
| void AGasaCharacter::BeginPlay() | ||||
| { | ||||
| 	Super::BeginPlay(); | ||||
| @@ -96,3 +116,4 @@ void AGasaCharacter::Tick(float DeltaSeconds) | ||||
| 		break; | ||||
| 	} | ||||
| } | ||||
| #pragma endregion Actor | ||||
|   | ||||
| @@ -4,6 +4,7 @@ | ||||
| #include "GameFramework/Character.h" | ||||
|  | ||||
| #include "GasaCommon.h" | ||||
| #include "Game/GasaPlayerState.h" | ||||
|  | ||||
| #include "GasaCharacter.generated.h" | ||||
|  | ||||
| @@ -57,10 +58,18 @@ public: | ||||
|  | ||||
| 	AGasaCharacter(); | ||||
|  | ||||
| 	FORCEINLINE AGasaPlayerState* GetGasaPlayerState() { return GetPlayerState<AGasaPlayerState>(); } | ||||
| 	 | ||||
| #pragma region IAbilitySystem | ||||
| 	FORCEINLINE UAttributeSet*           GetAttributes()                            { return Attributes; } | ||||
| 	FORCEINLINE UAbilitySystemComponent* GetAbilitySystemComponent() const override { return AbilitySystem; } | ||||
| #pragma endregion IAbilitySystem | ||||
|  | ||||
| #pragma region Pawn | ||||
| 	void PossessedBy(AController* NewController) override; | ||||
|  | ||||
| 	void OnRep_PlayerState() override; | ||||
| #pragma endregion Pawn | ||||
| 	 | ||||
| #pragma region Actor | ||||
| 	void BeginPlay() override; | ||||
|   | ||||
| @@ -1,8 +1,23 @@ | ||||
| #include "PlayerCharacter.h" | ||||
|  | ||||
| #include "AbilitySystemComponent.h" | ||||
|  | ||||
| APlayerCharacter::APlayerCharacter() | ||||
| { | ||||
| 	PrimaryActorTick.bCanEverTick = true; | ||||
|  | ||||
| 	bAutoAbilitySystem = false; | ||||
| } | ||||
|  | ||||
| void APlayerCharacter::OnRep_PlayerState() | ||||
| { | ||||
| 	Super::OnRep_PlayerState(); | ||||
| 	 | ||||
| 	AGasaPlayerState* PS = GetGasaPlayerState(); | ||||
| 	// Client setup ability system | ||||
| 	{ | ||||
| 		AbilitySystem = PS->AbilitySystem; | ||||
| 		Attributes    = PS->Attributes; | ||||
| 		AbilitySystem->InitAbilityActorInfo(PS, this); | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -10,5 +10,9 @@ class GASA_API APlayerCharacter : public AGasaCharacter | ||||
| 	GENERATED_BODY() | ||||
| public: | ||||
|  | ||||
| 	APlayerCharacter();	 | ||||
| 	APlayerCharacter(); | ||||
|  | ||||
| #pragma region Pawn | ||||
| 	void OnRep_PlayerState() override; | ||||
| #pragma endregion Pawn | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user