Put back OnSequenceReady delegate in PursuitManager + PursuitManager General CleanUp
This commit is contained in:
@ -62,6 +62,7 @@ void UDTFluxCoreSubsystem::ProcessTrackedResponse(FDTFluxServerResponse& InRespo
|
||||
FDTFluxContestRankings Rankings;
|
||||
if (InResponse.ParseContestRanking(Rankings))
|
||||
{
|
||||
OnContestRankings.Broadcast(Rankings.ContestId, Rankings);
|
||||
ProcessContestRanking(Rankings);
|
||||
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("ContestRanking added for Contest %s"),
|
||||
*Rankings.ContestName);
|
||||
@ -77,6 +78,8 @@ void UDTFluxCoreSubsystem::ProcessTrackedResponse(FDTFluxServerResponse& InRespo
|
||||
FDTFluxStageRankings Rankings;
|
||||
if (InResponse.ParseStageRanking(Rankings))
|
||||
{
|
||||
FDTFluxStageKey StageKey(Rankings.ContestId, Rankings.StageId);
|
||||
OnStageRankings.Broadcast(StageKey, Rankings);
|
||||
ProcessStageRanking(Rankings);
|
||||
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("ContestRanking added for Stage %i of Contest %i"),
|
||||
Rankings.StageId, Rankings.ContestId);
|
||||
@ -92,6 +95,8 @@ void UDTFluxCoreSubsystem::ProcessTrackedResponse(FDTFluxServerResponse& InRespo
|
||||
FDTFluxSplitRankings Rankings;
|
||||
if (InResponse.ParseSplitRanking(Rankings))
|
||||
{
|
||||
FDTFluxSplitKey SplitKey(Rankings.ContestId, Rankings.StageId, Rankings.SplitId);
|
||||
OnSplitRankings.Broadcast(SplitKey, Rankings);
|
||||
ProcessSplitRanking(Rankings);
|
||||
UE_LOG(logDTFluxCoreSubsystem, Warning,
|
||||
TEXT("ContestRanking added for Split %i of Stage %i of Contest %i"),
|
||||
@ -275,7 +280,6 @@ void UDTFluxCoreSubsystem::ProcessSplitSensor(const FDTFluxSplitSensorInfo& Spli
|
||||
SplitSensorInfo.SplitId, SplitSensorInfo.Bib, *Participant.GetFormattedName());
|
||||
}
|
||||
|
||||
|
||||
void UDTFluxCoreSubsystem::SendRequest(const FString& Message)
|
||||
{
|
||||
if (NetworkSubsystem)
|
||||
|
||||
@ -226,7 +226,7 @@ bool UDTFluxPursuitManager::LaunchPursuitSequence()
|
||||
bool bIsFocusTruncate = false;
|
||||
|
||||
GetPursuit(FocusPursuits, NextPursuits, bIsFocusTruncate);
|
||||
FPursuitStaterData PursuitData = FPursuitStaterData(FocusPursuits, NextPursuits, MassStartTime, bIsFocusTruncate);
|
||||
CoreSubsystem->OnPursuitSequenceReady.Broadcast(PursuitData);
|
||||
FPursuitStarterData PursuitData = FPursuitStarterData(FocusPursuits, NextPursuits, MassStartTime, bIsFocusTruncate);
|
||||
OnPursuitSequenceReady.Broadcast(PursuitData);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -17,34 +17,6 @@ class UDTFluxModelAsset;
|
||||
class UDTFluxPursuitManager;
|
||||
struct FDTFluxServerResponse;
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FPursuitStaterData
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
FPursuitStaterData() = default;
|
||||
|
||||
FPursuitStaterData(const TArray<FDTFluxPursuitInfo>& InPursuitFocusNext,
|
||||
const TArray<FDTFluxPursuitInfo>& InPursuitNext, const FDateTime& InMassStartTime,
|
||||
const bool InIsFocusTruncate)
|
||||
: PursuitFocusNext(InPursuitFocusNext), PursuitNext(InPursuitNext), MassStartTime(InMassStartTime),
|
||||
bIsFocusTruncate(InIsFocusTruncate)
|
||||
{
|
||||
};
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, Category="DTFlux|Pursuit")
|
||||
TArray<FDTFluxPursuitInfo> PursuitFocusNext = TArray<FDTFluxPursuitInfo>();
|
||||
UPROPERTY(BlueprintReadOnly, Category="DTFlux|Pursuit")
|
||||
TArray<FDTFluxPursuitInfo> PursuitNext = TArray<FDTFluxPursuitInfo>();
|
||||
UPROPERTY(BlueprintReadOnly, Category="DTFlux|Pursuit")
|
||||
FDateTime MassStartTime = FDateTime::MinValue();
|
||||
UPROPERTY(BlueprintReadOnly, Category="DTFlux|Pursuit")
|
||||
bool bIsFocusTruncate = false;
|
||||
};
|
||||
|
||||
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnPursuitSequenceReady, const FPursuitStaterData, PursuitInfoSequenceItem);
|
||||
|
||||
/**
|
||||
*
|
||||
@ -55,18 +27,24 @@ class DTFLUXCORESUBSYSTEM_API UDTFluxCoreSubsystem : public UEngineSubsystem
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnSplitRankings, FDTFluxSplitRankings, SplitRankings);
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnSplitRankings, FDTFluxSplitKey, SplitKey, FDTFluxSplitRankings,
|
||||
SplitRankings);
|
||||
|
||||
UPROPERTY(BlueprintAssignable, Category="DTFlux|Core Subsystem")
|
||||
FOnSplitRankings OnSplitRankings;
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnStageRankings, FDTFluxStageRankings, StageRankings);
|
||||
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnStageRankings, FDTFluxStageKey, StageKey, FDTFluxStageRankings,
|
||||
StageRankings);
|
||||
|
||||
UPROPERTY(BlueprintAssignable, Category="DTFlux|Core Subsystem")
|
||||
FOnStageRankings OnStageRankings;
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnContestRankings, FDTFluxContestRankings, ContestRankings);
|
||||
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnContestRankings, const int, ContestId, FDTFluxContestRankings,
|
||||
ContestRankings);
|
||||
|
||||
UPROPERTY(BlueprintAssignable, Category="DTFlux|Core Subsystem")
|
||||
FOnContestRankings OnContestRankings;
|
||||
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnTeamList);
|
||||
|
||||
UPROPERTY(BlueprintAssignable, Category="DTFlux|Core Subsystem")
|
||||
@ -82,8 +60,6 @@ public:
|
||||
UPROPERTY(BlueprintAssignable, Category="DTFlux|Core Subsystem")
|
||||
FOnRequestedStageRankings OnRequestedStageRankings;
|
||||
|
||||
UPROPERTY(BlueprintAssignable, Category="DTFlux|Core Subsystem")
|
||||
FOnPursuitSequenceReady OnPursuitSequenceReady;
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category="DTFlux|Core Subsystem")
|
||||
bool GetContestRankings(const int ContestId, FDTFluxContestRankings& OutContestRankings);
|
||||
|
||||
@ -10,44 +10,31 @@
|
||||
|
||||
class UDTFluxCoreSubsystem;
|
||||
|
||||
USTRUCT()
|
||||
struct FRequestData
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FPursuitStarterData
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY()
|
||||
TArray<FGuid> RequestIds;
|
||||
UPROPERTY()
|
||||
TMap<FGuid, FDTFluxStageRankings> StageRankings;
|
||||
UPROPERTY()
|
||||
int ContestId;
|
||||
public:
|
||||
FPursuitStarterData() = default;
|
||||
|
||||
UPROPERTY()
|
||||
bool bIsReady = false;
|
||||
|
||||
|
||||
FRequestData() = default;
|
||||
|
||||
FRequestData(const TArray<FGuid>& InRequestIds, const TMap<FGuid, FDTFluxStageRankings>& InStageRankings)
|
||||
: RequestIds(InRequestIds), StageRankings(InStageRankings), ContestId(-1)
|
||||
FPursuitStarterData(const TArray<FDTFluxPursuitInfo>& InPursuitFocusNext,
|
||||
const TArray<FDTFluxPursuitInfo>& InPursuitNext, const FDateTime& InMassStartTime,
|
||||
const bool InIsFocusTruncate)
|
||||
: PursuitFocusNext(InPursuitFocusNext), PursuitNext(InPursuitNext), MassStartTime(InMassStartTime),
|
||||
bIsFocusTruncate(InIsFocusTruncate)
|
||||
{
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @param RequestId
|
||||
* @param InRankings
|
||||
* @return True if all needed requests have responses
|
||||
*/
|
||||
bool IsWaitingFor(const FGuid& RequestId, const FDTFluxStageRankings& InRankings)
|
||||
{
|
||||
if (!StageRankings.Contains(RequestId))
|
||||
{
|
||||
StageRankings.Add(RequestId, InRankings);
|
||||
}
|
||||
bIsReady = StageRankings.Num() <= RequestIds.Num();
|
||||
return bIsReady;
|
||||
}
|
||||
UPROPERTY(BlueprintReadOnly, Category="DTFlux|Pursuit")
|
||||
TArray<FDTFluxPursuitInfo> PursuitFocusNext = TArray<FDTFluxPursuitInfo>();
|
||||
UPROPERTY(BlueprintReadOnly, Category="DTFlux|Pursuit")
|
||||
TArray<FDTFluxPursuitInfo> PursuitNext = TArray<FDTFluxPursuitInfo>();
|
||||
UPROPERTY(BlueprintReadOnly, Category="DTFlux|Pursuit")
|
||||
FDateTime MassStartTime = FDateTime::MinValue();
|
||||
UPROPERTY(BlueprintReadOnly, Category="DTFlux|Pursuit")
|
||||
bool bIsFocusTruncate = false;
|
||||
};
|
||||
|
||||
USTRUCT()
|
||||
@ -55,6 +42,7 @@ struct FDTFluxPursuitGroup
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
|
||||
UPROPERTY()
|
||||
TArray<FDTFluxPursuitInfo> PursuitGroup = TArray<FDTFluxPursuitInfo>();
|
||||
UPROPERTY()
|
||||
@ -65,7 +53,6 @@ struct FDTFluxPursuitGroup
|
||||
bool bIsFocus = false;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@ -78,14 +65,18 @@ public:
|
||||
UDTFluxPursuitManager(const FObjectInitializer& ObjectInitializer);
|
||||
|
||||
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnPursuitSequenceReady, const FPursuitStarterData, PursuitData);
|
||||
|
||||
UPROPERTY(BlueprintAssignable, Category="DTFlux|Core Subsystem")
|
||||
FOnPursuitSequenceReady OnPursuitSequenceReady;
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, VisibleAnywhere)
|
||||
bool bFocusIsTruncate = false;
|
||||
|
||||
UPROPERTY()
|
||||
int PursuitMaxSimultaneousPursuit = 7;
|
||||
|
||||
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="DTFlux|Pursuit",
|
||||
meta=(ClampMin="1", ClampMax="60", UIMin="0", UIMax="60"))
|
||||
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="DTFlux|Pursuit")
|
||||
int MassStartDelay = 10;
|
||||
|
||||
UPROPERTY()
|
||||
|
||||
Reference in New Issue
Block a user