#pragma once

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

// Package: TimeManagement

#include "Basic.hpp"

#include "Engine_classes.hpp"
#include "CoreUObject_structs.hpp"
#include "CoreUObject_classes.hpp"


SDK_NAMESPACE_START

// Class TimeManagement.FixedFrameRateCustomTimeStep
// 0x0000 (0x0028 - 0x0028)
class UFixedFrameRateCustomTimeStep : public UEngineCustomTimeStep
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("FixedFrameRateCustomTimeStep")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"FixedFrameRateCustomTimeStep")
	}
	static class UFixedFrameRateCustomTimeStep* GetDefaultObj()
	{
		return GetDefaultObjImpl<UFixedFrameRateCustomTimeStep>();
	}
};
DUMPER7_ASSERTS_UFixedFrameRateCustomTimeStep;

// Class TimeManagement.CatchupFixedRateCustomTimeStep
// 0x0018 (0x0040 - 0x0028)
class UCatchupFixedRateCustomTimeStep final : public UFixedFrameRateCustomTimeStep
{
public:
	struct FFrameRate                             FrameRate;                                         // 0x0028(0x0008)(Edit, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	double                                        MaxCatchupSeconds;                                 // 0x0030(0x0008)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_38[0x8];                                       // 0x0038(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class TimeManagement.GenlockedCustomTimeStep
// 0x0008 (0x0030 - 0x0028)
class UGenlockedCustomTimeStep : public UFixedFrameRateCustomTimeStep
{
public:
	bool                                          bAutoDetectFormat;                                 // 0x0028(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bWaitForBothFields;                                // 0x0029(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_2A[0x6];                                       // 0x002A(0x0006)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class TimeManagement.GenlockedFixedRateCustomTimeStep
// 0x0020 (0x0050 - 0x0030)
class UGenlockedFixedRateCustomTimeStep final : public UGenlockedCustomTimeStep
{
public:
	struct FFrameRate                             FrameRate;                                         // 0x0030(0x0008)(Edit, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bShouldBlock;                                      // 0x0038(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bForceSingleFrameDeltaTime;                        // 0x0039(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_3A[0x16];                                      // 0x003A(0x0016)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class TimeManagement.GenlockedTimecodeProvider
// 0x0028 (0x0058 - 0x0030)
class UGenlockedTimecodeProvider final : public UTimecodeProvider
{
public:
	bool                                          bUseGenlockToCount;                                // 0x0030(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_31[0x27];                                      // 0x0031(0x0027)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class TimeManagement.TimeManagementBlueprintLibrary
// 0x0000 (0x0028 - 0x0028)
class UTimeManagementBlueprintLibrary final : public UBlueprintFunctionLibrary
{
public:
	static struct FFrameNumber Add_FrameNumberFrameNumber(const struct FFrameNumber& A, const struct FFrameNumber& B);
	static struct FFrameNumber Add_FrameNumberInteger(const struct FFrameNumber& A, int32 B);
	static int32 Conv_FrameNumberToInteger(const struct FFrameNumber& InFrameNumber);
	static float Conv_FrameRateToInterval(const struct FFrameRate& InFrameRate);
	static float Conv_FrameRateToSeconds(const struct FFrameRate& InFrameRate);
	static float Conv_QualifiedFrameTimeToSeconds(const struct FQualifiedFrameTime& InFrameTime);
	static class FString Conv_TimecodeToString(const struct FTimecode& InTimecode, bool bForceSignDisplay);
	static struct FFrameNumber Divide_FrameNumberInteger(const struct FFrameNumber& A, int32 B);
	static struct FTimecode GetTimecode();
	static struct FFrameRate GetTimecodeFrameRate();
	static bool IsValid_Framerate(const struct FFrameRate& InFrameRate);
	static bool IsValid_MultipleOf(const struct FFrameRate& InFrameRate, const struct FFrameRate& OtherFramerate);
	static struct FFrameNumber Multiply_FrameNumberInteger(const struct FFrameNumber& A, int32 B);
	static struct FFrameTime Multiply_SecondsFrameRate(float TimeInSeconds, const struct FFrameRate& FrameRate);
	static struct FFrameTime SnapFrameTimeToRate(const struct FFrameTime& SourceTime, const struct FFrameRate& SourceRate, const struct FFrameRate& SnapToRate);
	static struct FFrameNumber Subtract_FrameNumberFrameNumber(const struct FFrameNumber& A, const struct FFrameNumber& B);
	static struct FFrameNumber Subtract_FrameNumberInteger(const struct FFrameNumber& A, int32 B);
	static struct FFrameTime TransformTime(const struct FFrameTime& SourceTime, const struct FFrameRate& SourceRate, const struct FFrameRate& DestinationRate);

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

// Class TimeManagement.TimeSynchronizationSource
// 0x0008 (0x0030 - 0x0028)
class UTimeSynchronizationSource : public UObject
{
public:
	bool                                          bUseForSynchronization;                            // 0x0028(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_29[0x3];                                       // 0x0029(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         FrameOffset;                                       // 0x002C(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

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

SDK_NAMESPACE_END
