mirror of
https://github.com/mordentral/AdvancedSessionsPlugin.git
synced 2025-10-24 08:54:16 +00:00
FirstCommitdf
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
|
||||
#pragma once
|
||||
|
||||
#include "OnlineSessionInterface.h"
|
||||
#include "OnlineSubSystemHeader.h"
|
||||
#include "FindSessionsCallbackProxy.h"
|
||||
#include "FindSessionsCallbackProxyAdvanced.generated.h"
|
||||
|
||||
UCLASS(MinimalAPI)
|
||||
class UFindSessionsCallbackProxyAdvanced : public UOnlineBlueprintCallProxyBase
|
||||
{
|
||||
GENERATED_UCLASS_BODY()
|
||||
|
||||
// Called when there is a successful query
|
||||
UPROPERTY(BlueprintAssignable)
|
||||
FBlueprintFindSessionsResultDelegate OnSuccess;
|
||||
|
||||
// Called when there is an unsuccessful query
|
||||
UPROPERTY(BlueprintAssignable)
|
||||
FBlueprintFindSessionsResultDelegate OnFailure;
|
||||
|
||||
// Searches for advertised sessions with the default online subsystem and includes an array of filters
|
||||
UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true", WorldContext = "WorldContextObject", AutoCreateRefTerm="Filters"), Category = "Online|AdvancedSessions")
|
||||
static UFindSessionsCallbackProxyAdvanced* FindSessionsAdvanced(UObject* WorldContextObject, class APlayerController* PlayerController, int32 MaxResults, bool bUseLAN, const TArray<FSessionsSearchSetting> &Filters);
|
||||
|
||||
static bool CompareVariants(const FVariantData &A, const FVariantData &B, EOnlineComparisonOpRedux::Type Comparator);
|
||||
|
||||
// Filters an array of session results by the given search parameters, returns a new array with the filtered results
|
||||
UFUNCTION(BluePrintCallable, meta = (Category = "Online|AdvancedSessions"))
|
||||
static void FilterSessionResults(const TArray<FBlueprintSessionResult> &SessionResults, const TArray<FSessionsSearchSetting> &Filters, TArray<FBlueprintSessionResult> &FilteredResults);
|
||||
|
||||
// Removed, the default built in versions work fine in the normal FindSessionsCallbackProxy
|
||||
/*UFUNCTION(BlueprintPure, Category = "Online|Session")
|
||||
static int32 GetPingInMs(const FBlueprintSessionResult& Result);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "Online|Session")
|
||||
static FString GetServerName(const FBlueprintSessionResult& Result);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "Online|Session")
|
||||
static int32 GetCurrentPlayers(const FBlueprintSessionResult& Result);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "Online|Session")
|
||||
static int32 GetMaxPlayers(const FBlueprintSessionResult& Result);*/
|
||||
|
||||
|
||||
// UOnlineBlueprintCallProxyBase interface
|
||||
virtual void Activate() override;
|
||||
// End of UOnlineBlueprintCallProxyBase interface
|
||||
|
||||
private:
|
||||
// Internal callback when the session search completes, calls out to the public success/failure callbacks
|
||||
void OnCompleted(bool bSuccess);
|
||||
|
||||
private:
|
||||
// The player controller triggering things
|
||||
TWeakObjectPtr<APlayerController> PlayerControllerWeakPtr;
|
||||
|
||||
// The delegate executed by the online subsystem
|
||||
FOnFindSessionsCompleteDelegate Delegate;
|
||||
|
||||
// Handle to the registered OnFindSessionsComplete delegate
|
||||
FDelegateHandle DelegateHandle;
|
||||
|
||||
// Object to track search results
|
||||
TSharedPtr<FOnlineSessionSearch> SearchObject;
|
||||
|
||||
// Whether or not to search LAN
|
||||
bool bUseLAN;
|
||||
|
||||
// Maximum number of results to return
|
||||
int MaxResults;
|
||||
|
||||
// Store extra settings
|
||||
TArray<FSessionsSearchSetting> SearchSettings;
|
||||
|
||||
// The world context object in which this call is taking place
|
||||
UObject* WorldContextObject;
|
||||
};
|
||||
Reference in New Issue
Block a user