#pragma once

/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/

// Package: Commons

#include "Basic.hpp"

#include "Engine_classes.hpp"


namespace SDK
{

// Class Commons.BHUD
// 0x0270 (0x0628 - 0x03B8)
class ABHUD : public AHUD
{
public:
	class UTexture2D*                             CrosshairTex;                                      // 0x03B8(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bDrawFPS;                                          // 0x03C0(0x0001)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bDrawFocus;                                        // 0x03C1(0x0001)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_3C2[0x266];                                    // 0x03C2(0x0266)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	float GetAvgFps() const;
	int32 GetHitches() const;
	int32 GetLastFrameActorsCount() const;

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("BHUD")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"BHUD")
	}
	static class ABHUD* GetDefaultObj()
	{
		return GetDefaultObjImpl<ABHUD>();
	}
};
DUMPER7_ASSERTS_ABHUD;

// Class Commons.CommonsGameplayStatics
// 0x0000 (0x0028 - 0x0028)
class UCommonsGameplayStatics final : public UBlueprintFunctionLibrary
{
public:
	static void DelayTicks(class UObject* WorldContextObject, int32 Ticks, const struct FLatentActionInfo& LatentInfo);
	static bool IsBuildEditor();
	static bool IsBuildShipping();
	static bool IsButtonBottomForAccept();
	static bool IsButtonRightForAccept();
	static bool IsCommandlet();
	static bool IsConsolePlatform();
	static bool IsLinuxPlatform();
	static bool IsMacPlatform();
	static bool IsPIE();
	static bool IsPs4Platform();
	static bool IsPS5Ext();
	static bool IsPs5Platform();
	static bool IsScarletPlatform();
	static bool IsSonyPlatform();
	static bool IsSwitchPlatform();
	static bool IsWindowsPlatform();
	static bool IsXLockhart();
	static bool IsXOnePlatform();
	static bool IsXPlatform();
	static bool IsXScorpio();
	static bool IsXSXPlatform();
	static void PlayGameplaySound2D(const class UObject* WorldContextObject, class USoundBase* Sound, float VolumeMultiplier, float PitchMultiplier, float StartTime, class USoundConcurrency* ConcurrencySettings, class AActor* OwningActor);
	static void PostFinalizeActorComponentCreation(class AActor* Actor, class UActorComponent* Component);
	static class UAudioComponent* SpawnGameplaySound2D(const class UObject* WorldContextObject, class USoundBase* Sound, float VolumeMultiplier, float PitchMultiplier, float StartTime, class USoundConcurrency* ConcurrencySettings, bool PersistAcrossLevelTransition, bool AutoDestroy);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("CommonsGameplayStatics")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"CommonsGameplayStatics")
	}
	static class UCommonsGameplayStatics* GetDefaultObj()
	{
		return GetDefaultObjImpl<UCommonsGameplayStatics>();
	}
};
DUMPER7_ASSERTS_UCommonsGameplayStatics;

// Class Commons.CommonsStatics
// 0x0000 (0x0028 - 0x0028)
class UCommonsStatics final : public UBlueprintFunctionLibrary
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("CommonsStatics")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"CommonsStatics")
	}
	static class UCommonsStatics* GetDefaultObj()
	{
		return GetDefaultObjImpl<UCommonsStatics>();
	}
};
DUMPER7_ASSERTS_UCommonsStatics;

// Class Commons.EditorTickableActor
// 0x0000 (0x02C8 - 0x02C8)
class AEditorTickableActor final : public AActor
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("EditorTickableActor")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"EditorTickableActor")
	}
	static class AEditorTickableActor* GetDefaultObj()
	{
		return GetDefaultObjImpl<AEditorTickableActor>();
	}
};
DUMPER7_ASSERTS_AEditorTickableActor;

// Class Commons.EditorTickableComponent
// 0x0018 (0x00B8 - 0x00A0)
class UEditorTickableComponent final : public UActorComponent
{
public:
	bool                                          bEditorOnlyTick;                                   // 0x00A0(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_A1[0x7];                                       // 0x00A1(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	TMulticastInlineDelegate<void(float dt)>      EditorTick;                                        // 0x00A8(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("EditorTickableComponent")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"EditorTickableComponent")
	}
	static class UEditorTickableComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<UEditorTickableComponent>();
	}
};
DUMPER7_ASSERTS_UEditorTickableComponent;

// Class Commons.ScalingRule
// 0x0010 (0x0038 - 0x0028)
class UScalingRule final : public UDPICustomScalingRule
{
public:
	uint8                                         Pad_28[0x10];                                      // 0x0028(0x0010)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ScalingRule")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ScalingRule")
	}
	static class UScalingRule* GetDefaultObj()
	{
		return GetDefaultObjImpl<UScalingRule>();
	}
};
DUMPER7_ASSERTS_UScalingRule;

// Class Commons.SharedBoolSwitchBlueprintUtility
// 0x0000 (0x0028 - 0x0028)
class USharedBoolSwitchBlueprintUtility final : public UBlueprintFunctionLibrary
{
public:
	static void Acquire(struct FSharedBoolSwitchBlueprint& BoolSwitch, class UObject* User);
	static void ChangeDefaultValue(struct FSharedBoolSwitchBlueprint& BoolSwitch, const bool NewDefaultValue);
	static void ClearAllUsers(struct FSharedBoolSwitchBlueprint& BoolSwitch);
	static bool GetCurrentValue(const struct FSharedBoolSwitchBlueprint& BoolSwitch);
	static bool GetDefaultValue(const struct FSharedBoolSwitchBlueprint& BoolSwitch);
	static bool IsSwitched(const struct FSharedBoolSwitchBlueprint& BoolSwitch);
	static void Release(struct FSharedBoolSwitchBlueprint& BoolSwitch, class UObject* User);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("SharedBoolSwitchBlueprintUtility")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"SharedBoolSwitchBlueprintUtility")
	}
	static class USharedBoolSwitchBlueprintUtility* GetDefaultObj()
	{
		return GetDefaultObjImpl<USharedBoolSwitchBlueprintUtility>();
	}
};
DUMPER7_ASSERTS_USharedBoolSwitchBlueprintUtility;

// Class Commons.UtilityStatics
// 0x0000 (0x0028 - 0x0028)
class UUtilityStatics final : public UBlueprintFunctionLibrary
{
public:
	static bool AnglesMatchCondition(const struct FDirectionCondition& Condition, float YawAngle, float PitchAngle);
	static float ApplySimpleBentCurveAlpha(const struct FSimpleBentCurve& Curve, float Alpha);
	static float ApplySimpleBentCurveFloat(const struct FSimpleBentCurve& Curve, float From, float To, float Alpha);
	static struct FQuat ApplySimpleBentCurveQuat(const struct FSimpleBentCurve& Curve, const struct FQuat& From, const struct FQuat& To, float Alpha);
	static struct FRotator ApplySimpleBentCurveRotator(const struct FSimpleBentCurve& Curve, const struct FRotator& From, const struct FRotator& To, float Alpha);
	static void ApplySimpleBentCurveTransform(struct FTransform* Transform, const struct FSimpleBentCurve& Curve, const struct FTransform& From, const struct FTransform& To, float Alpha);
	static struct FVector ApplySimpleBentCurveVector(const struct FSimpleBentCurve& Curve, const struct FVector& From, const struct FVector& To, float Alpha);
	static struct FVector2D ApplySimpleBentCurveVector2D(const struct FSimpleBentCurve& Curve, const struct FVector2D& From, const struct FVector2D& To, float Alpha);
	static bool QuatMatchesCondition(const struct FDirectionCondition& Condition, const struct FQuat& Direction);
	static bool RotatorMatchesCondition(const struct FDirectionCondition& Condition, const struct FRotator& Direction);
	static bool VectorMatchesCondition(const struct FDirectionCondition& Condition, const struct FVector& Direction, bool AllowZeroVectorAtMaximumTolerance);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("UtilityStatics")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"UtilityStatics")
	}
	static class UUtilityStatics* GetDefaultObj()
	{
		return GetDefaultObjImpl<UUtilityStatics>();
	}
};
DUMPER7_ASSERTS_UUtilityStatics;

}

