#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 "DeveloperSettings_classes.hpp"
#include "CoreUObject_structs.hpp"
#include "CoreUObject_classes.hpp"
#include "Niagara_classes.hpp"


SDK_NAMESPACE_START

// Class Water.BakedShallowWaterSimulationComponent
// 0x00B0 (0x05D0 - 0x0520)
class UBakedShallowWaterSimulationComponent final : public UPrimitiveComponent
{
public:
	struct FShallowWaterSimulationGrid            SimulationData;                                    // 0x0520(0x0058)(NativeAccessSpecifierPublic)
	TSet<TSoftObjectPtr<class AWaterBody>>        WaterBodies;                                       // 0x0578(0x0050)(UObjectWrapper, NativeAccessSpecifierPublic)
	uint8                                         Pad_5C8[0x8];                                      // 0x05C8(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

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

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

// Class Water.WaterTerrainComponent
// 0x0028 (0x00E0 - 0x00B8)
class UWaterTerrainComponent final : public UActorComponent
{
public:
	TSoftObjectPtr<class AWaterZone>              WaterZoneOverride;                                 // 0x00B8(0x0028)(Edit, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)

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

// Class Water.BuoyancyComponent
// 0x0168 (0x0220 - 0x00B8)
class UBuoyancyComponent final : public UActorComponent
{
public:
	TArray<struct FSphericalPontoon>              Pontoons;                                          // 0x00B8(0x0010)(ZeroConstructor, Deprecated, ContainsInstancedReference, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void(const struct FSphericalPontoon& Pontoon)> OnEnteredWaterDelegate;  // 0x00C8(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void(const struct FSphericalPontoon& Pontoon)> OnExitedWaterDelegate;   // 0x00D8(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	struct FBuoyancyData                          BuoyancyData;                                      // 0x00E8(0x0090)(Edit, BlueprintVisible, BlueprintReadOnly, DisableEditOnInstance, ContainsInstancedReference, NativeAccessSpecifierPublic)
	TArray<class UWaterBodyComponent*>            CurrentWaterBodyComponents;                        // 0x0178(0x0010)(ExportObject, ZeroConstructor, Transient, ContainsInstancedReference, Protected, UObjectWrapper, NativeAccessSpecifierProtected, TObjectPtr)
	class UPrimitiveComponent*                    SimulatingComponent;                               // 0x0188(0x0008)(ExportObject, ZeroConstructor, InstancedReference, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	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.BuoyancyManager
// 0x00C8 (0x0370 - 0x02A8)
class ABuoyancyManager final : public AActor
{
public:
	uint8                                         Pad_2A8[0x50];                                     // 0x02A8(0x0050)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<class UBuoyancyComponent*>             BuoyancyComponents;                                // 0x02F8(0x0010)(ExportObject, ZeroConstructor, ContainsInstancedReference, UObjectWrapper, NativeAccessSpecifierPrivate, TObjectPtr)
	uint8                                         Pad_308[0x68];                                     // 0x0308(0x0068)(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.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.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.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.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.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, NoDestructor, PersistentInstance, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	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 (0x0540 - 0x0520)
class ULakeCollisionComponent final : public UPrimitiveComponent
{
public:
	class UBodySetup*                             CachedBodySetup;                                   // 0x0520(0x0008)(ZeroConstructor, NoDestructor, NonPIEDuplicateTransient, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)
	struct FVector                                BoxExtent;                                         // 0x0528(0x0018)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)

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
// 0x0038 (0x0070 - 0x0038)
class UNiagaraDataInterfaceWater final : public UNiagaraDataInterface
{
public:
	bool                                          bFindWaterBodyOnSpawn;                             // 0x0038(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	bool                                          bEvaluateSystemDepth;                              // 0x0039(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	bool                                          bEvaluateSystemDepthPerFrame;                      // 0x003A(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_3B[0x5];                                       // 0x003B(0x0005)(Fixing Size After Last Property [ Dumper-7 ])
	TSoftObjectPtr<class UObject>                 SourceBodyComponent;                               // 0x0040(0x0028)(Edit, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_68[0x8];                                       // 0x0068(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

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 (0x0560 - 0x0520)
class UOceanCollisionComponent final : public UPrimitiveComponent
{
public:
	class UBodySetup*                             CachedBodySetup;                                   // 0x0520(0x0008)(ZeroConstructor, NoDestructor, NonPIEDuplicateTransient, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)
	uint8                                         Pad_528[0x38];                                     // 0x0528(0x0038)(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 (0x0560 - 0x0560)
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
// 0x0070 (0x0318 - 0x02A8)
class AWaterBody : public AActor
{
public:
	uint8                                         Pad_2A8[0x8];                                      // 0x02A8(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	class UWaterSplineComponent*                  SplineComp;                                        // 0x02B0(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, EditConst, InstancedReference, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	class UWaterSplineMetadata*                   WaterSplineMetadata;                               // 0x02B8(0x0008)(ExportObject, ZeroConstructor, InstancedReference, NoDestructor, Protected, PersistentInstance, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	class UWaterBodyComponent*                    WaterBodyComponent;                                // 0x02C0(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, EditConst, InstancedReference, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	int32                                         WaterBodyIndex;                                    // 0x02C8(0x0004)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, Transient, DuplicateTransient, IsPlainOldData, NonTransactional, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	EWaterBodyType                                WaterBodyType;                                     // 0x02CC(0x0001)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_2CD[0x3];                                      // 0x02CD(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	class UWaterWavesBase*                        WaterWaves;                                        // 0x02D0(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, InstancedReference, NoDestructor, Protected, PersistentInstance, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	class UWaterBodyInfoMeshComponent*            WaterInfoMeshComponent;                            // 0x02D8(0x0008)(ExportObject, ZeroConstructor, InstancedReference, NoDestructor, Protected, TextExportTransient, NonPIEDuplicateTransient, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	class UWaterBodyInfoMeshComponent*            DilatedWaterInfoMeshComponent;                     // 0x02E0(0x0008)(ExportObject, ZeroConstructor, InstancedReference, NoDestructor, Protected, TextExportTransient, NonPIEDuplicateTransient, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	TArray<class UWaterBodyStaticMeshComponent*>  WaterBodyStaticMeshComponents;                     // 0x02E8(0x0010)(ExportObject, ZeroConstructor, ContainsInstancedReference, Protected, TextExportTransient, NonPIEDuplicateTransient, UObjectWrapper, NativeAccessSpecifierProtected, TObjectPtr)
	TSubclassOf<class UWaterBodyRiverComponent>   WaterBodyRiverComponentClass;                      // 0x02F8(0x0008)(Edit, ZeroConstructor, Config, DisableEditOnInstance, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TSubclassOf<class UWaterBodyLakeComponent>    WaterBodyLakeComponentClass;                       // 0x0300(0x0008)(Edit, ZeroConstructor, Config, DisableEditOnInstance, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TSubclassOf<class UWaterBodyOceanComponent>   WaterBodyOceanComponentClass;                      // 0x0308(0x0008)(Edit, ZeroConstructor, Config, DisableEditOnInstance, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TSubclassOf<class UWaterBodyCustomComponent>  WaterBodyCustomComponentClass;                     // 0x0310(0x0008)(Edit, ZeroConstructor, Config, DisableEditOnInstance, NoDestructor, Protected, UObjectWrapper, 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
// 0x1120 (0x1640 - 0x0520)
class UWaterBodyComponent : public UPrimitiveComponent
{
public:
	float                                         TargetWaveMaskDepth;                               // 0x0520(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         MaxWaveHeightOffset;                               // 0x0524(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_528[0x8];                                      // 0x0528(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	struct FUnderwaterPostProcessSettings         UnderwaterPostProcessSettings;                     // 0x0530(0x0780)(Edit, BlueprintVisible, AdvancedDisplay, NativeAccessSpecifierPublic)
	struct FWaterCurveSettings                    CurveSettings;                                     // 0x0CB0(0x0020)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	class UMaterialInterface*                     WaterMaterial;                                     // 0x0CD0(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	class UMaterialInterface*                     WaterHLODMaterial;                                 // 0x0CD8(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	class UMaterialInterface*                     WaterStaticMeshMaterial;                           // 0x0CE0(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	class UMaterialInterface*                     UnderwaterPostProcessMaterial;                     // 0x0CE8(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	class UMaterialInterface*                     WaterInfoMaterial;                                 // 0x0CF0(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	struct FWaterBodyHeightmapSettings            WaterHeightmapSettings;                            // 0x0CF8(0x00A0)(Edit, BlueprintVisible, NativeAccessSpecifierPublic)
	TMap<class FName, struct FWaterBodyWeightmapSettings> LayerWeightmapSettings;                    // 0x0D98(0x0050)(Edit, BlueprintVisible, NativeAccessSpecifierPublic)
	float                                         ShapeDilation;                                     // 0x0DE8(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         CollisionHeightOffset;                             // 0x0DEC(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bAffectsLandscape;                                 // 0x0DF0(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_DF1[0x7];                                      // 0x0DF1(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	struct FWaterBodyStaticMeshSettings           StaticMeshSettings;                                // 0x0DF8(0x0010)(Edit, NoDestructor, NativeAccessSpecifierPublic)
	int32                                         WaterBodyIndex;                                    // 0x0E08(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, Transient, EditConst, DuplicateTransient, IsPlainOldData, NonTransactional, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_E0C[0x4];                                      // 0x0E0C(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	class UStaticMesh*                            WaterMeshOverride;                                 // 0x0E10(0x0008)(Edit, BlueprintVisible, ZeroConstructor, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	bool                                          bAlwaysGenerateWaterMeshTiles;                     // 0x0E18(0x0001)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_E19[0x3];                                      // 0x0E19(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         OverlapMaterialPriority;                           // 0x0E1C(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UWaterSplineMetadata*                   WaterSplineMetadata;                               // 0x0E20(0x0008)(ZeroConstructor, Transient, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	class UMaterialInstanceDynamic*               WaterMID;                                          // 0x0E28(0x0008)(Edit, ZeroConstructor, DisableEditOnTemplate, Transient, EditConst, NoDestructor, Protected, TextExportTransient, NonPIEDuplicateTransient, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	class UMaterialInstanceDynamic*               WaterStaticMeshMID;                                // 0x0E30(0x0008)(Edit, ZeroConstructor, DisableEditOnTemplate, Transient, EditConst, NoDestructor, Protected, TextExportTransient, NonPIEDuplicateTransient, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	class UMaterialInstanceDynamic*               UnderwaterPostProcessMID;                          // 0x0E38(0x0008)(Edit, ZeroConstructor, DisableEditOnTemplate, Transient, EditConst, NoDestructor, Protected, TextExportTransient, NonPIEDuplicateTransient, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	class UMaterialInstanceDynamic*               WaterInfoMID;                                      // 0x0E40(0x0008)(Edit, ZeroConstructor, DisableEditOnTemplate, Transient, EditConst, NoDestructor, Protected, TextExportTransient, NonPIEDuplicateTransient, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	TArray<TSoftObjectPtr<class AWaterBodyIsland>> WaterBodyIslands;                                 // 0x0E48(0x0010)(Edit, ZeroConstructor, AdvancedDisplay, Protected, UObjectWrapper, NativeAccessSpecifierProtected)
	TArray<TSoftObjectPtr<class AWaterBodyExclusionVolume>> WaterBodyExclusionVolumes;               // 0x0E58(0x0010)(Edit, ZeroConstructor, AdvancedDisplay, Protected, UObjectWrapper, NativeAccessSpecifierProtected)
	TWeakObjectPtr<class ALandscapeProxy>         Landscape;                                         // 0x0E68(0x0008)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TSoftObjectPtr<class AWaterZone>              OwningWaterZone;                                   // 0x0E70(0x0028)(Edit, DisableEditOnTemplate, EditConst, AdvancedDisplay, Protected, TextExportTransient, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TSoftObjectPtr<class AWaterZone>              WaterZoneOverride;                                 // 0x0E98(0x0028)(Edit, BlueprintVisible, BlueprintReadOnly, AdvancedDisplay, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	struct FPostProcessSettings                   CurrentPostProcessSettings;                        // 0x0EC0(0x0760)(Transient, Protected, NativeAccessSpecifierProtected)
	TSubclassOf<class UNavAreaBase>               WaterNavAreaClass;                                 // 0x1620(0x0008)(Edit, BlueprintVisible, ZeroConstructor, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	double                                        FixedWaterDepth;                                   // 0x1628(0x0008)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TWeakObjectPtr<class UBakedShallowWaterSimulationComponent> BakedShallowWaterSim;                // 0x1630(0x0008)(Edit, ExportObject, ZeroConstructor, EditConst, InstancedReference, IsPlainOldData, NoDestructor, AdvancedDisplay, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	bool                                          bUseBakedSimForQueriesAndPhysics;                  // 0x1638(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_1639[0x7];                                     // 0x1639(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	class UMaterialInstanceDynamic* GetRiverToLakeTransitionMaterialInstance();
	class UMaterialInstanceDynamic* GetRiverToOceanTransitionMaterialInstance();
	class UMaterialInstanceDynamic* GetUnderwaterPostProcessMaterialInstance();
	class UMaterialInstanceDynamic* GetWaterInfoMaterialInstance();
	class UMaterialInstanceDynamic* GetWaterLODMaterialInstance();
	class UMaterialInstanceDynamic* GetWaterMaterialInstance();
	class UMaterialInstanceDynamic* GetWaterStaticMeshMaterialInstance();
	void OnWaterBodyChanged(bool bShapeOrPositionChanged, bool bWeightmapSettingsChanged, bool bUserTriggeredChanged);
	void SetAudioIntensityAtSplineInputKey(float InKey, float InAudioIntensity);
	void SetUnderwaterPostProcessMaterial(class UMaterialInterface* InMaterial);
	void SetWaterAndUnderWaterPostProcessMaterial(class UMaterialInterface* InWaterMaterial, class UMaterialInterface* InUnderWaterPostProcessMaterial);
	void SetWaterInfoMaterial(class UMaterialInterface* InMaterial);
	void SetWaterMaterial(class UMaterialInterface* InMaterial);
	void SetWaterStaticMeshMaterial(class UMaterialInterface* InMaterial);
	void SetWaterVelocityAtSplineInputKey(float InKey, float InVelocity);
	void SetWaterZoneOverride(const TSoftObjectPtr<class AWaterZone>& InWaterZoneOverride);

	float GetAudioIntensityAtSplineInputKey(float InKey) const;
	TArray<class UPrimitiveComponent*> GetCollisionComponents(bool bInOnlyEnabledComponents) const;
	TArray<class AWaterBodyExclusionVolume*> GetExclusionVolumes() const;
	TArray<class AWaterBodyIsland*> GetIslands() const;
	float GetMaxWaveHeight() const;
	class UMaterialInterface* GetRiverToLakeTransitionMaterial() const;
	class UMaterialInterface* GetRiverToOceanTransitionMaterial() 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;
	struct FVector GetWaterVelocityVectorAtSplineInputKey(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, NoDestructor, NonPIEDuplicateTransient, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)

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 (0x0318 - 0x0318)
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 (0x1650 - 0x1640)
class UWaterBodyCustomComponent final : public UWaterBodyComponent
{
public:
	class UStaticMeshComponent*                   MeshComp;                                          // 0x1640(0x0008)(ExportObject, ZeroConstructor, InstancedReference, NoDestructor, Protected, NonPIEDuplicateTransient, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	uint8                                         Pad_1648[0x8];                                     // 0x1648(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 (0x0308 - 0x02F0)
class AWaterBodyExclusionVolume final : public APhysicsVolume
{
public:
	EWaterExclusionMode                           ExclusionMode;                                     // 0x02F0(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_2F4[0x4];                                      // 0x02F4(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<TSoftObjectPtr<class AWaterBody>>      WaterBodies;                                       // 0x02F8(0x0010)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, DisableEditOnTemplate, UObjectWrapper, 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.WaterBodyHLODBuilder
// 0x0000 (0x0028 - 0x0028)
class UWaterBodyHLODBuilder final : public UHLODBuilder
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("WaterBodyHLODBuilder")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"WaterBodyHLODBuilder")
	}
	static class UWaterBodyHLODBuilder* GetDefaultObj()
	{
		return GetDefaultObjImpl<UWaterBodyHLODBuilder>();
	}
};
DUMPER7_ASSERTS_UWaterBodyHLODBuilder;

// Class Water.WaterBodyInfoMeshComponent
// 0x0010 (0x0620 - 0x0610)
class UWaterBodyInfoMeshComponent final : public UWaterBodyMeshComponent
{
public:
	bool                                          bIsDilatedMesh;                                    // 0x0610(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bIsConservativeRasterCompatible;                   // 0x0611(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_612[0xE];                                      // 0x0612(0x000E)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class Water.WaterBodyIsland
// 0x0120 (0x03C8 - 0x02A8)
class AWaterBodyIsland final : public AActor
{
public:
	uint8                                         Pad_2A8[0x8];                                      // 0x02A8(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	struct FWaterCurveSettings                    WaterCurveSettings;                                // 0x02B0(0x0020)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FWaterBodyHeightmapSettings            WaterHeightmapSettings;                            // 0x02D0(0x00A0)(Edit, BlueprintVisible, NativeAccessSpecifierPublic)
	TMap<class FName, struct FWaterBodyWeightmapSettings> WaterWeightmapSettings;                    // 0x0370(0x0050)(Edit, BlueprintVisible, NativeAccessSpecifierPublic)
	class UWaterSplineComponent*                  SplineComp;                                        // 0x03C0(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, EditConst, InstancedReference, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)

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, NoDestructor, NonPIEDuplicateTransient, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	class UBoxComponent*                          LakeCollisionComp;                                 // 0x0030(0x0008)(ExportObject, ZeroConstructor, InstancedReference, Deprecated, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	class ULakeCollisionComponent*                LakeCollision;                                     // 0x0038(0x0008)(ExportObject, ZeroConstructor, InstancedReference, NoDestructor, NonPIEDuplicateTransient, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)

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 (0x0318 - 0x0318)
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 (0x1650 - 0x1640)
class UWaterBodyLakeComponent final : public UWaterBodyComponent
{
public:
	class UStaticMeshComponent*                   LakeMeshComp;                                      // 0x1640(0x0008)(ExportObject, ZeroConstructor, InstancedReference, NoDestructor, Protected, NonPIEDuplicateTransient, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	class ULakeCollisionComponent*                LakeCollision;                                     // 0x1648(0x0008)(ExportObject, ZeroConstructor, InstancedReference, NoDestructor, Protected, NonPIEDuplicateTransient, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)

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, UObjectWrapper, NativeAccessSpecifierPublic, TObjectPtr)
	TArray<class UOceanCollisionComponent*>       CollisionHullSets;                                 // 0x0038(0x0010)(ExportObject, ZeroConstructor, ContainsInstancedReference, NonPIEDuplicateTransient, UObjectWrapper, NativeAccessSpecifierPublic, TObjectPtr)

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 (0x0318 - 0x0318)
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
// 0x0060 (0x16A0 - 0x1640)
class UWaterBodyOceanComponent final : public UWaterBodyComponent
{
public:
	TArray<class UOceanBoxCollisionComponent*>    CollisionBoxes;                                    // 0x1640(0x0010)(ExportObject, ZeroConstructor, ContainsInstancedReference, Protected, NonPIEDuplicateTransient, UObjectWrapper, NativeAccessSpecifierProtected, TObjectPtr)
	TArray<class UOceanCollisionComponent*>       CollisionHullSets;                                 // 0x1650(0x0010)(ExportObject, ZeroConstructor, ContainsInstancedReference, Protected, NonPIEDuplicateTransient, UObjectWrapper, NativeAccessSpecifierProtected, TObjectPtr)
	struct FVector                                CollisionExtents;                                  // 0x1660(0x0018)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	struct FVector2D                              OceanExtents;                                      // 0x1678(0x0010)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	struct FVector2D                              SavedZoneLocation;                                 // 0x1688(0x0010)(ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	bool                                          bCenterOnWaterZone;                                // 0x1698(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_1699[0x3];                                     // 0x1699(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	float                                         HeightOffset;                                      // 0x169C(0x0004)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)

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, UObjectWrapper, NativeAccessSpecifierPublic, TObjectPtr)

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 (0x0318 - 0x0318)
class AWaterBodyRiver final : 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 (0x1670 - 0x1640)
class UWaterBodyRiverComponent final : public UWaterBodyComponent
{
public:
	TArray<class USplineMeshComponent*>           SplineMeshComponents;                              // 0x1640(0x0010)(ExportObject, ZeroConstructor, ContainsInstancedReference, Protected, NonPIEDuplicateTransient, UObjectWrapper, NativeAccessSpecifierProtected, TObjectPtr)
	class UMaterialInterface*                     LakeTransitionMaterial;                            // 0x1650(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	class UMaterialInstanceDynamic*               LakeTransitionMID;                                 // 0x1658(0x0008)(Edit, ZeroConstructor, DisableEditOnTemplate, Transient, EditConst, NoDestructor, Protected, TextExportTransient, NonPIEDuplicateTransient, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	class UMaterialInterface*                     OceanTransitionMaterial;                           // 0x1660(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)
	class UMaterialInstanceDynamic*               OceanTransitionMID;                                // 0x1668(0x0008)(Edit, ZeroConstructor, DisableEditOnTemplate, Transient, EditConst, NoDestructor, Protected, TextExportTransient, NonPIEDuplicateTransient, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected, TObjectPtr)

public:
	void SetLakeAndOceanTransitionMaterials(class UMaterialInterface* InLakeTransition, class UMaterialInterface* InOceanTransition);
	void SetLakeTransitionMaterial(class UMaterialInterface* InMat);
	void SetOceanTransitionMaterial(class UMaterialInterface* InMat);
	void SetRiverDepthAtSplineInputKey(float InKey, float InDepth);
	void SetRiverWidthAtSplineInputKey(float InKey, float InWidth);

	float GetRiverDepthAtSplineInputKey(float InKey) const;
	float GetRiverWidthAtSplineInputKey(float InKey) const;

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
// 0x0220 (0x0790 - 0x0570)
class UWaterMeshComponent final : public UMeshComponent
{
public:
	int32                                         ForceCollapseDensityLevel;                         // 0x0568(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_56C[0x4];                                      // 0x056C(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	class UMaterialInterface*                     FarDistanceMaterial;                               // 0x0570(0x0008)(Edit, ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	float                                         FarDistanceMeshExtent;                             // 0x0578(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         TileSize;                                          // 0x057C(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	struct FIntPoint                              QuadTreeResolution;                                // 0x0580(0x0008)(Edit, ZeroConstructor, Transient, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_588[0x148];                                    // 0x0588(0x0148)(Fixing Size After Last Property [ Dumper-7 ])
	TSet<class UMaterialInterface*>               UsedMaterials;                                     // 0x06D0(0x0050)(Transient, TextExportTransient, NonPIEDuplicateTransient, UObjectWrapper, NativeAccessSpecifierPrivate, TObjectPtr)
	TMap<class UMaterialInterface*, class UMaterialInstanceDynamic*> MaterialToMID;                  // 0x0720(0x0050)(Transient, TextExportTransient, NonPIEDuplicateTransient, UObjectWrapper, NativeAccessSpecifierPrivate, TObjectPtr)
	bool                                          bUseFarMeshWithoutOcean;                           // 0x0770(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_771[0xF];                                      // 0x0771(0x000F)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         TessellationFactor;                                // 0x0780(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	float                                         LODScale;                                          // 0x0784(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_788[0x8];                                      // 0x0788(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
// 0x0090 (0x00C8 - 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                                         WaterBodyIconWorldZOffset;                         // 0x0068(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FName                                   DefaultWaterCollisionProfileName;                  // 0x006C(0x0008)(Edit, ZeroConstructor, Config, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_74[0x4];                                       // 0x0074(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	TSoftObjectPtr<class UMaterialInterface>      DefaultWaterInfoMaterial;                          // 0x0078(0x0028)(Edit, Config, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	TSubclassOf<class UWaterBodyRiverComponent>   WaterBodyRiverComponentClass;                      // 0x00A0(0x0008)(ZeroConstructor, Config, Deprecated, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	TSubclassOf<class UWaterBodyLakeComponent>    WaterBodyLakeComponentClass;                       // 0x00A8(0x0008)(ZeroConstructor, Config, Deprecated, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	TSubclassOf<class UWaterBodyOceanComponent>   WaterBodyOceanComponentClass;                      // 0x00B0(0x0008)(ZeroConstructor, Config, Deprecated, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	TSubclassOf<class UWaterBodyCustomComponent>  WaterBodyCustomComponentClass;                     // 0x00B8(0x0008)(ZeroConstructor, Config, Deprecated, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	bool                                          bWarnOnMismatchOceanExtent;                        // 0x00C0(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_C1[0x7];                                       // 0x00C1(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])

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 (0x05F0 - 0x05D0)
class UWaterSplineComponent final : public USplineComponent
{
public:
	struct FWaterSplineCurveDefaults              WaterSplineDefaults;                               // 0x05D0(0x0010)(Edit, DisableEditOnInstance, NoDestructor, NativeAccessSpecifierPublic)
	struct FWaterSplineCurveDefaults              PreviousWaterSplineDefaults;                       // 0x05E0(0x0010)(NoDestructor, NativeAccessSpecifierPublic)

public:
	void K2_SynchronizeAndBroadcastDataChange();

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
// 0x0190 (0x01D0 - 0x0040)
class UWaterSubsystem final : public UTickableWorldSubsystem
{
public:
	class ABuoyancyManager*                       BuoyancyManager;                                   // 0x0040(0x0008)(ZeroConstructor, Transient, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	TMulticastInlineDelegate<void(bool bIsUnderWater, float DepthUnderwater)> OnCameraUnderwaterStateChanged; // 0x0048(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void()>              OnWaterScalabilityChanged;                         // 0x0058(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	class UStaticMesh*                            DefaultRiverMesh;                                  // 0x0068(0x0008)(ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	class UStaticMesh*                            DefaultLakeMesh;                                   // 0x0070(0x0008)(ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	uint8                                         Pad_78[0x28];                                      // 0x0078(0x0028)(Fixing Size After Last Property [ Dumper-7 ])
	class UMaterialParameterCollection*           MaterialParameterCollection;                       // 0x00A0(0x0008)(ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)
	uint8                                         Pad_A8[0x128];                                     // 0x00A8(0x0128)(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, NoDestructor, PersistentInstance, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)

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, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)

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
// 0x0098 (0x0340 - 0x02A8)
class AWaterZone final : public AActor
{
public:
	class UTextureRenderTarget2DArray*            WaterInfoTextureArray;                             // 0x02A8(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, Transient, EditConst, DuplicateTransient, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	int32                                         WaterInfoTextureArrayNumSlices;                    // 0x02B0(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, Transient, EditConst, DuplicateTransient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_2B4[0x4];                                      // 0x02B4(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<TWeakObjectPtr<class UWaterBodyComponent>> OwnedWaterBodies;                              // 0x02B8(0x0010)(Edit, ExportObject, ZeroConstructor, Transient, EditConst, ContainsInstancedReference, UObjectWrapper, NativeAccessSpecifierPrivate)
	struct FIntPoint                              RenderTargetResolution;                            // 0x02C8(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	class UWaterMeshComponent*                    WaterMesh;                                         // 0x02D0(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, EditConst, InstancedReference, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)
	struct FVector2D                              ZoneExtent;                                        // 0x02D8(0x0010)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	float                                         CaptureZOffset;                                    // 0x02E8(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	bool                                          bHalfPrecisionTexture;                             // 0x02EC(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_2ED[0x3];                                      // 0x02ED(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         VelocityBlurRadius;                                // 0x02F0(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	int32                                         OverlapPriority;                                   // 0x02F4(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	bool                                          bEnableLocalOnlyTessellation;                      // 0x02F8(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_2F9[0x7];                                      // 0x02F9(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	struct FVector                                LocalTessellationExtent;                           // 0x0300(0x0018)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	bool                                          bAutoIncludeLandscapesAsTerrain;                   // 0x0318(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_319[0xF];                                      // 0x0319(0x000F)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         WaterZoneIndex;                                    // 0x0328(0x0004)(Edit, ZeroConstructor, Transient, EditConst, DuplicateTransient, IsPlainOldData, NonTransactional, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_32C[0x4];                                      // 0x032C(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	TMulticastInlineDelegate<void(const class UTextureRenderTarget2DArray* WaterInfoTextureArray)> OnWaterInfoTextureArrayCreated; // 0x0330(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPrivate)

public:
	void SetFarMeshMaterial(class UMaterialInterface* InFarMaterial);

	int32 GetWaterZoneIndex() const;

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;

SDK_NAMESPACE_END
