Work in the path generation and added the models for the roads

This commit is contained in:
JKuijperM 2022-12-29 19:17:04 +01:00
parent 1bad8e09eb
commit 02723795c3
25 changed files with 257 additions and 2 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:96f7e82c945dfc3cff65055bbb2c536680775ea3efe9f3fd79e5f51899530725 oid sha256:428d9ef2344016cdbd889195ca121a99f3eae544a690837d2ef3a1418c0f4725
size 19642 size 20641

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dc4a19c1ae87566ebbdb231db20b810988e9022fd62025b1932346aed0c81174
size 22366

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a0ce635ee19dc02c30fa73fe2dee1bcfe605b6e6413bf24b4230502154192ad1
size 2400

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5b3317be7c9d4042271396c2952f0717b70fcfbf100aa15ff2d131554ae0de06
size 30566

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9bdca1d457f6265a170d43d32fbf626d02388f133300955d886598dae2af2d2f
size 7610

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2ab65bae67ecad95ca916659ff245eed062c6d6903ab984e315b5fad26bc211a
size 11041

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:eac930395c1f093e08d773799c061f18e5d290085cf2ff3abdfd17720b8b2d7e
size 8258

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d14956114b5db06fe2f34d8718d595f23c2e546462d04afcba3e2d0bb6bc99a0
size 12364

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:96a6d368a11976c3d0d0b299b7d83318c4268b2efee9d1c773d7cc1282e9c379
size 14692

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b4e620fed07f31f7c8b4d0fb8dd2ed2573c0eeb3fafe04db388fee2392bf4cad
size 19728

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3ba7b6f0e3244cbd1108ffefd5df4fd7ff2bcc10201d8c1fd8a83493d5ef9c10
size 18548

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f9bb1320ab856150b03d45f1fb73c5066d724f6746b76c363bf3261d705ce3ec
size 18317

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:76fd2733d412935aa3da6532e642fc1a7c2a5db097449639c84ee2f9a1488e43
size 18403

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6881707c1ccd677159f8b7b8aa7b01ce610dcc4e68a3d70321dc0d02b1a315bb
size 14929

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f523b5fa6dd23cae06ed835e31b5bdd6aec1143ef710dde216c6fb9ee8861813
size 17729

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:46d64a64b6685028f5ab93687fe901f70585fe2bbcd0efc8428ba8ab9ff6abc6
size 21266

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f57fad7e6e6f1a5594f7393ef8067777577ef92cf99b6de474d59c3369fb1800
size 8685

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:463c8794635a53e2d0affa2ac813ef27423bfc2a0ed24bb39e9ee7c566c0ff64
size 13630

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7d186be31354901a5a32f2c587d609b6bc3335c61775eac6d826b281ddea9338
size 9244

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d57379ba020776971b4b5e4604de7597ded80ff2bb5814f7e5d4602222b084de
size 13599

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:77d71b8e7da2bde181549beabfe6e096f4ac34fa52abdac3d31d6449106d9ff4
size 18645

View File

@ -0,0 +1,41 @@
// Copyright Jorge Kuijper. All Rights Reserved.
#include "PathGenerator.h"
// Sets default values
APathGenerator::APathGenerator()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
}
// Called when the game starts or when spawned
void APathGenerator::BeginPlay()
{
Super::BeginPlay();
for (int i = 0; i < 10; i++)
{
AddFloorTile();
}
}
// Called every frame
void APathGenerator::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
void APathGenerator::AddFloorTile()
{
if (Tile != nullptr)
{
ATile* GeneratedTile = GetWorld()->SpawnActor<ATile>(Tile, tNextSpawnPoint);
tNextSpawnPoint = GeneratedTile->GetAttachTransform();
}
}

View File

@ -0,0 +1,34 @@
// Copyright Jorge Kuijper. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "Tile.h"
#include "PathGenerator.generated.h"
UCLASS()
class ENDLESSZOMBIE_API APathGenerator : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
APathGenerator();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
UPROPERTY(EditAnywhere, Category = "Tiles")
TSubclassOf<class ATile> Tile;
UFUNCTION(Category = "Tiles")
void AddFloorTile();
FTransform tNextSpawnPoint = FTransform(FVector(90.0f, 1110.0f, 0.0f));
};

View File

@ -0,0 +1,78 @@
// Copyright Jorge Kuijper. All Rights Reserved.
#include "Tile.h"
#include "ZombieCharacter.h"
#include "PathGenerator.h"
#include "Kismet/GameplayStatics.h"
#include "Kismet/KismetSystemLibrary.h"
// Sets default values
ATile::ATile()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
// Add scene component
SceneComponent = CreateDefaultSubobject<USceneComponent>(TEXT("Scene"));
SceneComponent->SetupAttachment(RootComponent);
// Add arrow component like attach point
ArrowComponent = CreateDefaultSubobject<UArrowComponent>(TEXT("AttachPoint"));
ArrowComponent->SetupAttachment(SceneComponent);
// Add box collider
EndTrigger = CreateDefaultSubobject<UBoxComponent>(TEXT("EndPoint"));
EndTrigger->SetupAttachment(SceneComponent);
EndTrigger->SetCollisionProfileName(TEXT("OverlapOnlyPawn"));
}
// Called when the game starts or when spawned
void ATile::BeginPlay()
{
Super::BeginPlay();
EndTrigger->OnComponentBeginOverlap.AddDynamic(this, &ATile::OnBeginOverlap);
}
// Called every frame
void ATile::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
FTransform ATile::GetAttachTransform()
{
FTransform tAttachPoint;
tAttachPoint = ArrowComponent->GetComponentTransform();
return tAttachPoint;
}
void ATile::OnBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult)
{
AZombieCharacter* ZombieCharacter = Cast<AZombieCharacter>(OtherActor);
if (ZombieCharacter != nullptr)
{
TArray<AActor*> ActorsToFind;
UGameplayStatics::GetAllActorsOfClass(GetWorld(), APathGenerator::StaticClass(), ActorsToFind);
if (ActorsToFind.Num() > 0)
{
APathGenerator* FoundPathGenerator = Cast<APathGenerator>(ActorsToFind[0]);
FoundPathGenerator->AddFloorTile();
FTimerHandle TimerHandle;
//GetWorldTimerManager().SetTimer(TimerHandle, this, &ATimeKollapsed_PlayerController::AddWidgetToViewPort, GameOverDelay, false);
GetWorldTimerManager().SetTimer(TimerHandle, this, &ATile::test, 2.f, false);
}
}
}
void ATile::DestroyTile()
{
this->Destroy();
}

View File

@ -0,0 +1,42 @@
// Copyright Jorge Kuijper. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "Components/ArrowComponent.h"
#include "Components/BoxComponent.h"
#include "Tile.generated.h"
UCLASS()
class ENDLESSZOMBIE_API ATile : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
ATile();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
USceneComponent* SceneComponent;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
UArrowComponent* ArrowComponent;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
UBoxComponent* EndTrigger;
UFUNCTION(BlueprintCallable, Category = "AttachedPoint")
FTransform GetAttachTransform();
UFUNCTION()
virtual void OnBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult);
private:
void DestroyTile();
};