Space Plunder
Loading...
Searching...
No Matches
ALSCharacterStructLibrary.h
Go to the documentation of this file.
1// Copyright: Copyright (C) 2022 Doğa Can Yanıkoğlu
2// Source Code: https://github.com/dyanikoglu/ALS-Community
3
4
5#pragma once
6
7#include "CoreMinimal.h"
8#include "Engine/DataTable.h"
9#include "PhysicalMaterials/PhysicalMaterial.h"
10#include "Materials/MaterialInterface.h"
12
13#include "ALSCharacterStructLibrary.generated.h"
14
15
16DECLARE_STATS_GROUP(TEXT("ALS Stat Group"), STATGROUP_ALS, STATCAT_Advanced)
17// DECLARE_CYCLE_STAT_EXTERN(TEXT("ALS Animations (All Behaviors)"), STATGROUP_ALS_Animations, STATGROUP_ALS, ALSV4_CPP_API);
18
19
20class UCurveVector;
21class UAnimMontage;
22class UAnimSequenceBase;
23class UCurveFloat;
24class UNiagaraSystem;
25class UMaterialInterface;
26class USoundBase;
27class UPrimitiveComponent;
28
29USTRUCT(BlueprintType)
31{
32 GENERATED_BODY()
33
34 UPROPERTY(EditAnywhere, Category = "Character Struct Library")
35 FTransform Transform = FTransform::Identity;
36
37 UPROPERTY(EditAnywhere, Category = "Character Struct Library")
38 TObjectPtr<UPrimitiveComponent> Component = nullptr;
39};
40
41USTRUCT(BlueprintType)
43{
44 GENERATED_BODY()
45
46 UPROPERTY(EditAnywhere, Category = "Camera")
47 float TargetArmLength = 0.0f;
48
49 UPROPERTY(EditAnywhere, Category = "Camera")
50 FVector SocketOffset = FVector::ZeroVector;;
51
52 UPROPERTY(EditAnywhere, Category = "Camera")
53 float LagSpeed = 0.0f;
54
55 UPROPERTY(EditAnywhere, Category = "Camera")
56 float RotationLagSpeed = 0.0f;
57
58 UPROPERTY(EditAnywhere, Category = "Camera")
59 bool bDoCollisionTest = true;
60};
61
62USTRUCT(BlueprintType)
64{
65 GENERATED_BODY()
66
67 UPROPERTY(EditAnywhere, Category = "Camera")
69
70 UPROPERTY(EditAnywhere, Category = "Camera")
72
73 UPROPERTY(EditAnywhere, Category = "Camera")
75
76 UPROPERTY(EditAnywhere, Category = "Camera")
78
79 UPROPERTY(EditAnywhere, Category = "Camera")
81
82};
83
84USTRUCT(BlueprintType)
86{
87 GENERATED_BODY()
88
89 UPROPERTY(EditAnywhere, Category = "Camera")
91
92 UPROPERTY(EditAnywhere, Category = "Camera")
94
95 UPROPERTY(EditAnywhere, Category = "Camera")
97};
98
99USTRUCT(BlueprintType)
101{
102 GENERATED_BODY()
103
104 UPROPERTY(EditAnywhere, Category = "Mantle System")
105 TObjectPtr<UAnimMontage> AnimMontage = nullptr;
106
107 UPROPERTY(EditAnywhere, Category = "Mantle System")
108 TObjectPtr<UCurveVector> PositionCorrectionCurve = nullptr;
109
110 UPROPERTY(EditAnywhere, Category = "Mantle System")
111 FVector StartingOffset = FVector::ZeroVector;;
112
113 UPROPERTY(EditAnywhere, Category = "Mantle System")
114 float LowHeight = 0.0f;
115
116 UPROPERTY(EditAnywhere, Category = "Mantle System")
117 float LowPlayRate = 0.0f;
118
119 UPROPERTY(EditAnywhere, Category = "Mantle System")
120 float LowStartPosition = 0.0f;
121
122 UPROPERTY(EditAnywhere, Category = "Mantle System")
123 float HighHeight = 0.0f;
124
125 UPROPERTY(EditAnywhere, Category = "Mantle System")
126 float HighPlayRate = 0.0f;
127
128 UPROPERTY(EditAnywhere, Category = "Mantle System")
129 float HighStartPosition = 0.0f;
130};
131
132USTRUCT(BlueprintType)
134{
135 GENERATED_BODY()
136
137 UPROPERTY(EditAnywhere, Category = "Mantle System")
138 TObjectPtr<UAnimMontage> AnimMontage = nullptr;
139
140 UPROPERTY(EditAnywhere, Category = "Mantle System")
141 TObjectPtr<UCurveVector> PositionCorrectionCurve = nullptr;
142
143 UPROPERTY(EditAnywhere, Category = "Mantle System")
144 float StartingPosition = 0.0f;
145
146 UPROPERTY(EditAnywhere, Category = "Mantle System")
147 float PlayRate = 0.0f;
148
149 UPROPERTY(EditAnywhere, Category = "Mantle System")
150 FVector StartingOffset = FVector::ZeroVector;
151};
152
153USTRUCT(BlueprintType)
155{
156 GENERATED_BODY()
157
158 UPROPERTY(EditAnywhere, Category = "Mantle System")
159 float MaxLedgeHeight = 0.0f;
160
161 UPROPERTY(EditAnywhere, Category = "Mantle System")
162 float MinLedgeHeight = 0.0f;
163
164 UPROPERTY(EditAnywhere, Category = "Mantle System")
165 float ReachDistance = 0.0f;
166
167 UPROPERTY(EditAnywhere, Category = "Mantle System")
168 float ForwardTraceRadius = 0.0f;
169
170 UPROPERTY(EditAnywhere, Category = "Mantle System")
171 float DownwardTraceRadius = 0.0f;
172};
173
174USTRUCT(BlueprintType)
176{
177 GENERATED_BODY()
178
179 UPROPERTY(EditAnywhere, Category = "Movement Settings")
180 float WalkSpeed = 0.0f;
181
182 UPROPERTY(EditAnywhere, Category = "Movement Settings")
183 float RunSpeed = 0.0f;
184
185 UPROPERTY(EditAnywhere, Category = "Movement Settings")
186 float SprintSpeed = 0.0f;
187
188 UPROPERTY(EditAnywhere, Category = "Movement Settings")
189 float SlideSpeed = 0.0f;
190
191 UPROPERTY(EditAnywhere, Category = "Movement Settings")
192 TObjectPtr<UCurveVector> MovementCurve = nullptr;
193
194 UPROPERTY(EditAnywhere, Category = "Movement Settings")
195 TObjectPtr<UCurveFloat> RotationRateCurve = nullptr;
196
197 float GetSpeedForGait(const EALSGait Gait) const
198 {
199 switch (Gait)
200 {
202 return RunSpeed;
204 return SprintSpeed;
206 return WalkSpeed;
208 return SlideSpeed;
209 default:
210 return RunSpeed;
211 }
212 }
213};
214
215USTRUCT(BlueprintType)
217{
218 GENERATED_BODY()
219
220 UPROPERTY(EditAnywhere, Category = "Movement Settings")
222
223 UPROPERTY(EditAnywhere, Category = "Movement Settings")
225
226 UPROPERTY(EditAnywhere, Category = "Movement Settings")
228
229};
230
231USTRUCT(BlueprintType)
232struct FALSMovementStateSettings : public FTableRowBase
233{
234 GENERATED_BODY()
235
236 UPROPERTY(EditAnywhere, Category = "Movement Settings")
238
239 UPROPERTY(EditAnywhere, Category = "Movement Settings")
241
242 UPROPERTY(EditAnywhere, Category = "Movement Settings")
244};
245
246USTRUCT(BlueprintType)
248{
249 GENERATED_BODY()
250
251 UPROPERTY(EditAnywhere, Category = "Rotation System")
252 TObjectPtr<UAnimSequenceBase> Animation = nullptr;
253
254 UPROPERTY(EditAnywhere, Category = "Rotation System")
255 FName SlotName;
256
257 UPROPERTY(EditAnywhere, Category = "Rotation System")
258 float SlowTurnRate = 90.0f;
259
260 UPROPERTY(EditAnywhere, Category = "Rotation System")
261 float FastTurnRate = 90.0f;
262
263 UPROPERTY(EditAnywhere, Category = "Rotation System")
264 float SlowPlayRate = 1.0f;
265
266 UPROPERTY(EditAnywhere, Category = "Rotation System")
267 float FastPlayRate = 1.0f;
268};
269
270USTRUCT(BlueprintType)
271struct FALSHitFX : public FTableRowBase
272{
273 GENERATED_BODY()
274
275 UPROPERTY(EditAnywhere, Category = "Surface")
276 TEnumAsByte<enum EPhysicalSurface> SurfaceType = EPhysicalSurface::SurfaceType_Default;
277
278 UPROPERTY(EditAnywhere, Category = "Sound")
279 TSoftObjectPtr<USoundBase> Sound = nullptr;
280
281 UPROPERTY(EditAnywhere, Category = "Sound")
283
284 UPROPERTY(EditAnywhere, Category = "Sound", meta = (EditCondition = "SoundSpawnType == EALSSpawnType::Attached"))
285 TEnumAsByte<enum EAttachLocation::Type> SoundAttachmentType = EAttachLocation::KeepRelativeOffset;
286
287 UPROPERTY(EditAnywhere, Category = "Sound")
288 FVector SoundLocationOffset = FVector::ZeroVector;
289
290 UPROPERTY(EditAnywhere, Category = "Sound")
291 FRotator SoundRotationOffset = FRotator::ZeroRotator;
292
293 UPROPERTY(EditAnywhere, Category = "Decal")
294 TSoftObjectPtr<UMaterialInterface> DecalMaterial = nullptr;
295
296 UPROPERTY(EditAnywhere, Category = "Decal")
298
299 UPROPERTY(EditAnywhere, Category = "Decal", meta = (EditCondition = "DecalSpawnType == EALSSpawnType::Attached"))
300 TEnumAsByte<enum EAttachLocation::Type> DecalAttachmentType = EAttachLocation::KeepRelativeOffset;;
301
302 UPROPERTY(EditAnywhere, Category = "Decal")
303 float DecalLifeSpan = 10.0f;
304
305 UPROPERTY(EditAnywhere, Category = "Decal")
306 FVector DecalSize = FVector::ZeroVector;
307
308 UPROPERTY(EditAnywhere, Category = "Decal")
309 FVector DecalLocationOffset = FVector::ZeroVector;
310
311 UPROPERTY(EditAnywhere, Category = "Decal")
312 FRotator DecalRotationOffset = FRotator::ZeroRotator;
313
314 UPROPERTY(EditAnywhere, Category = "Niagara")
315 TSoftObjectPtr<UNiagaraSystem> NiagaraSystem;
316
317 UPROPERTY(EditAnywhere, Category = "Niagara")
319
320 UPROPERTY(EditAnywhere, Category = "Niagara", meta = (EditCondition = "NiagaraSpawnType == EALSSpawnType::Attached"))
321 TEnumAsByte<enum EAttachLocation::Type> NiagaraAttachmentType = EAttachLocation::KeepRelativeOffset;
322
323 UPROPERTY(EditAnywhere, Category = "Niagara")
324 FVector NiagaraLocationOffset = FVector::ZeroVector;
325
326 UPROPERTY(EditAnywhere, Category = "Niagara")
327 FRotator NiagaraRotationOffset = FRotator::ZeroRotator;
328};
EALSGait
Definition ALSCharacterEnumLibrary.h:29
EALSSpawnType
Definition ALSCharacterEnumLibrary.h:178
DECLARE_STATS_GROUP(TEXT("LineOfSight Stat Group"), STATGROUP_LineOfSight, STATCAT_Advanced)
Definition ALSCharacterStructLibrary.h:64
Definition ALSCharacterStructLibrary.h:43
Definition ALSCharacterStructLibrary.h:86
Definition ALSCharacterStructLibrary.h:31
Definition ALSCharacterStructLibrary.h:272
Definition ALSCharacterStructLibrary.h:101
Definition ALSCharacterStructLibrary.h:134
Definition ALSCharacterStructLibrary.h:155
Definition ALSCharacterStructLibrary.h:176
Definition ALSCharacterStructLibrary.h:217
Definition ALSCharacterStructLibrary.h:233
Definition ALSCharacterStructLibrary.h:248