Added Datetime sorting functionality and Metrics test on GetPursit
This commit is contained in:
@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
#include "DTFluxCoreSubsystem.h"
|
#include "DTFluxCoreSubsystem.h"
|
||||||
#include "DTFluxCoreSubsystemModule.h"
|
#include "DTFluxCoreSubsystemModule.h"
|
||||||
|
#include "Dataflow/DataflowContextCache.h"
|
||||||
|
|
||||||
UDTFluxPursuitManager::UDTFluxPursuitManager(const FObjectInitializer& ObjectInitializer):
|
UDTFluxPursuitManager::UDTFluxPursuitManager(const FObjectInitializer& ObjectInitializer):
|
||||||
Super(ObjectInitializer)
|
Super(ObjectInitializer)
|
||||||
@ -69,6 +70,8 @@ void UDTFluxPursuitManager::GetPursuit(TArray<FDTFluxPursuitInfo>& OutPursuitFoc
|
|||||||
TArray<FDTFluxPursuitInfo>& OutPursuitNext, bool& BIsFocusTruncate,
|
TArray<FDTFluxPursuitInfo>& OutPursuitNext, bool& BIsFocusTruncate,
|
||||||
const int MaxSimultaneousPursuit)
|
const int MaxSimultaneousPursuit)
|
||||||
{
|
{
|
||||||
|
FDateTime CurrentTime = FDateTime::UtcNow();
|
||||||
|
|
||||||
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("=== GetPursuit CALLED ==="));
|
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("=== GetPursuit CALLED ==="));
|
||||||
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("MaxSimultaneousPursuit: %d"), MaxSimultaneousPursuit);
|
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("MaxSimultaneousPursuit: %d"), MaxSimultaneousPursuit);
|
||||||
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("Available groups: %d"), GroupedPursuit.Num());
|
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("Available groups: %d"), GroupedPursuit.Num());
|
||||||
@ -83,6 +86,7 @@ void UDTFluxPursuitManager::GetPursuit(TArray<FDTFluxPursuitInfo>& OutPursuitFoc
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (bIsSequenceDone || GroupedPursuit.IsEmpty())
|
if (bIsSequenceDone || GroupedPursuit.IsEmpty())
|
||||||
{
|
{
|
||||||
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("No groups available or sequence completed"));
|
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("No groups available or sequence completed"));
|
||||||
@ -92,12 +96,30 @@ void UDTFluxPursuitManager::GetPursuit(TArray<FDTFluxPursuitInfo>& OutPursuitFoc
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32 RemovedGroupsCount = 0;
|
||||||
|
for (int32 i = GroupedPursuit.Num() - 1; i >= 0; i--) // Parcours inverse pour éviter les problèmes d'index
|
||||||
|
{
|
||||||
|
const FDTFluxPursuitGroup& Group = GroupedPursuit[i];
|
||||||
|
|
||||||
|
// Vérifier si le StartTime du groupe est déjà passé
|
||||||
|
if (Group.StartTimeGlobal < CurrentTime)
|
||||||
|
{
|
||||||
|
UE_LOG(logDTFluxCoreSubsystem, Warning,
|
||||||
|
TEXT("Removing expired group: StartTime=%s (Current=%s), Participants=%d"),
|
||||||
|
*Group.StartTimeGlobal.ToString(),
|
||||||
|
*CurrentTime.ToString(),
|
||||||
|
Group.PursuitGroup.Num());
|
||||||
|
|
||||||
|
GroupedPursuit.RemoveAt(i);
|
||||||
|
RemovedGroupsCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
OutPursuitFocusNext.Reset();
|
OutPursuitFocusNext.Reset();
|
||||||
OutPursuitNext.Reset();
|
OutPursuitNext.Reset();
|
||||||
|
|
||||||
// === ÉTAPE 1: FOCUS = PREMIER GROUPE (et le supprimer) ===
|
FDTFluxPursuitGroup FocusGroup = GroupedPursuit[0];
|
||||||
FDTFluxPursuitGroup FocusGroup = GroupedPursuit[0]; // Copie du premier groupe
|
GroupedPursuit.RemoveAt(0);
|
||||||
GroupedPursuit.RemoveAt(0); // ✅ SUPPRIMER le premier groupe
|
|
||||||
|
|
||||||
SetPursuitInfoIsMassStart(FocusGroup);
|
SetPursuitInfoIsMassStart(FocusGroup);
|
||||||
OutPursuitFocusNext = FocusGroup.PursuitGroup;
|
OutPursuitFocusNext = FocusGroup.PursuitGroup;
|
||||||
@ -176,6 +198,10 @@ void UDTFluxPursuitManager::GetPursuit(TArray<FDTFluxPursuitInfo>& OutPursuitFoc
|
|||||||
bIsSequenceDone = true;
|
bIsSequenceDone = true;
|
||||||
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("Pursuit sequence will be completed after this round"));
|
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("Pursuit sequence will be completed after this round"));
|
||||||
}
|
}
|
||||||
|
FTimespan Duration = FDateTime::UtcNow() - CurrentTime;
|
||||||
|
|
||||||
|
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("Metrics Time Out: %d fraction seconds"),
|
||||||
|
Duration.GetDuration().GetFractionMicro());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UDTFluxPursuitManager::InitSubSystems()
|
bool UDTFluxPursuitManager::InitSubSystems()
|
||||||
|
|||||||
Reference in New Issue
Block a user