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