Redesign
This commit is contained in:
@@ -11,16 +11,24 @@ ASpawnManager::ASpawnManager()
|
||||
|
||||
}
|
||||
|
||||
void ASpawnManager::GenerateBoard() {
|
||||
int32 ClassesCount = SpawnableClasses.Num();
|
||||
void ASpawnManager::GenerateBoard(TSubclassOf<ALevelTemplate> &Template) {
|
||||
FVector ActorLocation = this->GetActorLocation();
|
||||
CurrentLevel = GetWorld()->SpawnActor<ALevelTemplate>(Template, this->GetActorTransform());
|
||||
UPaperTileMapComponent* Tilemap = CurrentLevel->Template;
|
||||
|
||||
TArray<TSubclassOf<ABuildingBlock>> Classes;
|
||||
|
||||
for (int32 i = 0; i < BlocksY; i++) {
|
||||
for (int32 o = 0; o < BlocksX; o++) {
|
||||
int32 RandomIndex = FMath::RandRange(0, ClassesCount - 1);
|
||||
// Make transform
|
||||
FTransform SpawnTransform;
|
||||
SpawnTransform.SetLocation(FVector((ActorLocation.X - (Distance * BlocksX / 2) + (o * Distance)), (ActorLocation.Y - (Distance * (BlocksY / 2)) + (i * Distance)), ActorLocation.Z));
|
||||
GetWorld()->SpawnActor<ABuildingBlock>(SpawnableClasses[RandomIndex], SpawnTransform);
|
||||
|
||||
// Spawn block
|
||||
int32 TileId = Tilemap->GetTile(i, o, 0).GetTileIndex();
|
||||
TSubclassOf<ABuildingBlock> TileClass = *BlockTemplates.Find(TileId);
|
||||
ABuildingBlock* ThisBlock = GetWorld()->SpawnActor<ABuildingBlock>(TileClass, SpawnTransform);
|
||||
ThisBlock->Index = (10 * i) + o;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user