Pico Unreal Platform SDK
OnlineSubsystemPicoNames.h
1// Copyright 2022 Pico Technology Co., Ltd.All rights reserved.
2// This plugin incorporates portions of the Unreal® Engine. Unreal® is a trademark or registered trademark of Epic Games, Inc.In the United States of America and elsewhere.
3// Unreal® Engine, Copyright 1998 – 2022, Epic Games, Inc.All rights reserved.
4
5#pragma once
6
7#include "CoreMinimal.h"
8#include "OnlineStats.h"
9#include "OnlineSubsystemPicoNames.generated.h"
10
11
12#ifndef PICO_SUBSYSTEM
13#define PICO_SUBSYSTEM FName(TEXT("Pico"))
14#endif
15class UPico_UserArray;
16
17UENUM(BlueprintType)
18enum class EUserPresenceStatus : uint8
19{
20 Unknow,
21 OnLine,
22 OffLine
23};
24
25
26UENUM(BlueprintType)
27enum class EUserGender : uint8
28{
29 Unknow,
30 Male,
31 Female
32};
33
34USTRUCT(BlueprintType, meta = (DisplayName = "OnlinePicoUserInfo"))
35struct FPicoUserInfo
36{
37 GENERATED_USTRUCT_BODY()
38
39 UPROPERTY(BlueprintReadWrite, Category = "OnlinePicoUserInfo")
40 FString UserId;
41
42 UPROPERTY(BlueprintReadWrite, Category = "OnlinePicoUserInfo")
43 FString DisplayName;
44
45 UPROPERTY(BlueprintReadWrite, Category = "OnlinePicoUserInfo")
46 EUserPresenceStatus UserPresenceStatus;
47
48 UPROPERTY(BlueprintReadWrite, Category = "OnlinePicoUserInfo")
49 FString InviteToken;
50
51 UPROPERTY(BlueprintReadWrite, Category = "OnlinePicoUserInfo")
52 FString ImageUrl;
53
54 UPROPERTY(BlueprintReadWrite, Category = "OnlinePicoUserInfo")
55 FString SmallImageUrl;
56
57 UPROPERTY(BlueprintReadWrite, Category = "OnlinePicoUserInfo")
58 FString PresencePackage;
59
60 UPROPERTY(BlueprintReadWrite, Category = "OnlinePicoUserInfo")
61 FString PresenceStr;
62
63 UPROPERTY(BlueprintReadWrite, Category = "OnlinePicoUserInfo")
64 FString PresenceDeeplinkMessage;
65
66 UPROPERTY(BlueprintReadWrite, Category = "OnlinePicoUserInfo")
67 FString PresenceDestinationApiName;
68
69 UPROPERTY(BlueprintReadWrite, Category = "OnlinePicoUserInfo")
70 FString PresenceLobbySessionId;
71
72 UPROPERTY(BlueprintReadWrite, Category = "OnlinePicoUserInfo")
73 FString PresenceMatchSessionId;
74
75 UPROPERTY(BlueprintReadWrite, Category = "OnlinePicoUserInfo")
76 FString PresenceExtra;
77
78 UPROPERTY(BlueprintReadWrite, Category = "OnlinePicoUserInfo")
79 EUserGender Gender;
80};
81
82/* ppf_LaunchType.h */
83UENUM(BlueprintType, meta = (DisplayName = "LaunchType"))
84enum class ELaunchType : uint8
85{
86 Unknown,
87 Normal,
88 Invite,
89 Coordinated,
90 Deeplink
91};
92
93/* ppf_LaunchResult.h */
94UENUM(BlueprintType, meta = (DisplayName = "LaunchResult"))
95enum class ELaunchResult : uint8
96{
97 Unknown,
98 Success,
99 FailedRoomFull,
100 FailedGameAlreadyStarted,
101 FailedRoomNotFound,
102 FailedUserDeclined,
103 FailedOtherReason
104};
105
106/* ppf_LaunchDetails.h */
107USTRUCT(BlueprintType, meta = (DisplayName = "LaunchDetails"))
108struct FLaunchDetails
109{
110 GENERATED_USTRUCT_BODY()
111
112 UPROPERTY(BlueprintReadWrite, Category = "ApplicationLifecycle")
113 FString DeeplinkMessage;
114
115 UPROPERTY(BlueprintReadWrite, Category = "ApplicationLifecycle")
116 FString DestinationApiName;
117
118 UPROPERTY(BlueprintReadWrite, Category = "ApplicationLifecycle")
119 FString LaunchSource;
120
121 UPROPERTY(BlueprintReadWrite, Category = "ApplicationLifecycle")
122 FString LobbySessionID;
123
124 UPROPERTY(BlueprintReadWrite, Category = "ApplicationLifecycle")
125 FString MatchSessionID;
126
127 UPROPERTY(BlueprintReadWrite, Category = "ApplicationLifecycle")
128 FString Extra;
129
130 UPROPERTY(BlueprintReadWrite, Category = "ApplicationLifecycle")
131 FString RoomID;
132
133 UPROPERTY(BlueprintReadWrite, Category = "ApplicationLifecycle")
134 FString TrackingID;
135
136 UPROPERTY(BlueprintReadWrite, Category = "ApplicationLifecycle")
137 ELaunchType LaunchType;
138
139 UPROPERTY(BlueprintReadWrite, Category = "ApplicationLifecycle")
140 UPico_UserArray* UserArray = nullptr;
141
142};
143
144UENUM(BlueprintType, meta = (DisplayName = "RoomType"))
145enum class ERoomType : uint8
146{
147 TypeUnknown,
148 TypeMatchmaking,
149 TypeModerated,
150 TypePrivate
151};
152
153UENUM(BlueprintType, meta = (DisplayName = "RoomJoinPolicy"))
154enum class ERoomJoinPolicy : uint8
155{
156 JoinPolicyNone,
157 JoinPolicyEveryone,
158 JoinPolicyFriendsOfMembers,
159 JoinPolicyFriendsOfOwner,
160 JoinPolicyInvitedUsers,
161 JoinPolicyUnknown
162};
163
164UENUM(BlueprintType, meta = (DisplayName = "RoomJoinabilit"))
165enum class ERoomJoinabilit : uint8
166{
167 JoinabilityUnknown,
168 JoinabilityAreIn,
169 JoinabilityAreKicked,
170 JoinabilityCanJoin,
171 JoinabilityIsFull,
172 JoinabilityNoViewer,
173 JoinabilityPolicyPrevents
174};
175
176USTRUCT(BlueprintType, meta = (DisplayName = "PicoDestination"))
177struct FPicoDestination
178{
179 GENERATED_USTRUCT_BODY()
180
181 UPROPERTY(BlueprintReadWrite, Category = "Destination")
182 FString ApiName;
183
184 UPROPERTY(BlueprintReadWrite, Category = "Destination")
185 FString DeepLinkMessage;
186
187 UPROPERTY(BlueprintReadWrite, Category = "Destination")
188 FString DisplayName;
189};
190
191
192USTRUCT(BlueprintType, meta = (DisplayName = "PicoApplicationInvite"))
193struct FPicoApplicationInvite
194{
195 GENERATED_USTRUCT_BODY()
196 // FPicoRecipent Recipent;
197 UPROPERTY(BlueprintReadWrite, Category = "Destination")
198 FPicoUserInfo Recipent;
199// TSharedRef<FOnlinePicoFriend> Recipent;
200 UPROPERTY(BlueprintReadWrite, Category = "Destination")
201 FPicoDestination Destination;
202
203 UPROPERTY(BlueprintReadWrite, Category = "Destination")
204 FString ID;
205
206// ppfID Id;
207
208 UPROPERTY(BlueprintReadWrite, Category = "Destination")
209 bool bIsActive;
210
211 UPROPERTY(BlueprintReadWrite, Category = "Destination")
212 FString LobbySessionId;
213
214 UPROPERTY(BlueprintReadWrite, Category = "Destination")
215 FString MatchSessionId;
216
217// FPicoApplicationInvite(TSharedRef<FOnlinePicoFriend> InRecipent) : Recipent(InRecipent) {}
218};
219
220UENUM(BlueprintType)
221enum class EOnlineAsyncTaskStatePicoType : uint8
222{
223 NotStarted,
224 InProgress,
225 Done,
226 Failed
227};
228UENUM(BlueprintType)
229enum class EOnJoinSessionCompleteResultPicoType : uint8
230{
231 Success,
232 SessionIsFull,
233 SessionDoesNotExist,
234 CouldNotRetrieveAddress,
235 AlreadyInSession,
236 UnknownError
237};
238UENUM(BlueprintType)
239enum class EOnlineSessionStatePicoType : uint8
240{
241 NoSession,
242 Creating,
243 Pending,
244 Starting,
245 InProgress,
246 Ending,
247 Ended,
248 Destroying
249};
250
251USTRUCT(BlueprintType, meta = (DisplayName = "PicoOnlineSessionSettings"))
252struct FPicoOnlineSessionSettings
253{
254 GENERATED_USTRUCT_BODY()
255
256 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSettings")
257 int NumPublicConnections;
258
259 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSettings")
260 int NumPrivateConnections;
261
262 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSettings")
263 bool bShouldAdvertise;
264
265 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSettings")
266 bool bAllowInvites;
267
268 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSettings")
269 bool bUsesPresence;
270
271 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSettings")
272 bool bAllowJoinViaPresence;
273
274 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSettings")
275 bool bAllowJoinViaPresenceFriendsOnly;
276
277 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSettings")
278 int BuildUniqueId;
279
280 // Settings
281 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSettings")
282 TArray<FString> KeyArray;
283
284 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSettings")
285 TArray<FString> ValueArray;
286};
287USTRUCT(BlueprintType, meta = (DisplayName = "PicoOnlineSession"))
288struct FPicoOnlineSession
289{
290 GENERATED_USTRUCT_BODY()
291
292 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSession")
293 FString OwningUserId;
294
295 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSession")
296 FString OwningUserName;
297
298 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSession")
299 FPicoOnlineSessionSettings SessionSettings;
300
301 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSession")
302 FString SessionInfoRoomID;
303
304 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSession")
305 int32 NumOpenPrivateConnections;
306
307 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSession")
308 int32 NumOpenPublicConnections;
309};
310USTRUCT(BlueprintType, meta = (DisplayName = "PicoNamedOnlineSession"))
311struct FPicoNamedOnlineSession
312{
313 GENERATED_USTRUCT_BODY()
314
315 UPROPERTY(BlueprintReadWrite, Category = "PicoNamedOnlineSession")
316 FString SessionName;
317
318 UPROPERTY(BlueprintReadWrite, Category = "PicoNamedOnlineSession")
319 int32 HostingPlayerNum;
320
321 UPROPERTY(BlueprintReadWrite, Category = "PicoNamedOnlineSession")
322 bool bHosting;
323
324 UPROPERTY(BlueprintReadWrite, Category = "PicoNamedOnlineSession")
325 FString LocalOwnerId;
326
327 UPROPERTY(BlueprintReadWrite, Category = "PicoNamedOnlineSession")
328 TArray< FString > RegisteredPlayers;
329
330 UPROPERTY(BlueprintReadWrite, Category = "PicoNamedOnlineSession")
331 EOnlineSessionStatePicoType SessionState;
332
333 UPROPERTY(BlueprintReadWrite, Category = "PicoNamedOnlineSession")
334 FString OwningUserId;
335
336 UPROPERTY(BlueprintReadWrite, Category = "PicoNamedOnlineSession")
337 FString OwningUserName;
338
339 UPROPERTY(BlueprintReadWrite, Category = "PicoNamedOnlineSession")
340 FPicoOnlineSessionSettings SessionSettings;
341
342 UPROPERTY(BlueprintReadWrite, Category = "PicoNamedOnlineSession")
343 FString SessionInfoRoomID;
344
345 UPROPERTY(BlueprintReadWrite, Category = "PicoNamedOnlineSession")
346 int32 NumOpenPrivateConnections;
347
348 UPROPERTY(BlueprintReadWrite, Category = "PicoNamedOnlineSession")
349 int32 NumOpenPublicConnections;
350};
351USTRUCT(BlueprintType, meta = (DisplayName = "PicoOnlineSessionSearchResult"))
352struct FPicoOnlineSessionSearchResult
353{
354 GENERATED_USTRUCT_BODY()
355
356 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSearchResult")
357 FPicoOnlineSession Session;
358
359 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSearchResult")
360 int32 PingInMs;
361};
362USTRUCT(BlueprintType, meta = (DisplayName = "PicoOnlineSessionSearch"))
363struct FPicoOnlineSessionSearch
364{
365 GENERATED_USTRUCT_BODY()
366
367 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSearch")
368 TArray<FPicoOnlineSessionSearchResult> SearchResults;
369
370 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSearch")
371 EOnlineAsyncTaskStatePicoType SearchState;
372
373 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSearch")
374 int32 MaxSearchResults;
375
376 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSearch")
377 TArray<FString> QuerySettingsKeyArray;
378
379 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSearch")
380 TArray<FString> QuerySettingsValueArray;
381
382 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSearch")
383 bool bIsLanQuery;
384
385 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSearch")
386 int32 PingBucketSize;
387
388 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSearch")
389 int32 PlatformHash;
390
391 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineSessionSearch")
392 float TimeoutInSeconds;
393};
394// Leaderboard
395UENUM(BlueprintType)
396enum class EPicoOnlineKeyValuePairDataType : uint8
397{
398 Empty,
399 Int32,
400 UInt32,
401 Int64,
402 UInt64,
403 Double,
404 String,
405 Float,
406 Blob,
407 Bool,
408 Json,
409 MAX
410};
411USTRUCT(BlueprintType, meta = (DisplayName = "FVariantDataPico"))
412struct FVariantDataPico
413{
414 GENERATED_USTRUCT_BODY()
415
416 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineStatsRow")
417 EPicoOnlineKeyValuePairDataType Type;
418
419 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineStatsRow")
420 FString Value;
421};
422USTRUCT(BlueprintType, meta = (DisplayName = "FPicoColumnMetaData"))
423struct FPicoColumnMetaData
424{
425 GENERATED_USTRUCT_BODY()
426
427 UPROPERTY(BlueprintReadWrite, Category = "FPicoColumnMetaData")
428 FString ColumnName;
429
430 UPROPERTY(BlueprintReadWrite, Category = "FPicoColumnMetaData")
431 EPicoOnlineKeyValuePairDataType DataType;
432};
433USTRUCT(BlueprintType, meta = (DisplayName = "FPicoOnlineStatsRow"))
434struct FPicoOnlineStatsRow
435{
436 GENERATED_USTRUCT_BODY()
437
438 UPROPERTY(BlueprintReadWrite, Category = "FPicoOnlineStatsRow")
439 FString NickName;
440
441 UPROPERTY(BlueprintReadWrite, Category = "FPicoOnlineStatsRow")
442 FString PlayerId;
443
444 UPROPERTY(BlueprintReadWrite, Category = "FPicoOnlineStatsRow")
445 int32 Rank;
446
447 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineStatsRow")
448 TMap<FName, FVariantDataPico> Columns;
449};
450USTRUCT(BlueprintType, meta = (DisplayName = "PicoOnlineLeaderboardRead"))
451struct FPicoOnlineLeaderboardRead
452{
453 GENERATED_USTRUCT_BODY()
454
455 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineLeaderboardRead")
456 FString LeaderboardName;
457
458 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineLeaderboardRead")
459 FString SortedColumn;
460
461 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineLeaderboardRead")
462 TArray<FPicoOnlineStatsRow> Rows;
463
464 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineLeaderboardRead")
465 EOnlineAsyncTaskStatePicoType ReadState;
466
467 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineLeaderboardRead")
468 TArray<FPicoColumnMetaData> ColumnMetadata;
469
470 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineLeaderboardRead")
471 int PageIndex;
472
473 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineLeaderboardRead")
474 int PageSize;
475
476};
477UENUM(BlueprintType)
478enum class ELeaderboardUpdateMethodPicoType : uint8
479{
480 KeepBest,
481 Force
482};
483USTRUCT(BlueprintType, meta = (DisplayName = "PicoOnlineLeaderboardWrite"))
484struct FPicoOnlineLeaderboardWrite
485{
486 GENERATED_USTRUCT_BODY()
487
488 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineLeaderboardWrite")
489 ELeaderboardUpdateMethodPicoType UpdateMethod;
490
491 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineLeaderboardWrite")
492 TArray<FString> LeaderboardNames;
493
494 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineLeaderboardWrite")
495 FString RatedStat;
496
497 UPROPERTY(BlueprintReadWrite, Category = "PicoOnlineLeaderboardWrite")
498 int32 ValueToWrite;
499};
500
501UENUM(BlueprintType)
502enum class ESportTarget : uint8
503{
504 None,
505 LoseFat,
506 KeepFit
507};
508
509UENUM(BlueprintType)
510enum class EAchievementType : uint8
511{
512 Unknown,
513 Simple,
514 Count,
515 Bitfield,
516};
517UENUM(BlueprintType)
518enum class EAchievementWritePolicy : uint8
519{
520 Unknown,
521 Client,
522 Server,
523};