85 lines
2.9 KiB
C++
85 lines
2.9 KiB
C++
// Fill out your copyright notice in the Description page of Project Settings.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "UObject/Object.h"
|
|
#include "Dom/JsonObject.h"
|
|
#include "Types/Struct/DTFluxCompositeKey.h"
|
|
#include "Types/Struct/DTFluxRaceDataStructs.h"
|
|
#include "DTFluxModelAsset.generated.h"
|
|
|
|
|
|
class UDTFluxContestStorage;
|
|
/**
|
|
* Class representing Data Storage
|
|
*/
|
|
UCLASS(BlueprintType)
|
|
class DTFLUXCORE_API UDTFluxModelAsset : public UObject
|
|
{
|
|
GENERATED_BODY()
|
|
UDTFluxModelAsset(const FObjectInitializer& ObjectInitializer);
|
|
public:
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere)
|
|
FString EventName = "MyEvent";
|
|
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere)
|
|
TArray<FDTFluxPerson> Persons;
|
|
|
|
UPROPERTY(BlueprintReadWrite, EditAnywhere)
|
|
TMap<int /* Bib */, FDTFluxParticipant> Participants;
|
|
|
|
UPROPERTY(BlueprintReadOnly, EditAnywhere)
|
|
TMap<FString /* ContestName */, FDTFluxContest> Contests;
|
|
|
|
UPROPERTY(BlueprintReadOnly, VisibleAnywhere)
|
|
TMap<int /*ContestId*/, FDTFluxContestRankings> ContestRankings;
|
|
|
|
UPROPERTY(BlueprintReadOnly, VisibleAnywhere)
|
|
TMap<FDTFluxStageKey, FDTFluxStageRankings> StageRankings;
|
|
|
|
UPROPERTY(BlueprintReadOnly, VisibleAnywhere)
|
|
TMap<FDTFluxSplitKey, FDTFluxSplitRankings> SplitRankings;
|
|
|
|
UFUNCTION(BlueprintCallable, CallInEditor, Category="DTFlux|ModelAsset")
|
|
void AddContest(const FDTFluxContest &Contest);
|
|
|
|
UFUNCTION(BlueprintCallable, CallInEditor, Category="DTFlux|Contest")
|
|
bool GetContestById(const int InContestId, FDTFluxContest& OutContest);
|
|
|
|
UFUNCTION(BlueprintCallable, CallInEditor, Category="DTFlux|Person")
|
|
void AddPerson(const FDTFluxPerson& InPerson);
|
|
|
|
UFUNCTION(BlueprintCallable, CallInEditor, Category="DTFlux|Participant")
|
|
void AddParticipant(const FDTFluxParticipant& InParticipant, const int ContestId);
|
|
|
|
UFUNCTION(BlueprintCallable, CallInEditor, Category="DTFlux|Person|Utils")
|
|
bool PersonExists(const FDTFluxPerson& InPerson) const;
|
|
|
|
UFUNCTION(BlueprintCallable, Category="DTFlux|Contest|Utils")
|
|
FString GetContestNameForId(const int InContestID);
|
|
|
|
UFUNCTION(BlueprintCallable, Category="DTFlux|Stage")
|
|
void UpdateOrCreateStageRanking(const FDTFluxStageRankings& InStageRankings);
|
|
|
|
UFUNCTION(BlueprintCallable, Category="DTFlux|Stage")
|
|
void AddStageRanking(const FDTFluxStageRankings& InStageRankings);
|
|
|
|
UFUNCTION(BlueprintCallable, Category="DTFlux|Split")
|
|
void UpdateOrCreateSplitRanking(const FDTFluxSplitRankings& InSplitRankings);
|
|
|
|
UFUNCTION(BlueprintCallable, Category="DTFlux|Split")
|
|
void AddSplitRanking(const FDTFluxSplitRankings& InSplitRanking);
|
|
|
|
UFUNCTION()
|
|
void AddContestRanking(const FDTFluxContestRankings& NewContestRankings);
|
|
|
|
UFUNCTION(BlueprintCallable, CallInEditor, Category="DTFlux|Participant")
|
|
void UpdateParticipant(const FDTFluxParticipant& Participant);
|
|
|
|
UFUNCTION(BlueprintCallable, CallInEditor, Category="DTFlux|Participant")
|
|
void UpdateParticipantStatus(const FDTFluxTeamStatusUpdate& NewParticipantStatus);
|
|
};
|