61 lines
1.7 KiB
C++
61 lines
1.7 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "LyraTeamCheats.h"
|
|
#include "LyraTeamSubsystem.h"
|
|
#include "Engine/World.h"
|
|
#include "GameFramework/PlayerController.h"
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// ULyraTeamCheats
|
|
|
|
void ULyraTeamCheats::CycleTeam()
|
|
{
|
|
if (ULyraTeamSubsystem* TeamSubsystem = UWorld::GetSubsystem<ULyraTeamSubsystem>(GetWorld()))
|
|
{
|
|
APlayerController* PC = GetPlayerController();
|
|
|
|
const int32 OldTeamId = TeamSubsystem->FindTeamFromObject(PC);
|
|
const TArray<int32> TeamIds = TeamSubsystem->GetTeamIDs();
|
|
|
|
if (TeamIds.Num())
|
|
{
|
|
const int32 IndexOfOldTeam = TeamIds.Find(OldTeamId);
|
|
const int32 IndexToUse = (IndexOfOldTeam + 1) % TeamIds.Num();
|
|
|
|
const int32 NewTeamId = TeamIds[IndexToUse];
|
|
|
|
TeamSubsystem->ChangeTeamForActor(PC, NewTeamId);
|
|
}
|
|
|
|
const int32 ActualNewTeamId = TeamSubsystem->FindTeamFromObject(PC);
|
|
|
|
UE_LOG(LogConsoleResponse, Log, TEXT("Changed to team %d (from team %d)"), ActualNewTeamId, OldTeamId);
|
|
}
|
|
}
|
|
|
|
void ULyraTeamCheats::SetTeam(int32 TeamID)
|
|
{
|
|
if (ULyraTeamSubsystem* TeamSubsystem = UWorld::GetSubsystem<ULyraTeamSubsystem>(GetWorld()))
|
|
{
|
|
if (TeamSubsystem->DoesTeamExist(TeamID))
|
|
{
|
|
APlayerController* PC = GetPlayerController();
|
|
|
|
TeamSubsystem->ChangeTeamForActor(PC, TeamID);
|
|
}
|
|
}
|
|
}
|
|
|
|
void ULyraTeamCheats::ListTeams()
|
|
{
|
|
if (ULyraTeamSubsystem* TeamSubsystem = UWorld::GetSubsystem<ULyraTeamSubsystem>(GetWorld()))
|
|
{
|
|
const TArray<int32> TeamIDs = TeamSubsystem->GetTeamIDs();
|
|
|
|
for (const int32 TeamID : TeamIDs)
|
|
{
|
|
UE_LOG(LogConsoleResponse, Log, TEXT("Team ID %d"), TeamID);
|
|
}
|
|
}
|
|
}
|