FK v1.0.0 (build errors)

This commit is contained in:
2023-08-23 23:19:46 +02:00
parent abfc0e5114
commit 295144bc27
30 changed files with 38 additions and 2 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -15,6 +15,7 @@ void ABuildingBlock::TakeHit() {
HitsRemaining -= 1; HitsRemaining -= 1;
if (HitsRemaining <= 0) { if (HitsRemaining <= 0) {
Ripple();
DestroyBlock(); DestroyBlock();
} }
} }
@@ -54,10 +55,34 @@ TArray<ABuildingBlock*> ABuildingBlock::GetSameVariantNeighbours() {
} }
void ABuildingBlock::DestroyBlock_Implementation() { void ABuildingBlock::DestroyBlock_Implementation() {
if (!IsBeingDestroyed) {
IsBeingDestroyed = true; IsBeingDestroyed = true;
OnBlockDestroyed.ExecuteIfBound(); OnBlockDestroyed.ExecuteIfBound();
} }
}
void ABuildingBlock::DestroyWithDelay_Implementation() { void ABuildingBlock::DestroyWithDelay_Implementation() {
IsBeingDestroyed = true; IsBeingDestroyed = true;
OnBlockDestroyed.ExecuteIfBound();
}
void ABuildingBlock::Ripple() {
TArray<TEnumAsByte<EObjectTypeQuery>> TraceObjectTypes;
TraceObjectTypes.Add(UEngineTypes::ConvertToObjectType(ECC_Visibility));
TArray<AActor*> IgnoreActors;
IgnoreActors.Add(this);
TArray<AActor*> OutActors;
UKismetSystemLibrary::SphereOverlapActors(GetWorld(), this->GetActorLocation(), RippleRadius, TraceObjectTypes, ABuildingBlock::StaticClass(), IgnoreActors, OutActors);
for (AActor* OverlappedActor : OutActors) {
ABuildingBlock* ThisBlock = Cast<ABuildingBlock>(OverlappedActor);
if (ThisBlock && !ThisBlock->IsBeingDestroyed) {
float ThisDistance = UKismetMathLibrary::Vector_Distance(this->GetActorLocation(), ThisBlock->GetActorLocation());
ThisBlock->RippleEffects(ThisDistance);
}
}
} }

View File

@@ -5,6 +5,8 @@
#include "CoreMinimal.h" #include "CoreMinimal.h"
#include "Components/StaticMeshComponent.h" #include "Components/StaticMeshComponent.h"
#include "DrawDebugHelpers.h" #include "DrawDebugHelpers.h"
#include "Kismet/KismetSystemLibrary.h"
#include "Kismet/KismetMathLibrary.h"
#include "BuildingBlock.generated.h" #include "BuildingBlock.generated.h"
DECLARE_DELEGATE(FBlockDestroyed); DECLARE_DELEGATE(FBlockDestroyed);
@@ -37,6 +39,9 @@ public:
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
int32 Variant = 0; int32 Variant = 0;
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
float RippleRadius = 200.f;
UPROPERTY(BlueprintReadOnly) UPROPERTY(BlueprintReadOnly)
bool IsBeingDestroyed = false; bool IsBeingDestroyed = false;
@@ -54,6 +59,12 @@ public:
UFUNCTION(BlueprintNativeEvent, BlueprintCallable) UFUNCTION(BlueprintNativeEvent, BlueprintCallable)
void DestroyWithDelay(); void DestroyWithDelay();
UFUNCTION()
void Ripple();
UFUNCTION(BlueprintImplementableEvent)
void RippleEffects(float Distance);
// Get neighbouring Blocks with same color variant // Get neighbouring Blocks with same color variant
UFUNCTION(BlueprintCallable) UFUNCTION(BlueprintCallable)
TArray<ABuildingBlock*> GetSameVariantNeighbours(); TArray<ABuildingBlock*> GetSameVariantNeighbours();