Compare commits
4 Commits
main
...
7ce81040e9
| Author | SHA1 | Date | |
|---|---|---|---|
| 7ce81040e9 | |||
| 77c9d42f22 | |||
| f7f70446d8 | |||
| 8e42f9565e |
@ -366,3 +366,12 @@ void UDTFluxCoreSubsystem::LaunchPursuitSequenceFor(const TArray<int> ContestIds
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FOnPursuitSequenceReady& UDTFluxCoreSubsystem::InitPursuit(const TArray<FDTFluxContest> Contests)
|
||||
{
|
||||
if (PursuitManager)
|
||||
{
|
||||
PursuitManager->LaunchPursuitSequenceFor(Contests);
|
||||
}
|
||||
return PursuitManager->OnPursuitSequenceReady;
|
||||
}
|
||||
|
||||
@ -18,7 +18,7 @@ class UDTFluxPursuitManager;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
UCLASS(Blueprintable, BlueprintType)
|
||||
class DTFLUXCORESUBSYSTEM_API UDTFluxCoreSubsystem : public UEngineSubsystem
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@ -102,7 +102,7 @@ public:
|
||||
UPROPERTY()
|
||||
int CurrentIndex = -1;
|
||||
|
||||
UPROPERTY(BlueprintCallable, Category="DTFlux|Pursuit")
|
||||
UPROPERTY(BlueprintAssignable, Category="DTFlux|Pursuit")
|
||||
FOnPursuitSequenceReady OnPursuitSequenceReady;
|
||||
|
||||
|
||||
|
||||
@ -104,7 +104,6 @@ FGuid UDTFluxNetworkSubsystem::SendTrackedRequestWithCallback(
|
||||
PendingErrorCallbacks.Add(RequestId, OnError.GetValue());
|
||||
}
|
||||
}
|
||||
|
||||
return RequestId;
|
||||
}
|
||||
|
||||
@ -592,8 +591,6 @@ void UDTFluxNetworkSubsystem::Parse(FDTFluxServerResponse& Response)
|
||||
|
||||
void UDTFluxNetworkSubsystem::OnWebSocketMessageEvent_Subsystem(const FString& MessageString)
|
||||
{
|
||||
// UE_LOG(logDTFluxNetwork, Warning, TEXT("Client %s :\nMessage Received : %s"), *WsClient->GetAddress(), *MessageString);
|
||||
//Do Something With the message
|
||||
EDTFluxResponseStatus ResponseStatus;
|
||||
FDTFluxServerResponse Response(MessageString, ResponseStatus);
|
||||
if (!TryMatchResponseToQueuedRequest(Response))
|
||||
@ -680,6 +677,7 @@ bool UDTFluxNetworkSubsystem::TryMatchResponseToQueuedRequest(FDTFluxServerRespo
|
||||
TEXT("Matched response to queued request: Type=%s, Contest=%d, Stage=%d, Split=%d"),
|
||||
*UEnum::GetValueAsString(Response.GetResponseType()), Response.ContestID, Response.StageID,
|
||||
Response.SplitID);
|
||||
|
||||
if (PendingCallbacks.Contains(FoundRequestId))
|
||||
{
|
||||
FOnDTFluxTrackedRequestResponse* SuccessCallback = PendingCallbacks.Find(FoundRequestId);
|
||||
@ -689,7 +687,6 @@ bool UDTFluxNetworkSubsystem::TryMatchResponseToQueuedRequest(FDTFluxServerRespo
|
||||
}
|
||||
return QueueManager->MarkRequestAsResponded(FoundRequestId);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@ -128,14 +128,14 @@ public:
|
||||
// === REQUÊTES AVEC QUEUE ET TRACKING ===
|
||||
UFUNCTION(BlueprintCallable, Category="DTFlux|Tracked Requests")
|
||||
FGuid SendTrackedRequest(EDTFluxApiDataType RequestType, int32 ContestId = -1, int32 StageId = -1,
|
||||
int32 SplitId = -1, float TimeoutSeconds = 30.0f);
|
||||
int32 SplitId = -1, float TimeoutSeconds = 5.0f);
|
||||
|
||||
FGuid SendTrackedRequestWithCallback(EDTFluxApiDataType RequestType, int32 ContestId, int32 StageId, int32 SplitId,
|
||||
FOnDTFluxTrackedRequestResponse OnCompleted,
|
||||
FOnDTFluxTrackedRequestTimeout OnTimeout,
|
||||
TOptional<FOnDTFluxRequestResponseError> OnError = TOptional<
|
||||
FOnDTFluxRequestResponseError>(),
|
||||
float TimeoutSeconds = 30.0f);
|
||||
float TimeoutSeconds = 5.0f);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category="DTFlux|Tracked Requests")
|
||||
bool GetTrackedRequest(const FGuid& RequestId, FDTFluxQueuedRequest& OutRequest) const;
|
||||
@ -192,28 +192,30 @@ private:
|
||||
// === MÉTHODES DE CONFIGURATION ===
|
||||
UFUNCTION()
|
||||
void WsSettingsChanged(const FDTFluxWsSettings& NewWsSettings);
|
||||
void ReconnectWs(const FName WsClientId);
|
||||
|
||||
UFUNCTION()
|
||||
void HttpSettingsChanged(const FDTFluxHttpSettings& NewHttpSettings);
|
||||
void ReconnectWs(const FName WsClientId);
|
||||
void ReconnectHttp(const FName WsClientId);
|
||||
|
||||
// === GESTION DES ÉVÉNEMENTS HTTP ===
|
||||
void RegisterHttpEvents();
|
||||
void UnregisterHttpEvents();
|
||||
|
||||
// === GESTION DES ÉVÉNEMENTS WEBSOCKET ===
|
||||
void RegisterWebSocketEvents();
|
||||
void UnregisterWebSocketEvents();
|
||||
|
||||
void OnWebSocketConnected_Subsystem();
|
||||
void OnWebSocketConnectionError_Subsystem(const FString& Error);
|
||||
void OnWebSocketClosedEvent_Subsystem(int32 StatusCode, const FString& Reason, bool bWasClean);
|
||||
|
||||
void OnWebSocketMessageEvent_Subsystem(const FString& MessageString);
|
||||
void OnWebSocketMessageSentEvent_Subsystem(const FString& MessageSent);
|
||||
FDelegateHandle OnWsConnectedEventDelegateHandle;
|
||||
FDelegateHandle OnWsConnectionErrorEventDelegateHandle;
|
||||
FDelegateHandle OnWsClosedEventDelegateHandle;
|
||||
FDelegateHandle OnWsMessageEventDelegateHandle;
|
||||
FDelegateHandle OnWsMessageSentEventDelegateHandle;
|
||||
|
||||
// === GESTION DES ÉVÉNEMENTS HTTP ===
|
||||
void RegisterHttpEvents();
|
||||
void UnregisterHttpEvents();
|
||||
|
||||
// === PARSING DES RÉPONSES ===
|
||||
void ParseTeamListResponse(FDTFluxServerResponse& ServerResponse);
|
||||
@ -224,10 +226,9 @@ private:
|
||||
void ParseStatusUpdateResponse(FDTFluxServerResponse& Response);
|
||||
void ParseSplitSensorResponse(FDTFluxServerResponse& Response);
|
||||
EDTFluxResponseStatus ProcessPushMessage(FDTFluxServerResponse& Response);
|
||||
|
||||
void Parse(FDTFluxServerResponse& Response);
|
||||
void OnWebSocketMessageEvent_Subsystem(const FString& MessageString);
|
||||
void OnWebSocketMessageSentEvent_Subsystem(const FString& MessageSent);
|
||||
|
||||
|
||||
bool CleanRequestCallbacks(const FGuid& RequestId);
|
||||
|
||||
// === GESTION DES REQUÊTES TRACKÉES ===
|
||||
|
||||
Reference in New Issue
Block a user