From 55e160eb80cae613ef5775d58f1ad640831e52a1 Mon Sep 17 00:00:00 2001 From: MH261677 Date: Tue, 21 Nov 2023 14:31:33 +0000 Subject: [PATCH] Finished Door opening mechanic --- .../Blueprints/DoorPrompt/BP_Door.uasset | 4 ++-- .../DoorPrompt/WBP_DoorPrompt.uasset | 4 ++-- .../3/C5/NXF52EAUAGH5ETW1R053H8.uasset | 3 --- .../D/X5/OKD54JHXNGXNVF4JEBBMVP.uasset | 4 ++-- .../Source/EndlessVendetta/DoorClass.cpp | 22 +++++++++++++++---- .../Source/EndlessVendetta/DoorClass.h | 15 +++++++++++++ 6 files changed, 39 insertions(+), 13 deletions(-) delete mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/3/C5/NXF52EAUAGH5ETW1R053H8.uasset diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/DoorPrompt/BP_Door.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/DoorPrompt/BP_Door.uasset index 5d28527c..2e39669d 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/DoorPrompt/BP_Door.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/DoorPrompt/BP_Door.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e2f1074b45a94221f63a446c72d393090ed47a8c08ea3f146768e03595937c21 -size 43976 +oid sha256:03cc628cc4a9ab85f3fb7754903bb0b4f5cbf3db50b0cb2044f6812aec991c82 +size 71627 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/DoorPrompt/WBP_DoorPrompt.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/DoorPrompt/WBP_DoorPrompt.uasset index 7dc4b401..5608096e 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/DoorPrompt/WBP_DoorPrompt.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/DoorPrompt/WBP_DoorPrompt.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e5df8144e689a0c6abffa1f71e8bcbb707cd668b26db1c4a663ce50ee116b26b -size 82712 +oid sha256:dd2cc6201da826cdd7357a5f683f0c9d0638cd2c44ebaab60b6585f1c2659159 +size 81251 diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/3/C5/NXF52EAUAGH5ETW1R053H8.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/3/C5/NXF52EAUAGH5ETW1R053H8.uasset deleted file mode 100644 index b43bdf00..00000000 --- a/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/3/C5/NXF52EAUAGH5ETW1R053H8.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:162297ec59b7e47b42f34b19c64b0cbca86fcf80168764e5047cc45910cfe7da -size 4366 diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/D/X5/OKD54JHXNGXNVF4JEBBMVP.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/D/X5/OKD54JHXNGXNVF4JEBBMVP.uasset index 54648ba0..e0940ef3 100644 --- a/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/D/X5/OKD54JHXNGXNVF4JEBBMVP.uasset +++ b/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/D/X5/OKD54JHXNGXNVF4JEBBMVP.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bc292d8f45c5187522d0333e3854a43a00a1ae233a8eedc97cdfc032f925c0ce -size 5476 +oid sha256:4f37bd6fd21d44596891c4bd6763bd936b1ff98425033925bbed475ee4d2f5b9 +size 7302 diff --git a/EndlessVendetta/Source/EndlessVendetta/DoorClass.cpp b/EndlessVendetta/Source/EndlessVendetta/DoorClass.cpp index 6811b02e..c1961191 100644 --- a/EndlessVendetta/Source/EndlessVendetta/DoorClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/DoorClass.cpp @@ -3,6 +3,10 @@ #include "DoorClass.h" +#include "EndlessVendettaCharacter.h" +#include "Components/ArrowComponent.h" +#include "Kismet/GameplayStatics.h" + // Sets default values ADoorClass::ADoorClass() { @@ -16,33 +20,43 @@ void ADoorClass::BeginPlay() { Super::BeginPlay(); + // Attempt to find the player character + APlayerController* PlayerController = UGameplayStatics::GetPlayerController(this, 0); + playerInWorld = Cast(PlayerController->GetCharacter()); + + endlessVendettaChar = Cast(playerInWorld); + + for (UActorComponent* actorComp : playerInWorld->GetComponentsByTag(UArrowComponent::StaticClass(), FName("FrontOfDoor"))) + { + FrontOfDoor = Cast(actorComp); + break; + } } // Called every frame void ADoorClass::Tick(float DeltaTime) { Super::Tick(DeltaTime); - } void ADoorClass::Interact() { if (!IsValid(this)) return; - GLog->Log("Door has been interacted"); - bool bIsDoorOpen = false; if (!bIsDoorOpen) { - + DoorOpeningAnim(); bIsDoorOpen = true; } else { + DoorCloseAnim(); bIsDoorOpen = false; } } void ADoorClass::InteractPrompt() { + if(bIsDoorOpen) return; DoorPrompt(); } diff --git a/EndlessVendetta/Source/EndlessVendetta/DoorClass.h b/EndlessVendetta/Source/EndlessVendetta/DoorClass.h index 8d321772..8d5671e5 100644 --- a/EndlessVendetta/Source/EndlessVendetta/DoorClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/DoorClass.h @@ -3,6 +3,7 @@ #pragma once #include "CoreMinimal.h" +#include "Components/ArrowComponent.h" #include "GameFramework/Actor.h" #include "EndlessVendetta/InteractionInterface.h" #include "DoorClass.generated.h" @@ -21,6 +22,12 @@ public: protected: // Called when the game starts or when spawned virtual void BeginPlay() override; + + ACharacter* playerInWorld; + + AEndlessVendettaCharacter* endlessVendettaChar; + + UArrowComponent* FrontOfDoor; public: // Called every frame @@ -33,4 +40,12 @@ public: UFUNCTION(BlueprintImplementableEvent) void DoorPrompt(); + UFUNCTION(BlueprintImplementableEvent) + void DoorOpeningAnim(); + + UFUNCTION(BlueprintImplementableEvent) + void DoorCloseAnim(); + + bool bIsDoorOpen = false; + };