You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
awesome_game/Source/TurnBasedTutorial/MyGameMode.cpp

41 lines
1.2 KiB

// Fill out your copyright notice in the Description page of Project Settings.
#include "MyGameMode.h"
#include "Kismet/GameplayStatics.h"
AMyGameMode::AMyGameMode() : Super() {
UE_LOG(LogTemp, Warning, TEXT("GameMode Constructor"));
GameStateClass = AMyGameState::StaticClass();
PlayerControllerClass = AMyPlayerController::StaticClass();
DefaultPawnClass = AMyPawn::StaticClass();
}
AActor *AMyGameMode::ChoosePlayerStart(AController *Player) {
InitializeSpawnPointsIfNeeded();
return *SpawnPoints.Find(GetNumPlayers());
}
void AMyGameMode::InitializeSpawnPointsIfNeeded() {
if (SpawnPoints.Num() != 0) {
return;
}
for (TActorIterator <AMyPlayerStart> PlayerStartIterator(GetWorld()); PlayerStartIterator; ++PlayerStartIterator) {
SpawnPoints[PlayerStartIterator->GetPlayerIndex()] = *PlayerStartIterator;
}
}
void AMyGameMode::BeginPlay() {
Super::BeginPlay();
}
void AMyGameMode::StartGame() {
GetPlayerController()->StartTurn();
}
AMyPlayerController *AMyGameMode::GetPlayerController() {
return dynamic_cast<AMyPlayerController *>(
UGameplayStatics::GetPlayerController(GetWorld(), 0)
);
}