11#include "Components/BoxComponent.h"
12#include "Kismet/GameplayStatics.h"
13#include "Net/UnrealNetwork.h"
15#define TARGET_LOCATION FVector(5604.438473,-5691.762227,-3648.742048)
21 PrimaryActorTick.bCanEverTick =
true;
24 FoodCollision = CreateDefaultSubobject<UBoxComponent>(TEXT(
"FoodCollision"));
27 SubmitCollision = CreateDefaultSubobject<UBoxComponent>(TEXT(
"SubmitCollision"));
41 TArray<AActor*> CityNames;
42 UGameplayStatics::GetAllActorsOfClass(GetWorld(), ACityName::StaticClass(), CityNames);
43 for (AActor* Actor : CityNames)
45 if (
ACityName* CN = Cast<ACityName>(Actor))
56 Super::Tick(DeltaTime);
60 UPrimitiveComponent* OtherComp, int32 OtherBodyIndex,
bool bFromSweep,
const FHitResult& SweepResult)
62 UE_LOG(LogTemp, Warning, TEXT(
"[OrderKiosk::BeginFoodOverlap] IsOnceStopped: %d"),
IsOnceStopped);
66 if (
AFood* Temp = Cast<AFood>(OtherActor))
71 UE_LOG(LogTemp, Warning, TEXT(
"[OrderKiosk::BeginFoodOverlap] Food detected. InAnswerType: %d, City=%s, Food=%s"),
80 UE_LOG(LogTemp, Warning, TEXT(
"[OrderKiosk::BeginFoodOverlap] City already set - Setting timer for teleport"));
82 FTimerHandle TimerHandle;
83 GetWorldTimerManager().SetTimer(TimerHandle, FTimerDelegate::CreateLambda([
this]
85 UE_LOG(LogTemp, Warning, TEXT(
"[OrderKiosk] Timer triggered - Moving FoodContainer (from BeginFoodOverlap)"));
95 UE_LOG(LogTemp, Warning, TEXT(
"[OrderKiosk::BeginFoodOverlap] Stopping conveyor"));
101 CB->ChangeConveyorSpeed(0.f);
108 UPrimitiveComponent* OtherComp, int32 OtherBodyIndex,
bool bFromSweep,
const FHitResult& SweepResult)
113 UE_LOG(LogTemp, Warning, TEXT(
"[OrderKiosk::BeginSubmitOverlap] ListenAnswer detected. AnswerType: %d, Index: %d"),
127 UE_LOG(LogTemp, Warning, TEXT(
"[OrderKiosk::BeginSubmitOverlap] AnswerType matched. InAnswerType: %d"),
InAnswerType);
139 UE_LOG(LogTemp, Warning, TEXT(
"[OrderKiosk::BeginSubmitOverlap] City case - Setting timer for teleport"));
145 FTimerHandle TimerHandle;
146 GetWorldTimerManager().SetTimer(TimerHandle, FTimerDelegate::CreateLambda([
this]
148 UE_LOG(LogTemp, Warning, TEXT(
"[OrderKiosk] Timer triggered - Moving FoodContainer"));
160 CB->ChangeConveyorSpeed(200.f);
172 UE_LOG(LogTemp, Warning, TEXT(
"[OrderKiosk::BeginSubmitOverlap] OtherActor is not a ListenAnswer"));
181void AOrderKiosk::Server_MoveFoodContainer_Implementation(AActor* ActorToMove)
183 ActorToMove->SetActorLocation(
TeleportOut->GetActorLocation());
186void AOrderKiosk::Server_DestroyListenAnswer_Implementation(AActor* ActorToDestroy)
188 ActorToDestroy->Destroy();
void UpdateFoodWidget()
Widget에 음식 이름 업데이트
void SetFoodMesh(FWordInfo InWord, UStaticMesh *InMesh)
FFoodCapsuleData CurrentFoodData
void SetCityName(FWordInfo InWord)
class UBoxComponent * SubmitCollision
class UBoxComponent * FoodCollision
class ACityName * CityDisplay
virtual void Tick(float DeltaTime) override
class AFood * CurrentFoodContainer
class ACityName * FoodDisplay
void BeginFoodOverlap(UPrimitiveComponent *OverlappedComponent, AActor *OtherActor, UPrimitiveComponent *OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult &SweepResult)
void Server_DestroyListenAnswer(AActor *ActorToDestroy)
virtual void SetCompassMarkerInto(ECompassMarkerType InMarkerType) override
virtual void BeginPlay() override
void BeginSubmitOverlap(UPrimitiveComponent *OverlappedComponent, AActor *OtherActor, UPrimitiveComponent *OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult &SweepResult)
void Server_MoveFoodContainer(AActor *ActorToMove)
TObjectPtr< class ATeleportOut > TeleportOut
TArray< AActor * > ConveyorsToControl
ECompassMarkerType MarkerType
FWordInfo word1
시나리오 단어 정보