LEAP Documentation 40220
Documentation for the LEAP project
CosmeticAssetBase.h
Go to the documentation of this file.
1// Copyright Blue Isle Studios Inc 2018. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Engine/DataTable.h"
7#include "Engine/DataAsset.h"
8#include "PlayerStructs.h"
9#include "CosmeticAssetBase.generated.h"
10
11class USkeletalMesh;
12class UMaterial;
13class UParticleSystem;
14class UMaterialInstance;
15class UAfflictionInstance;
17class UWeaponInstance;
18
19UENUM(BlueprintType)
20enum class ECosmeticType : uint8
21{
22 Graffiti = 0,
23 WeaponSkins = 1,
24 KeyChain = 2,
25 Taunt = 3,
26 AvatarBorder = 4,
27 Banner = 5,
28 PlayerSkin = 6,
29 Loadout = 7,
30 Perk = 8,
31 VehicleSkins = 9,
32};
33
34USTRUCT(BlueprintType)
36{
37 GENERATED_USTRUCT_BODY()
39 FEquipInfo(ECosmeticType TypeIn, uint16 ShortCodeIn, uint16 EquipCodeIn) : Type(TypeIn), ShortCodeID(ShortCodeIn), EquipCodeID(EquipCodeIn) {}
40public:
41 UPROPERTY()
43 UPROPERTY()
44 uint16 ShortCodeID = 0;
45 UPROPERTY()
46 uint16 EquipCodeID = 0;
47};
48
49UENUM(BlueprintType)
50enum class ECosmeticCategory : uint8
51{
52 General = 0,
53 Class = 1,
54 Weapon = 2,
55 Vehicle = 3,
56 NONE = 4,
57};
58
59UENUM(BlueprintType)
60enum class EPerkType : uint8
61{
62 GENERAL = 0,
63 CLASS = 1,
64 WEAPON = 2,
65 PLAYER = 3,
66 NONE = 4,
67};
68
69USTRUCT(BlueprintType)
71{
72 GENERATED_USTRUCT_BODY()
73public:
74
75 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Perk)
76 TSubclassOf<UAfflictionInstance> Affliction;
77 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Perk)
78 FString PerkID;
79 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Perk)
80 bool bConsumable = false;
81};
82
83USTRUCT(BlueprintType)
85{
86 GENERATED_USTRUCT_BODY()
87 UPROPERTY(EditAnywhere)
88 TSoftObjectPtr<USkeletalMesh> BodyMesh1P = NULL;
89 UPROPERTY(EditAnywhere)
90 TSoftObjectPtr<USkeletalMesh> BodyMesh3P = NULL;
91};
92
93UENUM(BlueprintType)
94enum class ERarity : uint8
95{
96 NONE = 0,
97 COMMON = 1,
98 UNCOMMON = 2,
99 RARE = 3,
100 EPIC = 4,
101 LEGENDARY = 5,
102};
103
104UCLASS(BlueprintType)
105class PROJECTX_API UCosmeticAssetBase : public UDataAsset
106{
107 GENERATED_BODY()
108public:
109 UPROPERTY(EditAnywhere, BlueprintReadWrite)
110 TSoftObjectPtr<UTexture2D> ItemIcon = NULL;
111 UPROPERTY(EditAnywhere, BlueprintReadWrite)
112 bool bDefaultEquipped = false;
113 FString ShortCode = "";
114
115 virtual const FString& GetShortCode() const { return ShortCode; }
116};
117
118UCLASS()
120{
121 GENERATED_BODY()
122public:
123 UPROPERTY(EditAnywhere)
125};
126
127UCLASS()
128class PROJECTX_API UCosmeticHeadAsset : public UCosmeticAssetBase
129{
130 GENERATED_BODY()
131public:
132 UPROPERTY(EditAnywhere)
133 TSoftObjectPtr<USkeletalMesh> HeadMesh = NULL;
134
135 UPROPERTY(EditAnywhere)
136 TArray<TSoftObjectPtr<UMaterialInstance>> HeadMaterials = TArray<TSoftObjectPtr<UMaterialInstance>>();
137};
138
139UCLASS()
141{
142 GENERATED_BODY()
143public:
144 UPROPERTY(EditAnywhere)
145 TSoftObjectPtr<USkeletalMesh> HeadMesh = NULL;
146 UPROPERTY(EditAnywhere)
147 TSoftObjectPtr<USkeletalMesh> BodyMesh3P = NULL;
148 UPROPERTY(EditAnywhere)
149 TSoftObjectPtr<USkeletalMesh> BodyMesh1P = NULL;
150 UPROPERTY(EditAnywhere)
151 TSoftObjectPtr<USkeletalMesh> Equipment = NULL;
152 UPROPERTY(EditAnywhere)
153 TArray<TSoftObjectPtr<UMaterialInstance>> HeadMaterials = TArray<TSoftObjectPtr<UMaterialInstance>>();
154 UPROPERTY(EditAnywhere)
155 TArray<TSoftObjectPtr<UMaterialInstance>>BodyMaterials = TArray<TSoftObjectPtr<UMaterialInstance>>();
156 UPROPERTY(EditAnywhere)
157 TArray<TSoftObjectPtr<UMaterialInstance>>Body1PMaterials = TArray<TSoftObjectPtr<UMaterialInstance>>();
158 UPROPERTY(EditAnywhere)
159 TArray<TSoftObjectPtr<UMaterialInstance>>EquipmentMaterials = TArray<TSoftObjectPtr<UMaterialInstance>>();
160};
161
162UCLASS()
163class PROJECTX_API ULoadoutAssetWeapon : public UCosmeticAssetBase
164{
165 GENERATED_BODY()
166public:
167 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
168 TSubclassOf<UWeaponInstance> Weapon = NULL;
169
170 virtual const FString& GetShortCode() const override;
171};
172
173UCLASS(Blueprintable)
174class PROJECTX_API UCosmeticColourAsset : public UCosmeticAssetBase
175{
176 GENERATED_BODY()
177public:
178 UFUNCTION(BlueprintCallable)
179 void GetColor(FLinearColor& ColorOut) const { ColorOut = Color; }
180
181 UPROPERTY(EditAnywhere)
182 FLinearColor Color = FLinearColor();
183
184 UPROPERTY(EditAnywhere, Meta = (Bitmask, BitmaskEnum = "EColourSlot"))
185 uint8 ColorFlags = UINT8_MAX;
186};
187
188UCLASS()
190{
191 GENERATED_BODY()
192public:
193 UPROPERTY(EditAnywhere)
194 TSoftObjectPtr<USkeletalMesh> WeaponMesh = NULL;
195};
196
197UCLASS()
198class PROJECTX_API UCosmeticTextureAsset : public UCosmeticAssetBase
199{
200 GENERATED_BODY()
201public:
202 UPROPERTY(EditAnywhere, BlueprintReadWrite)
203 TSoftObjectPtr<UTexture> Texture = NULL;
204};
205
206UCLASS()
208{
209 GENERATED_BODY()
210public:
211 UPROPERTY(EditAnywhere,BlueprintReadWrite)
212 TSoftObjectPtr<UMaterialInstance> Material = NULL;
213};
214
215UCLASS()
217{
218 GENERATED_BODY()
219public:
220 UPROPERTY(EditAnywhere, BlueprintReadWrite)
221 TArray<TSoftObjectPtr<UMaterialInstance>> VehicleSkinMaterials = TArray<TSoftObjectPtr<UMaterialInstance>>();
222 UPROPERTY(EditAnywhere, BlueprintReadWrite)
223 TSoftObjectPtr<UParticleSystem> Particle = NULL;
224 UPROPERTY(EditAnywhere, BlueprintReadWrite)
225 TSoftObjectPtr<USkeletalMesh> VehicleSkinMesh = NULL;
226};
227
228UCLASS()
230{
231 GENERATED_BODY()
232public:
233 UPROPERTY(EditAnywhere, BlueprintReadWrite)
234 TArray<TSoftObjectPtr<UMaterialInstance>> WeaponSkinMaterials = TArray<TSoftObjectPtr<UMaterialInstance>>();
235 UPROPERTY(EditAnywhere, BlueprintReadWrite)
236 TSoftObjectPtr<UParticleSystem> Particle = NULL;
237 UPROPERTY(EditAnywhere, BlueprintReadWrite)
238 TSoftObjectPtr<USkeletalMesh> WeaponSkinMesh1P = NULL;
239 UPROPERTY(EditAnywhere, BlueprintReadWrite)
240 TSoftObjectPtr<USkeletalMesh> WeaponSkinMesh3P = NULL;
241};
242
243UCLASS()
245{
246 GENERATED_BODY()
247public:
248 UPROPERTY(EditAnywhere, BlueprintReadWrite)
249 TSoftObjectPtr<USkeletalMesh> KeyChainMesh = NULL;
250 UPROPERTY(EditAnywhere, BlueprintReadWrite)
251 TArray<TSoftObjectPtr<UMaterialInstance>> KeyChainMaterials = TArray<TSoftObjectPtr<UMaterialInstance>>();
252};
253
254UCLASS()
255class PROJECTX_API UCosmeticTauntAsset : public UCosmeticAssetBase
256{
257 GENERATED_BODY()
258public:
259 UPROPERTY(EditAnywhere, BlueprintReadWrite)
260 UAnimMontage* TauntMontage = NULL;
261};
262
263UCLASS()
265{
266 GENERATED_BODY()
267public:
268 UPROPERTY(EditAnywhere,BlueprintReadWrite)
269 TSoftObjectPtr<UParticleSystem> Particle = NULL;
270
271 UPROPERTY(EditAnywhere,BlueprintReadWrite)
272 TSoftObjectPtr<class USoundCue> Sound = NULL;
273};
274
275UCLASS()
276class PROJECTX_API UCosmeticTrailAsset : public UCosmeticAssetBase
277{
278 GENERATED_BODY()
279public:
280 UPROPERTY(EditAnywhere,BlueprintReadWrite)
281 UParticleSystem* Ally = NULL;
282 UPROPERTY(EditAnywhere,BlueprintReadWrite)
283 UParticleSystem* Enemy = NULL;
284};
285
286USTRUCT(BlueprintType)
287struct FCosmeticMasterTable : public FTableRowBase
288{
289 GENERATED_BODY()
290
291 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
292 FText Displayname;
293 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
295 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
297 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
298 UDataTable* CosmeticTable = NULL;
299};
300
301USTRUCT(BlueprintType)
303{
304 GENERATED_USTRUCT_BODY()
305
306 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
307 TSubclassOf<class AProjectXCharacter> CharacterClass;
308 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
309 TSubclassOf<class UWeaponInstance> WeaponClass;
310 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
311 uint8 SlotID;
312 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
314};
315
316USTRUCT(BlueprintType)
317struct FCosmeticTable : public FTableRowBase
318{
319 GENERATED_BODY()
320
321 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
322 FString ItemShortCode = "";
323 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
324 FText DisplayName;
325 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
326 bool bDefaultUnlocked = false;
327 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
328 bool bStackable = false;
329 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
330 UCosmeticAssetBase* Item = NULL;
331 /*Constructs Equip Keys made from a option character class, Weapon Class, Slot Number, PerkType
332 (CharacterClass : WeaponClass : SlotID(EquipSlot,PerkSlot, Taunt Slot) : PerkType
333 */
334 UPROPERTY(EditAnywhere,BlueprintReadWrite, Category = Customization)
335 TArray<FEquipKeys> DefaultEquipKeys;
336 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
338 virtual const FString& GetShortCode() const { return ItemShortCode;}
339};
340
341USTRUCT(BlueprintType)
343{
344 GENERATED_BODY()
345 virtual const FString& GetShortCode() const override;
346};
347
348USTRUCT(BlueprintType)
350{
351 GENERATED_BODY()
352 virtual const FString& GetShortCode() const override;
353};
354
355USTRUCT(BlueprintType)
356struct FCosmeticClassTable : public FTableRowBase
357{
358 GENERATED_BODY()
359
360 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
361 FText Displayname;
362 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
363 UDataTable* CosmeticTable = NULL;
364};
365
366USTRUCT(BlueprintType)
367struct FChallengeTable : public FTableRowBase
368{
369 GENERATED_BODY()
370
371 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
372 FText DisplayName;
373 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
374 FText Description;
375};
376
377USTRUCT(BlueprintType)
378struct FLoadoutClassTable : public FTableRowBase
379{
380 GENERATED_BODY()
381
382 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
383 TSubclassOf<UObject> Class;
384 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
385 UDataTable* LoadoutTable = NULL;
386};
387
388USTRUCT(BlueprintType)
389struct FLoadoutTable : public FTableRowBase
390{
391 GENERATED_BODY()
392 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
393 int Experience = 0;
394 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
395 int Currency = 0;
396 UPROPERTY(EditAnywhere, BlueprintReadOnly)
397 TSoftObjectPtr<UTexture2D> Badge;
398 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
399 TArray<UCosmeticAssetBase*> LoadoutItem;
400};
401
402
403UCLASS(BlueprintType)
404class PROJECTX_API UPerkAssetBase : public UCosmeticAssetBase
405{
406 GENERATED_BODY()
407public:
408 UPROPERTY(EditAnywhere, BlueprintReadWrite)
409 TSoftObjectPtr<UTexture2D> PerkIcon = NULL;
410 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Perk)
411 FText PerkInfo;
412 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Perk)
413 FText PerkName;
414 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Perk)
415 FPerkInfo PerkStruct;
416 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Perk)
417 float PerkNumber = INDEX_NONE;
418 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
419 bool bDefaultUnlocked = false;
420 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
422
423 virtual const FString& GetShortCode() const override;
424};
425
426USTRUCT(BlueprintType)
427struct FPerkMasterTable : public FTableRowBase
428{
429 GENERATED_BODY()
430
431 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
432 EPerkType PerkType;
433 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
434 UDataTable* PerkTable = NULL;
435};
436
437USTRUCT(BlueprintType)
438struct FPerkClassTable : public FTableRowBase
439{
440 GENERATED_BODY()
441
442 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
443 TSubclassOf<AProjectXCharacter> CharacterClass;
444 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
445 UDataTable* PerkTable = NULL;
446};
447
448USTRUCT(BlueprintType)
449struct FPerkWeaponTable : public FTableRowBase
450{
451 GENERATED_BODY()
452
453 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
454 TSubclassOf<UWeaponInstance> WeaponClass;
455 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
456 UDataTable* PerkTable = NULL;
457};
458
459USTRUCT(BlueprintType)
461{
462 GENERATED_BODY()
463
464 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
466};
467
468USTRUCT(BlueprintType)
469struct FRarityWeightTable : public FTableRowBase
470{
471 GENERATED_BODY()
472
473 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
475 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Customization)
476 float Weight = 0.0f;
477};
EPerkType
Definition: CosmeticAssetBase.h:61
ERarity
Definition: CosmeticAssetBase.h:95
ECosmeticType
Definition: CosmeticAssetBase.h:21
ECosmeticCategory
Definition: CosmeticAssetBase.h:51
EColourSlot
Definition: CosmeticsManager.h:153
Definition: ProjectXCharacter.h:128
Definition: CosmeticAssetBase.h:106
Definition: CosmeticAssetBase.h:120
Definition: CosmeticAssetBase.h:175
Definition: CosmeticAssetBase.h:265
Definition: CosmeticAssetBase.h:129
Definition: CosmeticAssetBase.h:245
Definition: CosmeticAssetBase.h:208
Definition: CosmeticAssetBase.h:141
Definition: CosmeticAssetBase.h:256
Definition: CosmeticAssetBase.h:199
Definition: CosmeticAssetBase.h:277
Definition: CosmeticAssetBase.h:217
Definition: CosmeticAssetBase.h:190
Definition: CosmeticAssetBase.h:230
Definition: CosmeticAssetBase.h:164
Definition: CosmeticAssetBase.h:405
Definition: WeaponInstance.h:220
Definition: CosmeticAssetBase.h:85
Definition: CosmeticAssetBase.h:368
Definition: CosmeticAssetBase.h:357
Definition: CosmeticAssetBase.h:288
Definition: CosmeticAssetBase.h:318
Definition: CosmeticAssetBase.h:343
Definition: CosmeticAssetBase.h:350
Definition: CosmeticAssetBase.h:36
FEquipInfo(ECosmeticType TypeIn, uint16 ShortCodeIn, uint16 EquipCodeIn)
Definition: CosmeticAssetBase.h:39
Definition: CosmeticAssetBase.h:303
Definition: CosmeticAssetBase.h:379
Definition: CosmeticAssetBase.h:390
Definition: CosmeticAssetBase.h:439
Definition: CosmeticAssetBase.h:71
Definition: CosmeticAssetBase.h:428
Definition: CosmeticAssetBase.h:461
Definition: CosmeticAssetBase.h:450
Definition: CosmeticAssetBase.h:470