PICO Unreal Platform SDK
Pico_Achievements.h
1/*******************************************************************************
2Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved.
3
4NOTICE:All information contained herein is, and remains the property of
5PICO Technology Co., Ltd. The intellectual and technical concepts
6contained herein are proprietary to PICO Technology Co., Ltd. and may be
7covered by patents, patents in process, and are protected by trade secret or
8copyright law. Dissemination of this information or reproduction of this
9material is strictly forbidden unless prior written permission is obtained from
10PICO Technology Co., Ltd.
11*******************************************************************************/
12// 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.
13// Unreal® Engine, Copyright 1998 – 2022, Epic Games, Inc.All rights reserved.
14#pragma once
15
16#include "CoreMinimal.h"
17#include "UObject/NoExportTypes.h"
18#include "PPF_Platform.h"
19#include "OnlineSubsystemPicoNames.h"
20#include "OnlineSubsystemPico.h"
21#include "Pico_Achievements.generated.h"
22
24
25DECLARE_LOG_CATEGORY_EXTERN(PicoAchievements, Log, All);
26
32
36DECLARE_DYNAMIC_DELEGATE_ThreeParams(FAddCount, bool, bIsError, const FString&, ErrorMessage, UPico_AchievementUpdate*, AchievementUpdate);
37DECLARE_DYNAMIC_DELEGATE_ThreeParams(FAddFields, bool, bIsError, const FString&, ErrorMessage, UPico_AchievementUpdate*, AchievementUpdate);
38DECLARE_DYNAMIC_DELEGATE_ThreeParams(FUnlock, bool, bIsError, const FString&, ErrorMessage, UPico_AchievementUpdate*, AchievementUpdate);
39DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetAllDefinitions, bool, bIsError, const FString&, ErrorMessage, UPico_AchievementDefinitionArray*, AchievementDefinitionArray);
40DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetAllProgress, bool, bIsError, const FString&, ErrorMessage, UPico_AchievementProgressArray*, AchievementProgressArray);
41DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetDefinitionsByName, bool, bIsError, const FString&, ErrorMessage, UPico_AchievementDefinitionArray*, AchievementDefinitionArray);
42DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetProgressByName, bool, bIsError, const FString&, ErrorMessage, UPico_AchievementProgressArray*, AchievementProgressArray);
43
55class ONLINESUBSYSTEMPICO_API FPicoAchievementsInterface
56{
57private:
58
59 FOnlineSubsystemPico& PicoSubsystem;
60
61public:
62 FPicoAchievementsInterface(FOnlineSubsystemPico& InSubsystem);
64
65 FAddCount AddCountDelegate;
66 FAddFields AddFieldsDelegate;
67 FUnlock UnlockDelegate;
68 FGetAllDefinitions GetAllDefinitionsDelegate;
69 FGetAllProgress GetAllProgressDelegate;
70 FGetDefinitionsByName GetDefinitionsByNameDelegate;
71 FGetProgressByName GetProgressByNameDelegate;
72
91 bool AddCount(const FString& Name, const int64& Count, const FString& ExtraData, FAddCount InAddCountDelegate);
92
109 bool AddFields(const FString& Name, const FString& Fields, const FString& ExtraData, FAddFields InAddFieldsCallback);
110
122 bool Unlock(const FString& Name, const FString& ExtraData, FUnlock InUnlockCallback);
123
137 bool GetAllDefinitions(int32 PageIndex, int32 PageSize, FGetAllDefinitions InGetAllDefinitionsCallback);
138
153 bool GetAllProgress(int32 PageIndex, int32 PageSize, FGetAllProgress InGetAllProgressCallback);
154
167 bool GetDefinitionsByName(const TArray<FString>& NameArray, FGetDefinitionsByName InGetDefinitionsByNameCallback);
168
182 bool GetProgressByName(const TArray<FString>& NameArray, FGetProgressByName InGetProgressByNameCallback);
183
184};
200UCLASS()
201class ONLINESUBSYSTEMPICO_API UOnlinePicoAchievementsFunction : public UBlueprintFunctionLibrary
202{
203 GENERATED_BODY()
204
205
206public:
207
220 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Achievements")
221 static void PicoAddCount(UObject* WorldContextObject, const FString& Name, const FString& Count, const FString& ExtraData, FAddCount InAddCountCallback);
222
234 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Achievements")
235 static void PicoAddFields(UObject* WorldContextObject, const FString& Name, const FString& Fields, const FString& ExtraData, FAddFields InAddFieldsCallback);
236
244 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Achievements")
245 static void PicoUnlock(UObject* WorldContextObject, const FString& Name, const FString& ExtraData, FUnlock InUnlockCallback);
246
255 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Achievements")
256 static void PicoGetAllDefinitions(UObject* WorldContextObject, int32 PageIndex, int32 PageSize, FGetAllDefinitions InGetAllDefinitionsCallback);
257
267 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Achievements")
268 static void PicoGetAllProgress(UObject* WorldContextObject, int32 PageIndex, int32 PageSize, FGetAllProgress InGetAllProgressCallback);
269
277 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Achievements")
278 static void PicoGetDefinitionsByName(UObject* WorldContextObject, const TArray<FString>& NameArray, FGetDefinitionsByName InGetDefinitionsByNameCallback);
279
288 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Achievements")
289 static void PicoGetProgressByName(UObject* WorldContextObject, const TArray<FString>& NameArray, FGetProgressByName InGetProgressByNameCallback);
290
291 // get next achievement definition page
292
293 // get next achievement progress page
294};
295 // end of BP_Achievements // end of BlueprintFunction
298
299
301UCLASS(BlueprintType)
302class ONLINESUBSYSTEMPICO_API UPico_AchievementUpdate : public UObject
303{
304 GENERATED_BODY()
305
306public:
307 void InitParams(ppfAchievementUpdateHandle ppfAchievementUpdateHandle);
308
309private:
310 FString Name = FString();
311 bool JustUnlocked = false;
312public:
313
315 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Update")
316 FString GetName();
317
319 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Update")
320 bool GetJustUnlocked();
321};
322
324UCLASS(BlueprintType)
325class ONLINESUBSYSTEMPICO_API UPico_AchievementProgress : public UObject
326{
327
328 GENERATED_BODY()
329
330public:
331 void InitParams(ppfAchievementProgressHandle ppfAchievementProgressHandle);
332
333private:
334 FString Bitfield = FString();
335 long long Count = 0;
336 bool IsUnlocked = false;
337 FString Name = FString();
338 ppfID ID = 0;
339 unsigned long long UnlockTime = 0;
340 TArray<uint8> ExtraData;
341public:
342
344 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
345 FString GetBitfield();
346
348 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
349 int64 GetCount();
350
352 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
353 bool GetIsUnlocked();
354
356 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
357 FString GetName();
358
360 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
361 FString GetUnlockTime();
362
364 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
365 FDateTime GetUnlockDateTime();
366
368 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
369 FString GetID();
370
372 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
373 TArray<uint8> GetExtraData();
374
376 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
377 FString GetExtraDataString();
378};
379
381UCLASS(BlueprintType)
382class ONLINESUBSYSTEMPICO_API UPico_AchievementDefinition : public UObject
383{
384
385 GENERATED_BODY()
386
387public:
388 void InitParams(ppfAchievementDefinition* ppfAchievementDefinitionHandle);
389
390private:
391 EAchievementType Type = EAchievementType::Unknown;
392 unsigned int BitfieldLength = 0;
393 FString Name = FString();
394 long long Target = 0;
395 FString Description = FString();
396 FString Title = FString();
397 bool IsArchived = false;
398 bool IsSecret = false;
399 ppfID ID = 0;
400 FString UnlockedDescription = FString();
402 FString LockedImageURL = FString();
403 FString UnlockedImageURL = FString();
404public:
405
407 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
408 FString GetName();
409
411 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
412 FString GetBitfieldLength();
413
415 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
416 int64 GetTarget();
417
419 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
421
423 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
424 FString GetDescription();
425
427 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
428 FString GetTitle();
429
431 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
432 bool GetIsArchived();
433
435 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
436 bool GetIsSecret();
437
439 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
440 FString GetID();
441
443 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
444 FString GetUnlockedDescription();
445
447 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
448 EAchievementWritePolicy GetWritePolicy();
449
451 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
452 FString GetLockedImageURL();
453
455 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
456 FString GetUnlockedImageURL();
457};
458
460UCLASS(BlueprintType)
461class ONLINESUBSYSTEMPICO_API UPico_AchievementProgressArray : public UObject
462{
463 GENERATED_BODY()
464private:
465 UPROPERTY()
466 TArray<UPico_AchievementProgress*> AchievementProgressArray;
467 FString NextPageParam = FString();
468 int32 Size = 0;
469 int32 TotalSize = 0;
470 bool bHasNextPage;
471public:
472 void InitParams(ppfAchievementProgressArrayHandle InppfAchievementProgressArrayHandle);
473
475 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress Array")
476 UPico_AchievementProgress* GetElement(int32 Index);
477
478
479 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress Array")
480 FString GetNextPageParam();
481
483 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress Array")
484 int32 GetSize();
485
486 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress Array")
487 int32 GetTotalSize();
488
490 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress Array")
491 bool HasNextPage();
492};
493
495UCLASS(BlueprintType)
496class ONLINESUBSYSTEMPICO_API UPico_AchievementDefinitionArray : public UObject
497{
498
499 GENERATED_BODY()
500private:
501 UPROPERTY()
502 TArray<UPico_AchievementDefinition*> AchievementDefinitionArray;
503 FString NextPageParam = FString();
504 int32 Size = 0;
505 int32 TotalSize = 0;
506 bool bHasNextPage;
507
508public:
509 void InitParams(ppfAchievementDefinitionArrayHandle InppfAchievementDefinitionArrayHandle);
510
512 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition Array")
513 UPico_AchievementDefinition* GetElement(int32 Index);
514
515 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition Array")
516 FString GetNextPageParam();
517
519 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition Array")
520 int32 GetSize();
521
522 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition Array")
523 int32 GetTotalSize();
524
526 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition Array")
527 bool HasNextPage();
528};
PicoAchievementsInterface class.
Definition: Pico_Achievements.h:56
bool GetAllDefinitions(int32 PageIndex, int32 PageSize, FGetAllDefinitions InGetAllDefinitionsCallback)
Gets the information about all achievements, including API names, descriptions, types,...
bool AddFields(const FString &Name, const FString &Fields, const FString &ExtraData, FAddFields InAddFieldsCallback)
Unlocks the bit(s) of a specified bitfield achievement. The status of the bit(s) is then unchangeable...
bool Unlock(const FString &Name, const FString &ExtraData, FUnlock InUnlockCallback)
Unlocks a specified achievement of any type even if the target for unlocking this achievement is not ...
bool GetDefinitionsByName(const TArray< FString > &NameArray, FGetDefinitionsByName InGetDefinitionsByNameCallback)
Gets the information about specified achievements, including API names, descriptions,...
bool AddCount(const FString &Name, const int64 &Count, const FString &ExtraData, FAddCount InAddCountDelegate)
Adds a count to a specified count achievement. The count will be added to the current count,...
bool GetProgressByName(const TArray< FString > &NameArray, FGetProgressByName InGetProgressByNameCallback)
Gets the user's progress on specified achievements, including API names, whether or not the achieveme...
bool GetAllProgress(int32 PageIndex, int32 PageSize, FGetAllProgress InGetAllProgressCallback)
Gets the user's progress on all achievements, including API names, whether or not the achievements ar...
OnlinePicoAchievements Blueprint Function class.
Definition: Pico_Achievements.h:202
UPico_AchievementDefinitionArray class.
Definition: Pico_Achievements.h:497
UPico_AchievementDefinition class.
Definition: Pico_Achievements.h:383
UPico_AchievementProgressArray class.
Definition: Pico_Achievements.h:462
UPico_AchievementProgress class.
Definition: Pico_Achievements.h:326
UPico_AchievementUpdate class.
Definition: Pico_Achievements.h:303
EAchievementType
The type of the achievement.
Definition: OnlineSubsystemPicoNames.h:573
EAchievementWritePolicy
The write policy of the achievement.
Definition: OnlineSubsystemPicoNames.h:582