PICO Unreal Platform SDK
Pico_Achievements.h
1// Copyright® 2015-2023 PICO Technology Co., Ltd. All rights reserved.
2#pragma once
3
4#include "CoreMinimal.h"
5#include "UObject/NoExportTypes.h"
6#include "PPF_Platform.h"
7#include "OnlineSubsystemPicoNames.h"
8#include "OnlineSubsystemPico.h"
9#include "Kismet/BlueprintFunctionLibrary.h"
10#include "Pico_Achievements.generated.h"
11
13
14DECLARE_LOG_CATEGORY_EXTERN(PicoAchievements, Log, All);
15
21
25DECLARE_DYNAMIC_DELEGATE_ThreeParams(FAddCount, bool, bIsError, const FString&, ErrorMessage, UPico_AchievementUpdate*, AchievementUpdate);
26DECLARE_DYNAMIC_DELEGATE_ThreeParams(FAddFields, bool, bIsError, const FString&, ErrorMessage, UPico_AchievementUpdate*, AchievementUpdate);
27DECLARE_DYNAMIC_DELEGATE_ThreeParams(FUnlock, bool, bIsError, const FString&, ErrorMessage, UPico_AchievementUpdate*, AchievementUpdate);
28DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetAllDefinitions, bool, bIsError, const FString&, ErrorMessage, UPico_AchievementDefinitionArray*, AchievementDefinitionArray);
29DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetAllProgress, bool, bIsError, const FString&, ErrorMessage, UPico_AchievementProgressArray*, AchievementProgressArray);
30DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetDefinitionsByName, bool, bIsError, const FString&, ErrorMessage, UPico_AchievementDefinitionArray*, AchievementDefinitionArray);
31DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetProgressByName, bool, bIsError, const FString&, ErrorMessage, UPico_AchievementProgressArray*, AchievementProgressArray);
32
44class ONLINESUBSYSTEMPICO_API FPicoAchievementsInterface
45{
46private:
47
48 FOnlineSubsystemPico& PicoSubsystem;
49
50public:
51 FPicoAchievementsInterface(FOnlineSubsystemPico& InSubsystem);
53
54 FAddCount AddCountDelegate;
55 FAddFields AddFieldsDelegate;
56 FUnlock UnlockDelegate;
57 FGetAllDefinitions GetAllDefinitionsDelegate;
58 FGetAllProgress GetAllProgressDelegate;
59 FGetDefinitionsByName GetDefinitionsByNameDelegate;
60 FGetProgressByName GetProgressByNameDelegate;
61
80 bool AddCount(const FString& Name, const int64& Count, const FString& ExtraData, FAddCount InAddCountDelegate);
81
98 bool AddFields(const FString& Name, const FString& Fields, const FString& ExtraData, FAddFields InAddFieldsCallback);
99
111 bool Unlock(const FString& Name, const FString& ExtraData, FUnlock InUnlockCallback);
112
126 bool GetAllDefinitions(int32 PageIndex, int32 PageSize, FGetAllDefinitions InGetAllDefinitionsCallback);
127
142 bool GetAllProgress(int32 PageIndex, int32 PageSize, FGetAllProgress InGetAllProgressCallback);
143
156 bool GetDefinitionsByName(const TArray<FString>& NameArray, FGetDefinitionsByName InGetDefinitionsByNameCallback);
157
171 bool GetProgressByName(const TArray<FString>& NameArray, FGetProgressByName InGetProgressByNameCallback);
172
173};
189UCLASS()
190class ONLINESUBSYSTEMPICO_API UOnlinePicoAchievementsFunction : public UBlueprintFunctionLibrary
191{
192 GENERATED_BODY()
193
194
195public:
196
209 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Achievements")
210 static void PicoAddCount(UObject* WorldContextObject, const FString& Name, const FString& Count, const FString& ExtraData, FAddCount InAddCountCallback);
211
223 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Achievements")
224 static void PicoAddFields(UObject* WorldContextObject, const FString& Name, const FString& Fields, const FString& ExtraData, FAddFields InAddFieldsCallback);
225
233 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Achievements")
234 static void PicoUnlock(UObject* WorldContextObject, const FString& Name, const FString& ExtraData, FUnlock InUnlockCallback);
235
244 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Achievements")
245 static void PicoGetAllDefinitions(UObject* WorldContextObject, int32 PageIndex, int32 PageSize, FGetAllDefinitions InGetAllDefinitionsCallback);
246
256 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Achievements")
257 static void PicoGetAllProgress(UObject* WorldContextObject, int32 PageIndex, int32 PageSize, FGetAllProgress InGetAllProgressCallback);
258
266 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Achievements")
267 static void PicoGetDefinitionsByName(UObject* WorldContextObject, const TArray<FString>& NameArray, FGetDefinitionsByName InGetDefinitionsByNameCallback);
268
277 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Achievements")
278 static void PicoGetProgressByName(UObject* WorldContextObject, const TArray<FString>& NameArray, FGetProgressByName InGetProgressByNameCallback);
279
280 // get next achievement definition page
281
282 // get next achievement progress page
283};
284 // end of BP_Achievements // end of BlueprintFunction
287
288
290UCLASS(BlueprintType)
291class ONLINESUBSYSTEMPICO_API UPico_AchievementUpdate : public UObject
292{
293 GENERATED_BODY()
294
295public:
296 void InitParams(ppfAchievementUpdateHandle ppfAchievementUpdateHandle);
297
298private:
299 FString Name = FString();
300 bool JustUnlocked = false;
301public:
302
304 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Update")
305 FString GetName();
306
308 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Update")
309 bool GetJustUnlocked();
310};
311
313UCLASS(BlueprintType)
314class ONLINESUBSYSTEMPICO_API UPico_AchievementProgress : public UObject
315{
316
317 GENERATED_BODY()
318
319public:
320 void InitParams(ppfAchievementProgressHandle ppfAchievementProgressHandle);
321
322private:
323 FString Bitfield = FString();
324 long long Count = 0;
325 bool IsUnlocked = false;
326 FString Name = FString();
327 ppfID ID = 0;
328 unsigned long long UnlockTime = 0;
329 TArray<uint8> ExtraData;
330public:
331
333 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
334 FString GetBitfield();
335
337 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
338 int64 GetCount();
339
341 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
342 bool GetIsUnlocked();
343
345 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
346 FString GetName();
347
349 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
350 FString GetUnlockTime();
351
353 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
354 FDateTime GetUnlockDateTime();
355
357 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
358 FString GetID();
359
361 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
362 TArray<uint8> GetExtraData();
363
365 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress")
366 FString GetExtraDataString();
367};
368
370UCLASS(BlueprintType)
371class ONLINESUBSYSTEMPICO_API UPico_AchievementDefinition : public UObject
372{
373
374 GENERATED_BODY()
375
376public:
377 void InitParams(ppfAchievementDefinition* ppfAchievementDefinitionHandle);
378
379private:
380 EAchievementType Type = EAchievementType::Unknown;
381 unsigned int BitfieldLength = 0;
382 FString Name = FString();
383 long long Target = 0;
384 FString Description = FString();
385 FString Title = FString();
386 bool IsArchived = false;
387 bool IsSecret = false;
388 ppfID ID = 0;
389 FString UnlockedDescription = FString();
391 FString LockedImageURL = FString();
392 FString UnlockedImageURL = FString();
393public:
394
396 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
397 FString GetName();
398
400 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
401 FString GetBitfieldLength();
402
404 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
405 int64 GetTarget();
406
408 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
410
412 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
413 FString GetDescription();
414
416 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
417 FString GetTitle();
418
420 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
421 bool GetIsArchived();
422
424 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
425 bool GetIsSecret();
426
428 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
429 FString GetID();
430
432 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
433 FString GetUnlockedDescription();
434
436 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
437 EAchievementWritePolicy GetWritePolicy();
438
440 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
441 FString GetLockedImageURL();
442
444 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition")
445 FString GetUnlockedImageURL();
446};
447
449UCLASS(BlueprintType)
450class ONLINESUBSYSTEMPICO_API UPico_AchievementProgressArray : public UObject
451{
452 GENERATED_BODY()
453private:
454 UPROPERTY()
455 TArray<UPico_AchievementProgress*> AchievementProgressArray;
456 int32 Size = 0;
457 int32 TotalSize = 0;
458 bool bHasNextPage;
459public:
460 void InitParams(ppfAchievementProgressArrayHandle InppfAchievementProgressArrayHandle);
461
463 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress Array")
464 UPico_AchievementProgress* GetElement(int32 Index);
465
466
468 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress Array")
469 int32 GetSize();
470
471 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress Array")
472 int32 GetTotalSize();
473
475 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Progress Array")
476 bool HasNextPage();
477};
478
480UCLASS(BlueprintType)
481class ONLINESUBSYSTEMPICO_API UPico_AchievementDefinitionArray : public UObject
482{
483
484 GENERATED_BODY()
485private:
486 UPROPERTY()
487 TArray<UPico_AchievementDefinition*> AchievementDefinitionArray;
488 int32 Size = 0;
489 int32 TotalSize = 0;
490 bool bHasNextPage;
491
492public:
493 void InitParams(ppfAchievementDefinitionArrayHandle InppfAchievementDefinitionArrayHandle);
494
496 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition Array")
497 UPico_AchievementDefinition* GetElement(int32 Index);
498
500 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition Array")
501 int32 GetSize();
502
503 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition Array")
504 int32 GetTotalSize();
505
507 UFUNCTION(BlueprintPure, Category = "Pico Platform|Achievements|Achievement Definition Array")
508 bool HasNextPage();
509};
PicoAchievementsInterface class.
Definition: Pico_Achievements.h:45
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:191
UPico_AchievementDefinitionArray class.
Definition: Pico_Achievements.h:482
UPico_AchievementDefinition class.
Definition: Pico_Achievements.h:372
UPico_AchievementProgressArray class.
Definition: Pico_Achievements.h:451
UPico_AchievementProgress class.
Definition: Pico_Achievements.h:315
UPico_AchievementUpdate class.
Definition: Pico_Achievements.h:292
EAchievementType
The type of the achievement.
Definition: OnlineSubsystemPicoNames.h:561
EAchievementWritePolicy
The write policy of the achievement.
Definition: OnlineSubsystemPicoNames.h:570