Pico Unreal Platform SDK
Pico_Sport.h
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "UObject/NoExportTypes.h"
7#include "PPF_Platform.h"
8#include "OnlineSubsystemPicoNames.h"
9#include "OnlineSubsystemPico.h"
10#include "Pico_Sport.generated.h"
11
17
18DECLARE_LOG_CATEGORY_EXTERN(PicoSport, Log, All);
19
20
21DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetDailySummary, bool, bIsError, const FString&, ErrorMessage, UPico_SportDailySummaryArray*, SportDailySummaryArray);
22DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetSummary, bool, bIsError, const FString&, ErrorMessage, UPico_SportSummary*, SportSummary);
23DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetSportUserInfo, bool, bIsError, const FString&, ErrorMessage, UPico_SportUserInfo*, SportUserInfo);
24
36class ONLINESUBSYSTEMPICO_API FPicoSportInterface
37{
38private:
39
40 FOnlineSubsystemPico& PicoSubsystem;
41
42public:
45
46 FGetDailySummary GetDailySummaryDelegate;
47 FGetSummary GetSummaryDelegate;
48 FGetSportUserInfo GetSportUserInfoDelegate;
49
50
65 bool GetDailySummary(int64 BeginTime, int64 EndTime, FGetDailySummary InGetDailySummaryDelegate);
66
80 bool GetSummary(int64 BeginTime, int64 EndTime, FGetSummary InGetSummaryDelegate);
81
93 bool GetSportUserInfo(FGetSportUserInfo InGetSportUserInfoDelegate);
94
95
96};
97
112UCLASS()
113class ONLINESUBSYSTEMPICO_API UOnlinePicoSportFunction : public UBlueprintFunctionLibrary
114{
115 GENERATED_BODY()
116
117public:
118
134 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Sport")
135 static bool GetDailySummary(UObject* WorldContextObject, int64 BeginTime, int64 EndTime, FGetDailySummary InGetDailySummaryDelegate);
136
151 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Sport")
152 static bool GetSummary(UObject* WorldContextObject, int64 BeginTime, int64 EndTime, FGetSummary InGetSummaryDelegate);
153
166 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Sport")
167 static bool GetSportUserInfo(UObject* WorldContextObject, FGetSportUserInfo InGetSportUserInfoDelegate);
168
176 UFUNCTION(BlueprintPure, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Sport")
177 static int64 ConvertDateTimeToInt64(FDateTime InDataTime);
178
186 UFUNCTION(BlueprintPure, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Sport")
187 static FDateTime ConvertInt64ToDateTime(int64 InValue);
188};
189 // end of BP_Sport // end of BlueprintFunction
192
193UCLASS(BlueprintType)
194class ONLINESUBSYSTEMPICO_API UPico_SportDailySummary : public UObject
195{
196 GENERATED_BODY()
197public:
198 void InitParams(ppfSportDailySummary* ppfSportDailySummaryHandle);
199
200private:
201 int64 ID = -1;
202 int64 Date = -1;
203 int32 DurationInSeconds = -1;
204 int32 PlanDurationInMinutes = -1;
205 float Calorie = 0;
206 float PlanCalorie = 0;
207
208public:
209
210 // Count ID
211 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Daily Summary")
212 int64 GetID();
213
214 // Date
215 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Daily Summary")
216 int64 GetDate();
217
218 // Daily exercise duration (in seconds)
219 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Daily Summary")
220 int32 GetDurationInSeconds();
221
222 // Planned daily exercise duration (in minutes)
223 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Daily Summary")
224 int32 GetPlanDurationInMinutes();
225
226 // Calorie
227 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Daily Summary")
228 float GetCalorie();
229
230 // Plan calorie
231 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Daily Summary")
232 float GetPlanCalorie();
233};
234
235UCLASS(BlueprintType)
236class ONLINESUBSYSTEMPICO_API UPico_SportDailySummaryArray : public UObject
237{
238 GENERATED_BODY()
239public:
240 void InitParams(ppfSportDailySummaryArray* ppfSportDailySummaryArrayHandle);
241
242private:
243 UPROPERTY()
244 TArray<UPico_SportDailySummary*> SportDailySummaryArray;
245 int32 Size;
246
247public:
248
249 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Daily Summary Array")
250 int32 GetSize();
251
252 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Daily Summary Array")
253 UPico_SportDailySummary* GetElement(int32 Index);
254};
255
256UCLASS(BlueprintType)
257class ONLINESUBSYSTEMPICO_API UPico_SportSummary : public UObject
258{
259 GENERATED_BODY()
260public:
261 void InitParams(ppfSportSummary* ppfSportSummaryHandle);
262
263private:
264 int64 DurationInSeconds = -1;
265 float Calorie = 0;
266 int64 StartTime = -1;
267 int64 EndTime = -1;
268
269public:
270
271 // Daily exercise duration (in seconds)
272 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Summary")
273 int64 GetDurationInSeconds();
274
275 // Calorie
276 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Summary")
277 float GetCalorie();
278
279 // Start time
280 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Summary")
281 int64 GetStartTime();
282
283 // End time
284 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Summary")
285 int64 GetEndTime();
286};
287
288UCLASS(BlueprintType)
289class ONLINESUBSYSTEMPICO_API UPico_SportUserInfo : public UObject
290{
291 GENERATED_BODY()
292public:
293 void InitParams(ppfSportUserInfo* ppfSportUserInfoHandle);
294
295private:
296 EUserGender Gender = EUserGender::Unknow;
297 int64 Birthday = -1;
298 int32 Stature = -1;
299 int32 Weight = -1;
300 int32 SportLevel = -1;
301 int32 DailyDurationInMinutes = -1;
302 int32 DaysPerWeek = -1;
303 ESportTarget SportTarget = ESportTarget::None;
304
305public:
306
307 // Gender
308 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|User Info")
309 EUserGender GetGender();
310
311 // Birthday
312 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|User Info")
313 int64 GetBirthday();
314
315 // Stature(cm)
316 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|User Info")
317 int32 GetStature();
318
319 // Weight(kg)
320 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|User Info")
321 int32 GetWeight();
322
323 // 1-low£»2-medium£»3-high
324 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|User Info")
325 int32 GetSportLevel();
326
327 // Planned daily exercise duration (in minutes)
328 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|User Info")
329 int32 GetDailyDurationInMinutes();
330
331 // Planned days for exercise per week
332 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|User Info")
333 int32 GetDaysPerWeek();
334
335 // Exercise target: "lose weight" or "stay healthy"
336 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|User Info")
337 ESportTarget GetSportTarget();
338};
OnlineSubsystemPico class inherited from FOnlineSubsystemImpl(Unreal Engine)
Definition: OnlineSubsystemPico.h:44
PicoSportInterface class.
Definition: Pico_Sport.h:37
OnlinePicoSport Blueprint Function class.
Definition: Pico_Sport.h:114