#pragma once

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

// Package: Water

#include "Basic.hpp"

#include "Water_structs.hpp"
#include "Engine_structs.hpp"
#include "Engine_classes.hpp"
#include "AIModule_classes.hpp"
#include "CoreUObject_structs.hpp"
#include "CoreUObject_classes.hpp"
#include "Niagara_classes.hpp"
#include "DeveloperSettings_classes.hpp"


namespace SDK
{

// Class Water.GerstnerWaterWaveGeneratorBase
// 0x0000 (0x0028 - 0x0028)
class UGerstnerWaterWaveGeneratorBase : public UObject
{
public:
	void GenerateGerstnerWaves(TArray<struct FGerstnerWave>* OutWaves) const;

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

// Class Water.GerstnerWaterWaveGeneratorSpectrum
// 0x0018 (0x0040 - 0x0028)
class UGerstnerWaterWaveGeneratorSpectrum final : public UGerstnerWaterWaveGeneratorBase
{
public:
	EWaveSpectrumType                             SpectrumType;                                      // 0x0028(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_29[0x7];                                       // 0x0029(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<struct FGerstnerWaveOctave>            Octaves;                                           // 0x0030(0x0010)(Edit, ZeroConstructor, NativeAccessSpecifierPublic)

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

// Class Water.BuoyancyComponent
// 0x0160 (0x0220 - 0x00C0)
class UBuoyancyComponent final : public UActorComponent
{
public:
	TArray<struct FSphericalPontoon>              Pontoons;                                          // 0x00C0(0x0010)(ZeroConstructor, Deprecated, ContainsInstancedReference, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void(const struct FSphericalPontoon& Pontoon)> OnEnteredWaterDelegate;  // 0x00D0(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void(const struct FSphericalPontoon& Pontoon)> OnExitedWaterDelegate;   // 0x00E0(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	struct FBuoyancyData                          BuoyancyData;                                      // 0x00F0(0x0088)(Edit, DisableEditOnInstance, ContainsInstancedReference, NativeAccessSpecifierPublic)
	TArray<class UWaterBodyComponent*>            CurrentWaterBodyComponents;                        // 0x0178(0x0010)(ExportObject, ZeroConstructor, Transient, ContainsInstancedReference, Protected, NativeAccessSpecifierProtected)
	class UPrimitiveComponent*                    SimulatingComponent;                               // 0x0188(0x0008)(ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_190[0x90];                                     // 0x0190(0x0090)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void GetLastWaterSurfaceInfo(struct FVector* OutWaterPlaneLocation, struct FVector* OutWaterPlaneNormal, struct FVector* OutWaterSurfacePosition, float* OutWaterDepth, int32* OutWaterBodyIdx, struct FVector* OutWaterVelocity);
	void OnPontoonEnteredWater(const struct FSphericalPontoon& Pontoon);
	void OnPontoonExitedWater(const struct FSphericalPontoon& Pontoon);

	const TArray<class UWaterBodyComponent*> GetCurrentWaterBodyComponents() const;
	bool IsInWaterBody() const;
	bool IsOverlappingWaterBody() const;

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

// Class Water.WaterWavesBase
// 0x0000 (0x0028 - 0x0028)
class UWaterWavesBase : public UObject
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("WaterWavesBase")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"WaterWavesBase")
	}
	static class UWaterWavesBase* GetDefaultObj()
	{
		return GetDefaultObjImpl<UWaterWavesBase>();
	}
};
DUMPER7_ASSERTS_UWaterWavesBase;

// Class Water.BuoyancyManager
// 0x00B8 (0x0340 - 0x0288)
class ABuoyancyManager final : public AActor
{
public:
	uint8                                         Pad_288[0x50];                                     // 0x0288(0x0050)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<class UBuoyancyComponent*>             BuoyancyComponents;                                // 0x02D8(0x0010)(ExportObject, ZeroConstructor, ContainsInstancedReference, NativeAccessSpecifierPrivate)
	uint8                                         Pad_2E8[0x58];                                     // 0x02E8(0x0058)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static bool GetBuoyancyComponentManager(const class UObject* WorldContextObject, class ABuoyancyManager** Manager);

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

// Class Water.EnvQueryTest_InsideWaterBody
// 0x0008 (0x0200 - 0x01F8)
class UEnvQueryTest_InsideWaterBody final : public UEnvQueryTest
{
public:
	bool                                          bIncludeWaves;                                     // 0x01F8(0x0001)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bSimpleWaves;                                      // 0x01F9(0x0001)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bIgnoreExclusionVolumes;                           // 0x01FA(0x0001)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_1FB[0x5];                                      // 0x01FB(0x0005)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class Water.GerstnerWaterWaveGeneratorSimple
// 0x0038 (0x0060 - 0x0028)
class UGerstnerWaterWaveGeneratorSimple final : public UGerstnerWaterWaveGeneratorBase
{
public:
	int32                                         NumWaves;                                          // 0x0028(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         Seed;                                              // 0x002C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         Randomness;                                        // 0x0030(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         MinWavelength;                                     // 0x0034(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         MaxWavelength;                                     // 0x0038(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         WavelengthFalloff;                                 // 0x003C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         MinAmplitude;                                      // 0x0040(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         MaxAmplitude;                                      // 0x0044(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         AmplitudeFalloff;                                  // 0x0048(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         WindAngleDeg;                                      // 0x004C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         DirectionAngularSpreadDeg;                         // 0x0050(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         SmallWaveSteepness;                                // 0x0054(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         LargeWaveSteepness;                                // 0x0058(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         SteepnessFalloff;                                  // 0x005C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

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

// Class Water.WaterWaves
// 0x0000 (0x0028 - 0x0028)
class UWaterWaves : public UWaterWavesBase
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("WaterWaves")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"WaterWaves")
	}
	static class UWaterWaves* GetDefaultObj()
	{
		return GetDefaultObjImpl<UWaterWaves>();
	}
};
DUMPER7_ASSERTS_UWaterWaves;

// Class Water.GerstnerWaterWaves
// 0x0020 (0x0048 - 0x0028)
class UGerstnerWaterWaves final : public UWaterWaves
{
public:
	class UGerstnerWaterWaveGeneratorBase*        GerstnerWaveGenerator;                             // 0x0028(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, PersistentInstance, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	TArray<struct FGerstnerWave>                  GerstnerWaves;                                     // 0x0030(0x0010)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, Protected, NativeAccessSpecifierProtected)
	float                                         MaxWaveHeight;                                     // 0x0040(0x0004)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_44[0x4];                                       // 0x0044(0x0004)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class Water.GerstnerWaterWaveSubsystem
// 0x0018 (0x0048 - 0x0030)
class UGerstnerWaterWaveSubsystem final : public UEngineSubsystem
{
public:
	uint8                                         Pad_30[0x18];                                      // 0x0030(0x0018)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class Water.LakeCollisionComponent
// 0x0020 (0x0590 - 0x0570)
class ULakeCollisionComponent final : public UPrimitiveComponent
{
public:
	class UBodySetup*                             CachedBodySetup;                                   // 0x0568(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, NonPIEDuplicateTransient, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	struct FVector                                BoxExtent;                                         // 0x0570(0x0018)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_588[0x8];                                      // 0x0588(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class Water.NiagaraDataInterfaceWater
// 0x0008 (0x0040 - 0x0038)
class UNiagaraDataInterfaceWater final : public UNiagaraDataInterface
{
public:
	class UWaterBodyComponent*                    SourceBodyComponent;                               // 0x0038(0x0008)(Edit, ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)

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

// Class Water.NiagaraWaterFunctionLibrary
// 0x0000 (0x0028 - 0x0028)
class UNiagaraWaterFunctionLibrary final : public UBlueprintFunctionLibrary
{
public:
	static void SetWaterBody(class UNiagaraComponent* NiagaraSystem, const class FString& OverrideName, class AWaterBody* WaterBody);
	static void SetWaterBodyComponent(class UNiagaraComponent* NiagaraSystem, const class FString& OverrideName, class UWaterBodyComponent* WaterBodyComponent);

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

// Class Water.OceanCollisionComponent
// 0x0040 (0x05B0 - 0x0570)
class UOceanCollisionComponent final : public UPrimitiveComponent
{
public:
	class UBodySetup*                             CachedBodySetup;                                   // 0x0568(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, NonPIEDuplicateTransient, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_570[0x40];                                     // 0x0570(0x0040)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class Water.OceanBoxCollisionComponent
// 0x0000 (0x05A0 - 0x05A0)
class UOceanBoxCollisionComponent final : public UBoxComponent
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("OceanBoxCollisionComponent")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"OceanBoxCollisionComponent")
	}
	static class UOceanBoxCollisionComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<UOceanBoxCollisionComponent>();
	}
};
DUMPER7_ASSERTS_UOceanBoxCollisionComponent;

// Class Water.WaterBody
// 0x0030 (0x02B8 - 0x0288)
class AWaterBody : public AActor
{
public:
	uint8                                         Pad_288[0x8];                                      // 0x0288(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	class UWaterSplineComponent*                  SplineComp;                                        // 0x0290(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, EditConst, InstancedReference, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UWaterSplineMetadata*                   WaterSplineMetadata;                               // 0x0298(0x0008)(ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, Protected, PersistentInstance, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UWaterBodyComponent*                    WaterBodyComponent;                                // 0x02A0(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, EditConst, InstancedReference, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	int32                                         WaterBodyIndex;                                    // 0x02A8(0x0004)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, Transient, DuplicateTransient, IsPlainOldData, NonTransactional, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	EWaterBodyType                                WaterBodyType;                                     // 0x02AC(0x0001)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_2AD[0x3];                                      // 0x02AD(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	class UWaterWavesBase*                        WaterWaves;                                        // 0x02B0(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, Protected, PersistentInstance, HasGetValueTypeHash, NativeAccessSpecifierProtected)

public:
	class UMaterialInstanceDynamic* GetRiverToLakeTransitionMaterialInstance();
	class UMaterialInstanceDynamic* GetRiverToOceanTransitionMaterialInstance();
	class UMaterialInstanceDynamic* GetWaterMaterialInstance();
	void OnWaterBodyChanged(bool bShapeOrPositionChanged, bool bWeightmapSettingsChanged);
	void SetWaterMaterial(class UMaterialInterface* InMaterial);
	void SetWaterWaves(class UWaterWavesBase* InWaterWaves);

	float GetAudioIntensityAtSplineInputKey(float InKey) const;
	TArray<class AWaterBodyExclusionVolume*> GetExclusionVolumes() const;
	TArray<class AWaterBodyIsland*> GetIslands() const;
	class UWaterBodyComponent* GetWaterBodyComponent() const;
	EWaterBodyType GetWaterBodyType() const;
	class UWaterSplineComponent* GetWaterSpline() const;
	float GetWaterVelocityAtSplineInputKey(float InKey) const;
	struct FVector GetWaterVelocityVectorAtSplineInputKey(float InKey) const;

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

// Class Water.WaterBodyGenerator
// 0x0000 (0x0028 - 0x0028)
class UWaterBodyGenerator : public UObject
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("WaterBodyGenerator")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"WaterBodyGenerator")
	}
	static class UWaterBodyGenerator* GetDefaultObj()
	{
		return GetDefaultObjImpl<UWaterBodyGenerator>();
	}
};
DUMPER7_ASSERTS_UWaterBodyGenerator;

// Class Water.WaterBodyComponent
// 0x1040 (0x15B0 - 0x0570)
class UWaterBodyComponent : public UPrimitiveComponent
{
public:
	class UPhysicalMaterial*                      PhysicalMaterial;                                  // 0x0568(0x0008)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         TargetWaveMaskDepth;                               // 0x0570(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         MaxWaveHeightOffset;                               // 0x0574(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bFillCollisionUnderWaterBodiesForNavmesh;          // 0x0578(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_579[0x7];                                      // 0x0579(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	struct FUnderwaterPostProcessSettings         UnderwaterPostProcessSettings;                     // 0x0580(0x07D0)(Edit, BlueprintVisible, NativeAccessSpecifierPublic)
	struct FWaterCurveSettings                    CurveSettings;                                     // 0x0D50(0x0020)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	class UMaterialInterface*                     WaterMaterial;                                     // 0x0D70(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UMaterialInterface*                     UnderwaterPostProcessMaterial;                     // 0x0D78(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         ShapeDilation;                                     // 0x0D80(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         CollisionHeightOffset;                             // 0x0D84(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bAffectsLandscape;                                 // 0x0D88(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bGenerateCollisions;                               // 0x0D89(0x0001)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_D8A[0x2];                                      // 0x0D8A(0x0002)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         WaterBodyIndex;                                    // 0x0D8C(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, Transient, EditConst, DuplicateTransient, IsPlainOldData, NonTransactional, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UStaticMesh*                            WaterMeshOverride;                                 // 0x0D90(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	int32                                         OverlapMaterialPriority;                           // 0x0D98(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class FName                                   CollisionProfileName;                              // 0x0D9C(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_DA4[0x4];                                      // 0x0DA4(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	class UWaterSplineMetadata*                   WaterSplineMetadata;                               // 0x0DA8(0x0008)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UMaterialInstanceDynamic*               WaterMID;                                          // 0x0DB0(0x0008)(Edit, ZeroConstructor, DisableEditOnTemplate, Transient, EditConst, IsPlainOldData, NoDestructor, Protected, TextExportTransient, NonPIEDuplicateTransient, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UMaterialInstanceDynamic*               UnderwaterPostProcessMID;                          // 0x0DB8(0x0008)(Edit, ZeroConstructor, DisableEditOnTemplate, Transient, EditConst, IsPlainOldData, NoDestructor, Protected, TextExportTransient, NonPIEDuplicateTransient, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TArray<TLazyObjectPtr<class AWaterBodyIsland>> Islands;                                          // 0x0DC0(0x0010)(Edit, ZeroConstructor, DisableEditOnTemplate, AdvancedDisplay, Protected, UObjectWrapper, NativeAccessSpecifierProtected)
	TArray<TLazyObjectPtr<class AWaterBodyExclusionVolume>> ExclusionVolumes;                        // 0x0DD0(0x0010)(Edit, ZeroConstructor, DisableEditOnTemplate, AdvancedDisplay, Protected, UObjectWrapper, NativeAccessSpecifierProtected)
	TWeakObjectPtr<class ALandscapeProxy>         Landscape;                                         // 0x0DE0(0x0008)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_DE8[0x8];                                      // 0x0DE8(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	struct FPostProcessSettings                   CurrentPostProcessSettings;                        // 0x0DF0(0x07B0)(Transient, Protected, NativeAccessSpecifierProtected)
	bool                                          bCanAffectNavigation;                              // 0x15A0(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_15A1[0x7];                                     // 0x15A1(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	TSubclassOf<class UNavAreaBase>               WaterNavAreaClass;                                 // 0x15A8(0x0008)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)

public:
	class UMaterialInstanceDynamic* GetRiverToLakeTransitionMaterialInstance();
	class UMaterialInstanceDynamic* GetRiverToOceanTransitionMaterialInstance();
	class UMaterialInstanceDynamic* GetUnderwaterPostProcessMaterialInstance();
	class UMaterialInstanceDynamic* GetWaterMaterialInstance();
	void OnWaterBodyChanged(bool bShapeOrPositionChanged, bool bWeightmapSettingsChanged);

	TArray<class UPrimitiveComponent*> GetCollisionComponents() const;
	TArray<class AWaterBodyExclusionVolume*> GetExclusionVolumes() const;
	TArray<class AWaterBodyIsland*> GetIslands() const;
	float GetMaxWaveHeight() const;
	TArray<class UPrimitiveComponent*> GetStandardRenderableComponents() const;
	class AWaterBody* GetWaterBodyActor() const;
	class UMaterialInterface* GetWaterMaterial() const;
	class UWaterSplineComponent* GetWaterSpline() const;
	void GetWaterSurfaceInfoAtLocation(const struct FVector& InLocation, struct FVector* OutWaterSurfaceLocation, struct FVector* OutWaterSurfaceNormal, struct FVector* OutWaterVelocity, float* OutWaterDepth, bool bIncludeDepth) const;
	float GetWaterVelocityAtSplineInputKey(float InKey) const;
	class UWaterWavesBase* GetWaterWaves() const;

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

// Class Water.CustomMeshGenerator
// 0x0008 (0x0030 - 0x0028)
class UCustomMeshGenerator final : public UWaterBodyGenerator
{
public:
	class UStaticMeshComponent*                   MeshComp;                                          // 0x0028(0x0008)(ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, NonPIEDuplicateTransient, HasGetValueTypeHash, NativeAccessSpecifierPublic)

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

// Class Water.WaterBodyCustom
// 0x0000 (0x02B8 - 0x02B8)
class AWaterBodyCustom final : public AWaterBody
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("WaterBodyCustom")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"WaterBodyCustom")
	}
	static class AWaterBodyCustom* GetDefaultObj()
	{
		return GetDefaultObjImpl<AWaterBodyCustom>();
	}
};
DUMPER7_ASSERTS_AWaterBodyCustom;

// Class Water.WaterBodyCustomComponent
// 0x0010 (0x15C0 - 0x15B0)
class UWaterBodyCustomComponent final : public UWaterBodyComponent
{
public:
	class UStaticMeshComponent*                   MeshComp;                                          // 0x15B0(0x0008)(ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, Protected, NonPIEDuplicateTransient, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_15B8[0x8];                                     // 0x15B8(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class Water.WaterBodyExclusionVolume
// 0x0018 (0x02E8 - 0x02D0)
class AWaterBodyExclusionVolume final : public APhysicsVolume
{
public:
	bool                                          bIgnoreAllOverlappingWaterBodies;                  // 0x02D0(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_2D1[0x7];                                      // 0x02D1(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<class AWaterBody*>                     WaterBodiesToIgnore;                               // 0x02D8(0x0010)(Edit, ZeroConstructor, DisableEditOnTemplate, NativeAccessSpecifierPublic)

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

// Class Water.WaterBodyIsland
// 0x0010 (0x0298 - 0x0288)
class AWaterBodyIsland final : public AActor
{
public:
	uint8                                         Pad_288[0x8];                                      // 0x0288(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	class UWaterSplineComponent*                  SplineComp;                                        // 0x0290(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, EditConst, InstancedReference, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)

public:
	class UWaterSplineComponent* GetWaterSpline() const;

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

// Class Water.LakeGenerator
// 0x0018 (0x0040 - 0x0028)
class ULakeGenerator final : public UWaterBodyGenerator
{
public:
	class UStaticMeshComponent*                   LakeMeshComp;                                      // 0x0028(0x0008)(ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, NonPIEDuplicateTransient, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UBoxComponent*                          LakeCollisionComp;                                 // 0x0030(0x0008)(ExportObject, ZeroConstructor, InstancedReference, Deprecated, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class ULakeCollisionComponent*                LakeCollision;                                     // 0x0038(0x0008)(ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, NonPIEDuplicateTransient, HasGetValueTypeHash, NativeAccessSpecifierPublic)

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

// Class Water.WaterBodyLake
// 0x0000 (0x02B8 - 0x02B8)
class AWaterBodyLake final : public AWaterBody
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("WaterBodyLake")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"WaterBodyLake")
	}
	static class AWaterBodyLake* GetDefaultObj()
	{
		return GetDefaultObjImpl<AWaterBodyLake>();
	}
};
DUMPER7_ASSERTS_AWaterBodyLake;

// Class Water.WaterBodyLakeComponent
// 0x0010 (0x15C0 - 0x15B0)
class UWaterBodyLakeComponent final : public UWaterBodyComponent
{
public:
	class UStaticMeshComponent*                   LakeMeshComp;                                      // 0x15B0(0x0008)(ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, Protected, NonPIEDuplicateTransient, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class ULakeCollisionComponent*                LakeCollision;                                     // 0x15B8(0x0008)(ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, Protected, NonPIEDuplicateTransient, HasGetValueTypeHash, NativeAccessSpecifierProtected)

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

// Class Water.OceanGenerator
// 0x0020 (0x0048 - 0x0028)
class UOceanGenerator final : public UWaterBodyGenerator
{
public:
	TArray<class UOceanBoxCollisionComponent*>    CollisionBoxes;                                    // 0x0028(0x0010)(ExportObject, ZeroConstructor, ContainsInstancedReference, NonPIEDuplicateTransient, NativeAccessSpecifierPublic)
	TArray<class UOceanCollisionComponent*>       CollisionHullSets;                                 // 0x0038(0x0010)(ExportObject, ZeroConstructor, ContainsInstancedReference, NonPIEDuplicateTransient, NativeAccessSpecifierPublic)

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

// Class Water.WaterBodyOcean
// 0x0000 (0x02B8 - 0x02B8)
class AWaterBodyOcean final : public AWaterBody
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("WaterBodyOcean")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"WaterBodyOcean")
	}
	static class AWaterBodyOcean* GetDefaultObj()
	{
		return GetDefaultObjImpl<AWaterBodyOcean>();
	}
};
DUMPER7_ASSERTS_AWaterBodyOcean;

// Class Water.WaterBodyOceanComponent
// 0x0040 (0x15F0 - 0x15B0)
class UWaterBodyOceanComponent final : public UWaterBodyComponent
{
public:
	TArray<class UOceanBoxCollisionComponent*>    CollisionBoxes;                                    // 0x15B0(0x0010)(ExportObject, ZeroConstructor, ContainsInstancedReference, Protected, NonPIEDuplicateTransient, NativeAccessSpecifierProtected)
	TArray<class UOceanCollisionComponent*>       CollisionHullSets;                                 // 0x15C0(0x0010)(ExportObject, ZeroConstructor, ContainsInstancedReference, Protected, NonPIEDuplicateTransient, NativeAccessSpecifierProtected)
	struct FVector                                CollisionExtents;                                  // 0x15D0(0x0018)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	float                                         HeightOffset;                                      // 0x15E8(0x0004)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_15EC[0x4];                                     // 0x15EC(0x0004)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class Water.RiverGenerator
// 0x0010 (0x0038 - 0x0028)
class URiverGenerator final : public UWaterBodyGenerator
{
public:
	TArray<class USplineMeshComponent*>           SplineMeshComponents;                              // 0x0028(0x0010)(ExportObject, ZeroConstructor, ContainsInstancedReference, NonPIEDuplicateTransient, NativeAccessSpecifierPublic)

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

// Class Water.WaterBodyRiver
// 0x0000 (0x02B8 - 0x02B8)
class AWaterBodyRiver : public AWaterBody
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("WaterBodyRiver")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"WaterBodyRiver")
	}
	static class AWaterBodyRiver* GetDefaultObj()
	{
		return GetDefaultObjImpl<AWaterBodyRiver>();
	}
};
DUMPER7_ASSERTS_AWaterBodyRiver;

// Class Water.WaterBodyRiverComponent
// 0x0030 (0x15E0 - 0x15B0)
class UWaterBodyRiverComponent final : public UWaterBodyComponent
{
public:
	TArray<class USplineMeshComponent*>           SplineMeshComponents;                              // 0x15B0(0x0010)(ExportObject, ZeroConstructor, ContainsInstancedReference, Protected, NonPIEDuplicateTransient, NativeAccessSpecifierProtected)
	class UMaterialInterface*                     LakeTransitionMaterial;                            // 0x15C0(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UMaterialInstanceDynamic*               LakeTransitionMID;                                 // 0x15C8(0x0008)(Edit, ZeroConstructor, DisableEditOnTemplate, Transient, EditConst, IsPlainOldData, NoDestructor, Protected, TextExportTransient, NonPIEDuplicateTransient, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UMaterialInterface*                     OceanTransitionMaterial;                           // 0x15D0(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UMaterialInstanceDynamic*               OceanTransitionMID;                                // 0x15D8(0x0008)(Edit, ZeroConstructor, DisableEditOnTemplate, Transient, EditConst, IsPlainOldData, NoDestructor, Protected, TextExportTransient, NonPIEDuplicateTransient, HasGetValueTypeHash, NativeAccessSpecifierProtected)

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

// Class Water.WaterBrushActorInterface
// 0x0000 (0x0000 - 0x0000)
class IWaterBrushActorInterface final
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("WaterBrushActorInterface")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"WaterBrushActorInterface")
	}
	static class IWaterBrushActorInterface* GetDefaultObj()
	{
		return GetDefaultObjImpl<IWaterBrushActorInterface>();
	}

	class UObject* AsUObject()
	{
		return reinterpret_cast<UObject*>(this);
	}
	const class UObject* AsUObject() const
	{
		return reinterpret_cast<const UObject*>(this);
	}
};
DUMPER7_ASSERTS_IWaterBrushActorInterface;

// Class Water.WaterMeshComponent
// 0x0160 (0x06F0 - 0x0590)
class UWaterMeshComponent final : public UMeshComponent
{
public:
	int32                                         ForceCollapseDensityLevel;                         // 0x0590(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_594[0x4];                                      // 0x0594(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	class UMaterialInterface*                     FarDistanceMaterial;                               // 0x0598(0x0008)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         FarDistanceMeshExtent;                             // 0x05A0(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_5A4[0x4];                                      // 0x05A4(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	struct FVector                                RTWorldLocation;                                   // 0x05A8(0x0018)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FVector                                RTWorldSizeVector;                                 // 0x05C0(0x0018)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         TileSize;                                          // 0x05D8(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	struct FIntPoint                              ExtentInTiles;                                     // 0x05DC(0x0008)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_5E4[0x9C];                                     // 0x05E4(0x009C)(Fixing Size After Last Property [ Dumper-7 ])
	TSet<class UMaterialInterface*>               UsedMaterials;                                     // 0x0680(0x0050)(Transient, TextExportTransient, NonPIEDuplicateTransient, NativeAccessSpecifierPrivate)
	uint8                                         Pad_6D0[0x10];                                     // 0x06D0(0x0010)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         TessellationFactor;                                // 0x06E0(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	float                                         LODScale;                                          // 0x06E4(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_6E8[0x8];                                      // 0x06E8(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	bool IsEnabled() const;

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

// Class Water.WaterRuntimeSettings
// 0x0060 (0x0098 - 0x0038)
class UWaterRuntimeSettings final : public UDeveloperSettings
{
public:
	ECollisionChannel                             CollisionChannelForWaterTraces;                    // 0x0038(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_39[0x7];                                       // 0x0039(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	TSoftObjectPtr<class UMaterialParameterCollection> MaterialParameterCollection;                  // 0x0040(0x0028)(Edit, Config, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         WaterBodyIconWorldSize;                            // 0x0068(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         WaterBodyIconWorldZOffset;                         // 0x006C(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FName                                   DefaultWaterCollisionProfileName;                  // 0x0070(0x0008)(Edit, ZeroConstructor, Config, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	TSubclassOf<class UWaterBodyRiverComponent>   WaterBodyRiverComponentClass;                      // 0x0078(0x0008)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	TSubclassOf<class UWaterBodyLakeComponent>    WaterBodyLakeComponentClass;                       // 0x0080(0x0008)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	TSubclassOf<class UWaterBodyOceanComponent>   WaterBodyOceanComponentClass;                      // 0x0088(0x0008)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	TSubclassOf<class UWaterBodyCustomComponent>  WaterBodyCustomComponentClass;                     // 0x0090(0x0008)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)

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

// Class Water.WaterSplineComponent
// 0x0020 (0x0690 - 0x0670)
class UWaterSplineComponent final : public USplineComponent
{
public:
	struct FWaterSplineCurveDefaults              WaterSplineDefaults;                               // 0x0668(0x0010)(Edit, DisableEditOnInstance, NoDestructor, NativeAccessSpecifierPublic)
	struct FWaterSplineCurveDefaults              PreviousWaterSplineDefaults;                       // 0x0678(0x0010)(NoDestructor, NativeAccessSpecifierPublic)
	uint8                                         Pad_688[0x8];                                      // 0x0688(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class Water.WaterSplineMetadata
// 0x0078 (0x00A0 - 0x0028)
class UWaterSplineMetadata final : public USplineMetadata
{
public:
	struct FInterpCurveFloat                      Depth;                                             // 0x0028(0x0018)(Edit, ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FInterpCurveFloat                      WaterVelocityScalar;                               // 0x0040(0x0018)(Edit, ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FInterpCurveFloat                      RiverWidth;                                        // 0x0058(0x0018)(Edit, ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FInterpCurveFloat                      AudioIntensity;                                    // 0x0070(0x0018)(Edit, ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FInterpCurveVector                     WaterVelocity;                                     // 0x0088(0x0018)(ZeroConstructor, Deprecated, HasGetValueTypeHash, NativeAccessSpecifierPrivate)

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

// Class Water.WaterSubsystem
// 0x00C0 (0x0100 - 0x0040)
class UWaterSubsystem final : public UTickableWorldSubsystem
{
public:
	uint8                                         Pad_40[0x38];                                      // 0x0040(0x0038)(Fixing Size After Last Property [ Dumper-7 ])
	class ABuoyancyManager*                       BuoyancyManager;                                   // 0x0078(0x0008)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void(bool bIsUnderWater, float DepthUnderwater)> OnCameraUnderwaterStateChanged; // 0x0080(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void()>              OnWaterScalabilityChanged;                         // 0x0090(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	class UStaticMesh*                            DefaultRiverMesh;                                  // 0x00A0(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UStaticMesh*                            DefaultLakeMesh;                                   // 0x00A8(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_B0[0x28];                                      // 0x00B0(0x0028)(Fixing Size After Last Property [ Dumper-7 ])
	class UMaterialParameterCollection*           MaterialParameterCollection;                       // 0x00D8(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_E0[0x20];                                      // 0x00E0(0x0020)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static int32 GetShallowWaterMaxDynamicForces();
	static int32 GetShallowWaterMaxImpulseForces();
	static int32 GetShallowWaterSimulationRenderTargetSize();

	void PrintToWaterLog(const class FString& Message, bool bWarning);
	void SetOceanFloodHeight(float InFloodHeight);

	float GetCameraUnderwaterDepth() const;
	float GetOceanBaseHeight() const;
	float GetOceanFloodHeight() const;
	float GetOceanTotalHeight() const;
	float GetSmoothedWorldTimeSeconds() const;
	float GetWaterTimeSeconds() const;
	bool IsShallowWaterSimulationEnabled() const;
	bool IsUnderwaterPostProcessEnabled() const;
	bool IsWaterRenderingEnabled() const;

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

// Class Water.WaterWavesAsset
// 0x0008 (0x0030 - 0x0028)
class UWaterWavesAsset final : public UObject
{
public:
	class UWaterWaves*                            WaterWaves;                                        // 0x0028(0x0008)(Edit, ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, PersistentInstance, HasGetValueTypeHash, NativeAccessSpecifierPrivate)

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

// Class Water.WaterWavesAssetReference
// 0x0008 (0x0030 - 0x0028)
class UWaterWavesAssetReference final : public UWaterWavesBase
{
public:
	class UWaterWavesAsset*                       WaterWavesAsset;                                   // 0x0028(0x0008)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)

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

// Class Water.WaterZone
// 0x0018 (0x02A0 - 0x0288)
class AWaterZone final : public AActor
{
public:
	class UTexture2D*                             WaterVelocityTexture;                              // 0x0288(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UBoxComponent*                          BoundsComponent;                                   // 0x0290(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, EditConst, InstancedReference, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	class UWaterMeshComponent*                    WaterMesh;                                         // 0x0298(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, EditConst, InstancedReference, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)

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

}

