diff --git a/Source/vampires/EnemyCharacter.h b/Source/vampires/EnemyCharacter.h index b4c928f..1a511c5 100644 --- a/Source/vampires/EnemyCharacter.h +++ b/Source/vampires/EnemyCharacter.h @@ -35,13 +35,15 @@ public: private: UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true")) - UBehaviorTree* BehaviorTree = nullptr; + TObjectPtr BehaviorTree = nullptr; - UObjectPoolComponent* ObjectPoolComponent = nullptr; + UPROPERTY() + TObjectPtr ObjectPoolComponent = nullptr; - UPickupDataAsset* PickupTemplate = nullptr; + UPROPERTY() + TObjectPtr PickupTemplate = nullptr; - TArray Player; + TArray> Player; FTimerHandle DamageTimerHandle; diff --git a/Source/vampires/EnemyDataAsset.h b/Source/vampires/EnemyDataAsset.h index 54c7931..c50a9e8 100644 --- a/Source/vampires/EnemyDataAsset.h +++ b/Source/vampires/EnemyDataAsset.h @@ -20,13 +20,13 @@ class VAMPIRES_API UEnemyDataAsset : public UDataAsset public: UPROPERTY(BlueprintReadWrite, EditAnywhere) - UStaticMesh* StaticMesh; + TObjectPtr StaticMesh; UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true")) - UBehaviorTree* BehaviorTree = nullptr; + TObjectPtr BehaviorTree = nullptr; UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true")) - UPickupDataAsset* PickupDataAsset = nullptr; + TObjectPtr PickupDataAsset = nullptr; UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true")) TObjectPtr OnDamagedSoundBase = nullptr; @@ -35,8 +35,8 @@ public: TObjectPtr OnDeathSoundBase = nullptr; UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true")) - UNiagaraSystem* OnDamagedNiagaraSystem; + TObjectPtr OnDamagedNiagaraSystem; UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true")) - UNiagaraSystem* OnDeathNiagaraSystem; + TObjectPtr OnDeathNiagaraSystem; }; diff --git a/Source/vampires/ObjectPoolManager.h b/Source/vampires/ObjectPoolManager.h index 5724554..3dbf4ef 100644 --- a/Source/vampires/ObjectPoolManager.h +++ b/Source/vampires/ObjectPoolManager.h @@ -11,7 +11,7 @@ class VAMPIRES_API AObjectPoolManager : public AActor { GENERATED_BODY() - TArray ObjectPool = TArray(); + TArray> ObjectPool = TArray>(); public: void InitializeObjectPool(TSubclassOf Object, int InitialObjectPoolSize = 400); diff --git a/Source/vampires/Pickup.h b/Source/vampires/Pickup.h index 66b0cd3..dedb8b9 100644 --- a/Source/vampires/Pickup.h +++ b/Source/vampires/Pickup.h @@ -22,22 +22,22 @@ public: int PickupValue = 1; UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) - USphereComponent* InnerSphereComponent = nullptr; + TObjectPtr InnerSphereComponent = nullptr; UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) - USphereComponent* OuterSphereComponent = nullptr; + TObjectPtr OuterSphereComponent = nullptr; UPROPERTY(EditAnywhere) - UStaticMeshComponent* StaticMeshComponent = nullptr; + TObjectPtr StaticMeshComponent = nullptr; UPROPERTY(EditDefaultsOnly) - USoundBase* PickupSoundBase = nullptr; + TObjectPtr PickupSoundBase = nullptr; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Timeline") TObjectPtr TimelineComponent = nullptr; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Timeline") - UCurveFloat* CurveFloat; + TObjectPtr CurveFloat; private: FOnTimelineFloat onTimelineCallback; diff --git a/Source/vampires/PlayerCharacter.h b/Source/vampires/PlayerCharacter.h index 583cc65..a9bf3ff 100644 --- a/Source/vampires/PlayerCharacter.h +++ b/Source/vampires/PlayerCharacter.h @@ -26,13 +26,13 @@ class VAMPIRES_API APlayerCharacter : public AVampireCharacter public: UPROPERTY(EditAnywhere, BlueprintReadWrite) - UEXPComponent* EXPComponent; + TObjectPtr EXPComponent; UPROPERTY(EditAnywhere, BlueprintReadWrite) - UGoldComponent* GoldComponent; + TObjectPtr GoldComponent; UPROPERTY(EditAnywhere) - UWidgetComponent* HealthBarWidgetComponent; + TObjectPtr HealthBarWidgetComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) TObjectPtr CameraShakeTimelineComponent = nullptr; diff --git a/Source/vampires/Projectile.h b/Source/vampires/Projectile.h index acd84b7..9fadb7f 100644 --- a/Source/vampires/Projectile.h +++ b/Source/vampires/Projectile.h @@ -18,10 +18,10 @@ class VAMPIRES_API AProjectile : public AActor, public IProjectilable public: UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) - USphereComponent* SphereComponent = nullptr; + TObjectPtr SphereComponent = nullptr; UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) - UProjectileMovementComponent* ProjectileMovement = nullptr; + TObjectPtr ProjectileMovement = nullptr; FVector TargetDirection = FVector::ZeroVector; @@ -29,7 +29,7 @@ public: float ProjectileSpeed = 500.0f; UPROPERTY(EditAnywhere, BlueprintReadWrite) - UStaticMeshComponent* StaticMeshComponent = nullptr; + TObjectPtr StaticMeshComponent = nullptr; UPROPERTY(EditAnywhere, BlueprintReadWrite) int RemainingDamagableEnemies = 1; diff --git a/Source/vampires/VampireAIController.cpp b/Source/vampires/VampireAIController.cpp index ad501f2..3cb6b2f 100644 --- a/Source/vampires/VampireAIController.cpp +++ b/Source/vampires/VampireAIController.cpp @@ -15,7 +15,7 @@ AVampireAIController::AVampireAIController(const FObjectInitializer& object_initializer) : Super( object_initializer.SetDefaultSubobjectClass(TEXT("Path Following Component"))) { - Blackboard = CreateDefaultSubobject(TEXT("Blackboard")); + DefaultBlackboard = CreateDefaultSubobject(TEXT("Blackboard")); BehaviorTree = CreateDefaultSubobject(TEXT("Behavior Tree")); } @@ -38,7 +38,7 @@ void AVampireAIController::Tick(float DeltaTime) if (PlayerCharacter) { - Blackboard->SetValueAsVector("PlayerLocation", PlayerCharacter->GetActorLocation()); + DefaultBlackboard->SetValueAsVector("PlayerLocation", PlayerCharacter->GetActorLocation()); } } @@ -56,13 +56,13 @@ void AVampireAIController::OnPossess(APawn* InPawn) if (UBehaviorTree* bt = EnemyCharacter->GetBehaviorTree()) { - Blackboard->InitializeBlackboard(*bt->BlackboardAsset); + DefaultBlackboard->InitializeBlackboard(*bt->BlackboardAsset); BehaviorTree->StartTree(*bt); - Blackboard->SetValueAsObject("SelfActor", EnemyCharacter); + DefaultBlackboard->SetValueAsObject("SelfActor", EnemyCharacter); if (PlayerCharacter) { - Blackboard->SetValueAsObject("Player", PlayerCharacter); + DefaultBlackboard->SetValueAsObject("Player", PlayerCharacter); } } } diff --git a/Source/vampires/VampireAIController.h b/Source/vampires/VampireAIController.h index a688b20..f0a0f26 100644 --- a/Source/vampires/VampireAIController.h +++ b/Source/vampires/VampireAIController.h @@ -18,13 +18,17 @@ class VAMPIRES_API AVampireAIController : public AAIController { GENERATED_BODY() - UBlackboardComponent* Blackboard; + UPROPERTY() + TObjectPtr DefaultBlackboard; - UBehaviorTreeComponent* BehaviorTree; + UPROPERTY() + TObjectPtr BehaviorTree; - ACharacter* PlayerCharacter; + UPROPERTY() + TObjectPtr PlayerCharacter; - AEnemyCharacter* EnemyCharacter; + UPROPERTY() + TObjectPtr EnemyCharacter; FTimerHandle PawnMoveToTimerHandle; diff --git a/Source/vampires/VampireCharacter.h b/Source/vampires/VampireCharacter.h index d4f2e44..c32bb26 100644 --- a/Source/vampires/VampireCharacter.h +++ b/Source/vampires/VampireCharacter.h @@ -21,7 +21,7 @@ class VAMPIRES_API AVampireCharacter : public ACharacter, public IInputable public: UPROPERTY(BlueprintReadWrite, EditAnywhere) - UStaticMeshComponent* StaticMeshComponent; + TObjectPtr StaticMeshComponent; FVector2D PreviousMovementDirection = FVector2d(1.0f, 0.0f); @@ -30,25 +30,25 @@ public: protected: UPROPERTY(VisibleAnywhere) - UHealthComponent* HealthComponent; + TObjectPtr HealthComponent; UPROPERTY(EditAnywhere, BlueprintReadWrite) TObjectPtr InputMappingContext; UPROPERTY(EditAnywhere, BlueprintReadWrite) - UWeaponInventoryComponent* WeaponInventoryComponent; + TObjectPtr WeaponInventoryComponent; UPROPERTY(EditAnywhere, BlueprintReadWrite) - USoundBase* OnDamagedSound; + TObjectPtr OnDamagedSound; UPROPERTY(EditAnywhere, BlueprintReadWrite) - USoundBase* OnDeathSound; + TObjectPtr OnDeathSound; UPROPERTY(EditAnywhere, BlueprintReadWrite) - UNiagaraSystem* OnDamagedNiagaraSystem; + TObjectPtr OnDamagedNiagaraSystem; UPROPERTY(EditAnywhere, BlueprintReadWrite) - UNiagaraSystem* OnDeathNiagaraSystem; + TObjectPtr OnDeathNiagaraSystem; public: // Sets default values for this character's properties diff --git a/Source/vampires/VampireGameMode.h b/Source/vampires/VampireGameMode.h index aab8eb2..c0475cb 100644 --- a/Source/vampires/VampireGameMode.h +++ b/Source/vampires/VampireGameMode.h @@ -39,20 +39,26 @@ public: TArray> EnemyDataAssets; private: + UPROPERTY() TObjectPtr PlayerCharacter; + UPROPERTY() TObjectPtr PlayerController; FTimerHandle SpawnEnemyTimerDelegate; int EnemyDeathCount = 0; + UPROPERTY() TObjectPtr EnemyObjectPoolManager = nullptr; + UPROPERTY() TObjectPtr ProjectileObjectPoolManager = nullptr; + UPROPERTY() TObjectPtr PickupObjectPoolManager = nullptr; - + + UPROPERTY() TArray> SpawnableEnemyDataAssets; protected: diff --git a/Source/vampires/VampirePlayerController.h b/Source/vampires/VampirePlayerController.h index d192b20..e3e0bb2 100644 --- a/Source/vampires/VampirePlayerController.h +++ b/Source/vampires/VampirePlayerController.h @@ -33,17 +33,20 @@ public: // Inputs UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) - UInputAction* MovementAction; + TObjectPtr MovementAction; UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) - UInputAction* PauseAction; + TObjectPtr PauseAction; private: + UPROPERTY() TObjectPtr currentPlayerHUD = nullptr; + UPROPERTY() TObjectPtr currentPauseUI = nullptr; - + + UPROPERTY() TObjectPtr currentLevelUpUI = nullptr; FTimerHandle pawnLifeTimeHandle; diff --git a/Source/vampires/Weapon.h b/Source/vampires/Weapon.h index 9195d79..fd772e4 100644 --- a/Source/vampires/Weapon.h +++ b/Source/vampires/Weapon.h @@ -27,7 +27,7 @@ public: TObjectPtr Icon; UPROPERTY(EditDefaultsOnly, Category = "Weapon Properties") - USoundBase* WeaponActivatedSoundBase = nullptr; + TObjectPtr WeaponActivatedSoundBase = nullptr; UPROPERTY(EditDefaultsOnly, Category = "Weapon Properties") TObjectPtr WeaponSprite = nullptr; @@ -51,9 +51,9 @@ public: protected: UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) - UBoxComponent* BoxComponent = nullptr; + TObjectPtr BoxComponent = nullptr; - TArray OverlappedEnemies = TArray(); + TArray> OverlappedEnemies = TArray>(); private: FTimerHandle WeaponTimerHandle; diff --git a/Source/vampires/WeaponInventoryComponent.h b/Source/vampires/WeaponInventoryComponent.h index caf2877..3c9d460 100644 --- a/Source/vampires/WeaponInventoryComponent.h +++ b/Source/vampires/WeaponInventoryComponent.h @@ -24,7 +24,7 @@ public: private: UPROPERTY() - TArray inventory; + TArray> inventory; public: // Sets default values for this component's properties diff --git a/Source/vampires/Weapons/GarlicWeapon.h b/Source/vampires/Weapons/GarlicWeapon.h index 05058bd..c6cafeb 100644 --- a/Source/vampires/Weapons/GarlicWeapon.h +++ b/Source/vampires/Weapons/GarlicWeapon.h @@ -14,7 +14,8 @@ struct FOverlappedEnemy { GENERATED_BODY() - AEnemyCharacter* OverlappedEnemyCharacter; + UPROPERTY() + TObjectPtr OverlappedEnemyCharacter; FTimerHandle OverlappedTimerHandle; }; @@ -28,7 +29,7 @@ class VAMPIRES_API AGarlicWeapon : public AWeapon GENERATED_BODY() public: UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true")) - USphereComponent* SphereComponent; + TObjectPtr SphereComponent; TArray GarlicOverlappedEnemies; diff --git a/Source/vampires/Weapons/PentagramWeapon.h b/Source/vampires/Weapons/PentagramWeapon.h index 5f273e5..f917226 100644 --- a/Source/vampires/Weapons/PentagramWeapon.h +++ b/Source/vampires/Weapons/PentagramWeapon.h @@ -18,7 +18,7 @@ class VAMPIRES_API APentagramWeapon : public AWeapon GENERATED_BODY() private: - TArray OverlappedPickups = TArray(); + TArray> OverlappedPickups = TArray>(); public: APentagramWeapon(); diff --git a/Source/vampires/Weapons/SwarmAgent.h b/Source/vampires/Weapons/SwarmAgent.h index 2f08e7c..22bb326 100644 --- a/Source/vampires/Weapons/SwarmAgent.h +++ b/Source/vampires/Weapons/SwarmAgent.h @@ -15,10 +15,10 @@ class VAMPIRES_API ASwarmAgent : public AActor public: UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) - USphereComponent* SphereComponent = nullptr; + TObjectPtr SphereComponent = nullptr; UPROPERTY(EditAnywhere, BlueprintReadWrite) - UStaticMeshComponent* StaticMeshComponent = nullptr; + TObjectPtr StaticMeshComponent = nullptr; // Sets default values for this actor's properties ASwarmAgent(); diff --git a/Source/vampires/Weapons/SwarmWeapon.h b/Source/vampires/Weapons/SwarmWeapon.h index 8d4bec0..953ff72 100644 --- a/Source/vampires/Weapons/SwarmWeapon.h +++ b/Source/vampires/Weapons/SwarmWeapon.h @@ -33,7 +33,7 @@ public: private: FOnTimelineFloat onTimelineCallback; - TArray SwarmActors; + TArray> SwarmActors; public: // Sets default values for this actor's properties