Network total reforge. Team-List and Race-Data handled

This commit is contained in:
2025-06-29 19:04:36 +02:00
parent 3a45d4c3b7
commit 81bf37639b
92 changed files with 3736 additions and 4202 deletions

View File

@ -0,0 +1,29 @@
using UnrealBuildTool;
public class DTFluxProjectSettings : ModuleRules
{
public DTFluxProjectSettings(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(
new string[]
{
"Core",
}
);
PrivateDependencyModuleNames.AddRange(
new string[]
{
"CoreUObject",
"Engine",
"Slate",
"SlateCore",
"DeveloperSettings",
"DTFluxCore"
}
);
}
}

View File

@ -0,0 +1,15 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "DTFluxGeneralSettings.h"
#include "DTFluxProjectSettingsModule.h"
UDTFluxGeneralSettings::UDTFluxGeneralSettings()
{
CategoryName = "DTFlux API";
UE_LOG(logDTFluxProjectSettings, Log, TEXT("ModelAssetLoded isNull() -> %s"), ModelAsset.IsNull() ? TEXT("TRUE") : TEXT("FALSE"));
UE_LOG(logDTFluxProjectSettings, Log, TEXT("ModelAssetLoded IsValid() -> %s"), ModelAsset.IsValid() ? TEXT("TRUE") : TEXT("FALSE"));
}

View File

@ -0,0 +1,52 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "DTFluxNetworkSettings.h"
#include "Types/DTFluxNetworkSettingsTypes.h"
UDTFluxNetworkSettings::UDTFluxNetworkSettings()
{
CategoryName = "DTFlux API";
}
#if WITH_EDITOR
void UDTFluxNetworkSettings::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
{
Super::PostEditChangeProperty(PropertyChangedEvent);
FString PropertyId = PropertyChangedEvent.GetPropertyName().ToString();
if(PropertyId.Contains("WebSocket"))
{
FDTFluxWsSettings WsSettings;
GetWebSocketSettings(this, WsSettings);
OnDTFluxWebSocketSettingsChanged.Broadcast(WsSettings);
}
if(PropertyId.Contains("HTTP"))
{
FDTFluxHttpSettings HTTPSettings;
GetHTTPSettings(this, HTTPSettings);
OnDTFluxHttpSettingsChanged.Broadcast(HTTPSettings);
}
}
#endif
void UDTFluxNetworkSettings::GetHTTPSettings(const UDTFluxNetworkSettings* Settings,
FDTFluxHttpSettings& OutHTTPSettings)
{
OutHTTPSettings.Address = Settings->HTTPAddress;
OutHTTPSettings.Port = Settings->HTTPPort;
OutHTTPSettings.Path = Settings->HTTPPath;
}
void UDTFluxNetworkSettings::GetWebSocketSettings(const UDTFluxNetworkSettings* Settings,
FDTFluxWsSettings& OutWsSettings)
{
OutWsSettings.Address = Settings->WebSocketAddress;
OutWsSettings.Path = Settings->WebSocketPath;
OutWsSettings.Port = Settings->WebSocketPort;
OutWsSettings.bShouldAutoReconnectOnClosed = Settings->bWebSocketShouldReconnectOnClosed;
OutWsSettings.bShouldConnectAtStartup = Settings->bWebSocketShouldConnectAtStartup;
OutWsSettings.bShouldAutoReconnectOnError = Settings->bWebSocketShouldReconnectOnError;
}

View File

@ -0,0 +1,19 @@
#include "DTFluxProjectSettingsModule.h"
#define LOCTEXT_NAMESPACE "FDTFluxProjectSettingsModule"
DTFLUXPROJECTSETTINGS_API DEFINE_LOG_CATEGORY(logDTFluxProjectSettings)
void FDTFluxProjectSettingsModule::StartupModule()
{
}
void FDTFluxProjectSettingsModule::ShutdownModule()
{
}
#undef LOCTEXT_NAMESPACE
IMPLEMENT_MODULE(FDTFluxProjectSettingsModule, DTFluxProjectSettings)

View File

@ -0,0 +1,24 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Assets/DTFluxModelAsset.h"
#include "Engine/DeveloperSettings.h"
#include "DTFluxGeneralSettings.generated.h"
/**
*
*/
UCLASS(Config=Engine, DefaultConfig, meta=(DisplayName="DTFlux General Settings"))
class DTFLUXPROJECTSETTINGS_API UDTFluxGeneralSettings : public UDeveloperSettings
{
GENERATED_BODY()
public:
UDTFluxGeneralSettings();
UPROPERTY(Category="General", Config, EditAnywhere, BlueprintReadOnly, DisplayName="Datastorage File")
TSoftObjectPtr<UDTFluxModelAsset> ModelAsset;
};

View File

@ -0,0 +1,65 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "UObject/Object.h"
#include "DTFluxNetworkSettings.generated.h"
struct FDTFluxHttpSettings;
struct FDTFluxWsSettings;
/**
*
*/
UCLASS(Config=Engine, DefaultConfig, meta=(DisplayName="DTFlux Network Settings"))
class DTFLUXPROJECTSETTINGS_API UDTFluxNetworkSettings : public UDeveloperSettings
{
GENERATED_BODY()
public:
UDTFluxNetworkSettings();
UPROPERTY(Category="CHRONO PROXY|Websocket", Config, EditAnywhere, BlueprintReadOnly, DisplayName="Websocket Port")
int WebSocketPort = 3000;
UPROPERTY(Category="CHRONO PROXY|Websocket", Config, EditAnywhere, BlueprintReadOnly, DisplayName="Websocket Address")
FString WebSocketAddress = "127.0.0.1";
UPROPERTY(Category="CHRONO PROXY|Websocket", Config, EditAnywhere, BlueprintReadOnly, DisplayName="Websocket Path")
FString WebSocketPath = "/api/v1";
UPROPERTY(Category="CHRONO PROXY|Websocket", Config, EditAnywhere, BlueprintReadOnly, DisplayName="Autoconnect to WebSocket Server at startup")
bool bWebSocketShouldConnectAtStartup = false;
UPROPERTY(Category="CHRONO PROXY|Websocket", Config, EditAnywhere, BlueprintReadOnly, DisplayName="Auto Reconnect On WebSocket Closed")
bool bWebSocketShouldReconnectOnClosed = false;
UPROPERTY(Category="CHRONO PROXY|Websocket", Config, EditAnywhere, BlueprintReadOnly, DisplayName="Auto Reconnect On WebSocket Error")
bool bWebSocketShouldReconnectOnError = false;
UPROPERTY(Category="CHRONO PROXY|HTTP", Config, EditAnywhere, BlueprintReadOnly, DisplayName="HTTP Address")
FString HTTPAddress = "http://localhost";
UPROPERTY(Category="CHRONO PROXY|HTTP", Config, EditAnywhere, BlueprintReadOnly, DisplayName="HTTP Path")
FString HTTPPath = "/";
UPROPERTY(Category="CHRONO PROXY|HTTP", Config, EditAnywhere, BlueprintReadOnly, DisplayName="HTTP Port")
int HTTPPort = 8080;
#if WITH_EDITOR
virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
DECLARE_MULTICAST_DELEGATE_OneParam(FOnDTFluxHttpSettingsChanged, const FDTFluxHttpSettings&);
DECLARE_MULTICAST_DELEGATE_OneParam(FOnDTFluxWebSocketSettingsChanged, const FDTFluxWsSettings&);
FOnDTFluxHttpSettingsChanged OnDTFluxHttpSettingsChanged;
FOnDTFluxWebSocketSettingsChanged OnDTFluxWebSocketSettingsChanged;
#endif
static void GetHTTPSettings(const UDTFluxNetworkSettings* Settings, FDTFluxHttpSettings& OutHTTPSettings);
static void GetWebSocketSettings(const UDTFluxNetworkSettings* Settings, FDTFluxWsSettings& OutWsSettings);
};

View File

@ -0,0 +1,24 @@
#pragma once
#include "CoreMinimal.h"
#include "Modules/ModuleManager.h"
/**
* @module DTFluxProjectSettings
* @details DTFlux Project is a framework to integrate all kind of events data from
* multiple API (stopwatch servers, etc...) or manually to unreal motion design platform
* to create live audiovisual shows.
* @brief This module provides all defines the projects settings for this plugin
* @license See LICENSE.TXT at the of DTFluxAPI plugin folder or at
* @see https://github.com/A2MSystemes/DTFluxAPI/blob/main/LICENSE
* @author Ange-Marie MAURIN
*/
DTFLUXPROJECTSETTINGS_API DECLARE_LOG_CATEGORY_EXTERN(logDTFluxProjectSettings, Log, All)
class FDTFluxProjectSettingsModule : public IModuleInterface
{
public:
virtual void StartupModule() override;
virtual void ShutdownModule() override;
};

View File

@ -0,0 +1,58 @@
#pragma once
#include "CoreMinimal.h"
#include "DTFluxNetworkSettingsTypes.generated.h"
USTRUCT()
struct FDTFluxWsSettings
{
GENERATED_BODY()
FDTFluxWsSettings():
Path(TEXT("")),
Address(TEXT(""))
{}
UPROPERTY()
int Port = -1;
UPROPERTY()
FString Path;
UPROPERTY()
FString Address;
UPROPERTY()
bool bShouldAutoReconnectOnClosed = false;
UPROPERTY()
bool bShouldConnectAtStartup = false;
UPROPERTY()
bool bShouldAutoReconnectOnError = false;
bool operator==(const FDTFluxWsSettings& Right) const
{
return Port == Right.Port || Path == Right.Path || Address == Right.Address;
};
bool operator!=(const FDTFluxWsSettings& Right) const
{
return Port != Right.Port || Path != Right.Path || Address != Right.Address;
}
};
USTRUCT()
struct FDTFluxHttpSettings
{
GENERATED_BODY()
FDTFluxHttpSettings():
Port(-1),
Path(TEXT("")),
Address(TEXT("")){}
UPROPERTY()
int Port;
UPROPERTY()
FString Path;
UPROPERTY()
FString Address;
};