A Demo Project for the UnrealEngineSDK
Loading...
Searching...
No Matches
BaseEvent.h
Go to the documentation of this file.
1// Copyright(c) Pixo Group. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "UObject/Object.h"
7#include "BaseEvent.generated.h"
8
9USTRUCT()
10struct FCompareResult
11{
12 GENERATED_BODY()
13
14public:
15
16 FCompareResult(): LocalizationKey(0)
17 {
18 bValidResult = false;
19 }
20
21 FCompareResult(const FGuid& Guid, const TArray<uint8>& WrongOptions, const uint8 Key)
22 {
23 InspectedObjectGuid = Guid;
24 WrongOptionsIDs = WrongOptions;
25 LocalizationKey = Key;
26
27 bValidResult = false;
28 GenerateUniqueResultID(WrongOptions, Guid);
29 }
30
31public:
32
33 void GenerateUniqueResultID(const TArray<uint8>& Actions, const FGuid& Guid)
34 {
35 UniqueResultID = Guid.ToString();
36
37 for(uint8 Type : Actions)
38 {
39 UniqueResultID.Append(FString::FromInt(Type));
40 }
41 }
42
43public:
44
45 UPROPERTY() bool bValidResult;
46
47 UPROPERTY() FString UniqueResultID;
48 UPROPERTY() FGuid InspectedObjectGuid;
50 UPROPERTY() TArray<uint8> WrongOptionsIDs;
51 UPROPERTY() TArray<uint8> SelectedOptionsIDs;
52
53 UPROPERTY() uint8 LocalizationKey;// TODO remove it!
54 UPROPERTY() TArray<FString> LocalizedWrongOptions; // TODO remove it!
55
56};
57
62UCLASS(Abstract)
63class PIXOCORE_API UBaseEvent : public UObject
64{
65 GENERATED_BODY()
66
67public:
68 UBaseEvent();
69 void Initialize(APlayerController* NewExecutor);
70 APlayerController* GetExecutor() const;
71 const FGuid& GetGuid() const { return Guid; }
72
73 virtual bool Lock() final;
74 virtual void Unlock() final;
75
76 virtual FCompareResult CompareEvent(const UBaseEvent* Event) const
77 {
78 if (Event)
79 {
80 UE_LOG(LogTemp, Warning, TEXT("Compare is not implemented for this type of event = %s"), *Event->GetName());
81 }
83 return FCompareResult();
84 }
85
86private:
87 UPROPERTY()
88 APlayerController* Executor;
89 FGuid Guid;
91 TAtomic<int32> ListenersNum;
92};
The UBaseEvent class serves as the base class for all events for our event-managers system....
Definition BaseEvent.h:83
TAtomic< int32 > ListenersNum
Definition BaseEvent.h:112
FGuid Guid
Definition BaseEvent.h:110
const FGuid & GetGuid() const
Definition BaseEvent.h:90
APlayerController * Executor
UPROPERTY()
Definition BaseEvent.h:109
USTRUCT()
Definition BaseEvent.h:13
TArray< uint8 > SelectedOptionsIDs
UPROPERTY()
Definition BaseEvent.h:63
FCompareResult(const FGuid &Guid, const TArray< uint8 > &WrongOptions, const uint8 Key)
Definition BaseEvent.h:23
void GenerateUniqueResultID(const TArray< uint8 > &Actions, const FGuid &Guid)
Definition BaseEvent.h:35
FGuid InspectedObjectGuid
UPROPERTY()
Definition BaseEvent.h:56
bool bValidResult
UPROPERTY()
Definition BaseEvent.h:49
uint8 LocalizationKey
UPROPERTY()
Definition BaseEvent.h:67
TArray< uint8 > WrongOptionsIDs
UPROPERTY()
Definition BaseEvent.h:60
FString UniqueResultID
UPROPERTY()
Definition BaseEvent.h:53