#pragma once

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

// Package: ChaosMover

#include "Basic.hpp"

#include "ChaosMover_classes.hpp"
#include "ChaosMover_parameters.hpp"


SDK_NAMESPACE_START

// Function ChaosMover.ChaosMovementModeTransition.GetSimulation_Mutable
// (Final, Native, Public, BlueprintCallable, BlueprintPure)
// Parameters:
// class UChaosMoverSimulation*            ReturnValue                                            (Parm, OutParm, ZeroConstructor, ReturnParm, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

class UChaosMoverSimulation* UChaosMovementModeTransition::GetSimulation_Mutable()
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("ChaosMovementModeTransition", "GetSimulation_Mutable");

	Params::ChaosMovementModeTransition_GetSimulation_Mutable Parms{};

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function ChaosMover.ChaosMovementModeTransition.GetSimulation
// (Final, Native, Public, BlueprintCallable, BlueprintPure, Const)
// Parameters:
// const class UChaosMoverSimulation*      ReturnValue                                            (ConstParm, Parm, OutParm, ZeroConstructor, ReturnParm, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

const class UChaosMoverSimulation* UChaosMovementModeTransition::GetSimulation() const
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("ChaosMovementModeTransition", "GetSimulation");

	Params::ChaosMovementModeTransition_GetSimulation Parms{};

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function ChaosMover.ChaosCharacterMoverComponent.Launch
// (Final, Native, Public, HasOutParams, HasDefaults, BlueprintCallable)
// Parameters:
// const struct FVector&                   VelocityOrImpulse                                      (ConstParm, Parm, OutParm, ZeroConstructor, ReferenceParm, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// EChaosMoverVelocityEffectMode           Mode                                                   (Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

void UChaosCharacterMoverComponent::Launch(const struct FVector& VelocityOrImpulse, EChaosMoverVelocityEffectMode Mode)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("ChaosCharacterMoverComponent", "Launch");

	Params::ChaosCharacterMoverComponent_Launch Parms{};

	Parms.VelocityOrImpulse = std::move(VelocityOrImpulse);
	Parms.Mode = Mode;

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;
}


// Function ChaosMover.ChaosGroundMovementUtils.ComputeLocalGroundVelocity_Internal
// (Final, Native, Static, Public, HasOutParams, HasDefaults, BlueprintCallable)
// Parameters:
// const struct FVector&                   position                                               (ConstParm, Parm, OutParm, ZeroConstructor, ReferenceParm, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// const struct FFloorCheckResult&         FloorResult                                            (ConstParm, Parm, OutParm, ReferenceParm, NoDestructor, ContainsInstancedReference, NativeAccessSpecifierPublic)
// struct FVector                          ReturnValue                                            (Parm, OutParm, ZeroConstructor, ReturnParm, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

struct FVector UChaosGroundMovementUtils::ComputeLocalGroundVelocity_Internal(const struct FVector& position, const struct FFloorCheckResult& FloorResult)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = StaticClass()->GetFunction("ChaosGroundMovementUtils", "ComputeLocalGroundVelocity_Internal");

	Params::ChaosGroundMovementUtils_ComputeLocalGroundVelocity_Internal Parms{};

	Parms.position = std::move(position);
	Parms.FloorResult = std::move(FloorResult);

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	GetDefaultObj()->ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function ChaosMover.ChaosCharacterMovementModeInterface.GetGroundQueryRadius
// (Native, Public, BlueprintCallable, BlueprintPure, Const)
// Parameters:
// float                                   ReturnValue                                            (Parm, OutParm, ZeroConstructor, ReturnParm, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

float IChaosCharacterMovementModeInterface::GetGroundQueryRadius() const
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = AsUObject()->Class->GetFunction("ChaosCharacterMovementModeInterface", "GetGroundQueryRadius");

	Params::ChaosCharacterMovementModeInterface_GetGroundQueryRadius Parms{};

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	AsUObject()->ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function ChaosMover.ChaosCharacterMovementModeInterface.GetMaxWalkSlopeCosine
// (Native, Public, BlueprintCallable, BlueprintPure, Const)
// Parameters:
// float                                   ReturnValue                                            (Parm, OutParm, ZeroConstructor, ReturnParm, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

float IChaosCharacterMovementModeInterface::GetMaxWalkSlopeCosine() const
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = AsUObject()->Class->GetFunction("ChaosCharacterMovementModeInterface", "GetMaxWalkSlopeCosine");

	Params::ChaosCharacterMovementModeInterface_GetMaxWalkSlopeCosine Parms{};

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	AsUObject()->ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function ChaosMover.ChaosCharacterMovementModeInterface.GetTargetHeight
// (Native, Public, BlueprintCallable, BlueprintPure, Const)
// Parameters:
// float                                   ReturnValue                                            (Parm, OutParm, ZeroConstructor, ReturnParm, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

float IChaosCharacterMovementModeInterface::GetTargetHeight() const
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = AsUObject()->Class->GetFunction("ChaosCharacterMovementModeInterface", "GetTargetHeight");

	Params::ChaosCharacterMovementModeInterface_GetTargetHeight Parms{};

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	AsUObject()->ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function ChaosMover.ChaosCharacterMovementModeInterface.ShouldCharacterRemainUpright
// (Native, Public, BlueprintCallable, BlueprintPure, Const)
// Parameters:
// bool                                    ReturnValue                                            (Parm, OutParm, ZeroConstructor, ReturnParm, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

bool IChaosCharacterMovementModeInterface::ShouldCharacterRemainUpright() const
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = AsUObject()->Class->GetFunction("ChaosCharacterMovementModeInterface", "ShouldCharacterRemainUpright");

	Params::ChaosCharacterMovementModeInterface_ShouldCharacterRemainUpright Parms{};

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	AsUObject()->ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function ChaosMover.SharedChaosCharacterMovementSettings.SetMaxWalkableSlopeAngle
// (Final, Native, Protected, BlueprintCallable)
// Parameters:
// float                                   Value                                                  (Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

void USharedChaosCharacterMovementSettings::SetMaxWalkableSlopeAngle(float Value)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("SharedChaosCharacterMovementSettings", "SetMaxWalkableSlopeAngle");

	Params::SharedChaosCharacterMovementSettings_SetMaxWalkableSlopeAngle Parms{};

	Parms.Value = Value;

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;
}


// Function ChaosMover.ChaosMoverBackendComponent.HandleOwningPawnControllerChanged_Server
// (Final, RequiredAPI, Native, Protected)
// Parameters:
// class APawn*                            OwnerPawn                                              (Parm, ZeroConstructor, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// class AController*                      OldController                                          (Parm, ZeroConstructor, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// class AController*                      NewController                                          (Parm, ZeroConstructor, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

void UChaosMoverBackendComponent::HandleOwningPawnControllerChanged_Server(class APawn* OwnerPawn, class AController* OldController, class AController* NewController)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("ChaosMoverBackendComponent", "HandleOwningPawnControllerChanged_Server");

	Params::ChaosMoverBackendComponent_HandleOwningPawnControllerChanged_Server Parms{};

	Parms.OwnerPawn = OwnerPawn;
	Parms.OldController = OldController;
	Parms.NewController = NewController;

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;
}


// Function ChaosMover.ChaosMoverBackendComponent.HandleUpdatedComponentPhysicsStateChanged
// (RequiredAPI, Native, Protected)
// Parameters:
// class UPrimitiveComponent*              ChangedComponent                                       (Parm, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// EComponentPhysicsStateChange            StateChange                                            (Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

void UChaosMoverBackendComponent::HandleUpdatedComponentPhysicsStateChanged(class UPrimitiveComponent* ChangedComponent, EComponentPhysicsStateChange StateChange)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("ChaosMoverBackendComponent", "HandleUpdatedComponentPhysicsStateChanged");

	Params::ChaosMoverBackendComponent_HandleUpdatedComponentPhysicsStateChanged Parms{};

	Parms.ChangedComponent = ChangedComponent;
	Parms.StateChange = StateChange;

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;
}


// Function ChaosMover.ChaosMovementMode.GetSimulation
// (Final, Native, Public, BlueprintCallable, BlueprintPure, Const)
// Parameters:
// const class UChaosMoverSimulation*      ReturnValue                                            (ConstParm, Parm, OutParm, ZeroConstructor, ReturnParm, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

const class UChaosMoverSimulation* UChaosMovementMode::GetSimulation() const
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("ChaosMovementMode", "GetSimulation");

	Params::ChaosMovementMode_GetSimulation Parms{};

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function ChaosMover.ChaosMoverSimulation.GetDebugSimData
// (Final, RequiredAPI, Native, Public, BlueprintCallable, BlueprintPure)
// Parameters:
// struct FMoverDataCollection             ReturnValue                                            (Parm, OutParm, ReturnParm, NativeAccessSpecifierPublic)

struct FMoverDataCollection UChaosMoverSimulation::GetDebugSimData()
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("ChaosMoverSimulation", "GetDebugSimData");

	Params::ChaosMoverSimulation_GetDebugSimData Parms{};

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function ChaosMover.ChaosMoverSimulation.GetLocalSimInput_Mutable
// (Final, RequiredAPI, Native, Public, BlueprintCallable, BlueprintPure)
// Parameters:
// struct FMoverDataCollection             ReturnValue                                            (Parm, OutParm, ReturnParm, NativeAccessSpecifierPublic)

struct FMoverDataCollection UChaosMoverSimulation::GetLocalSimInput_Mutable()
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("ChaosMoverSimulation", "GetLocalSimInput_Mutable");

	Params::ChaosMoverSimulation_GetLocalSimInput_Mutable Parms{};

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function ChaosMover.ChaosMoverSimulation.K2_QueueInstantMovementEffect
// (Final, Native, Public, HasOutParams, BlueprintCallable)
// Parameters:
// const int32&                            EffectAsRawData                                        (ConstParm, Parm, OutParm, ZeroConstructor, ReferenceParm, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

void UChaosMoverSimulation::K2_QueueInstantMovementEffect(const int32& EffectAsRawData)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("ChaosMoverSimulation", "K2_QueueInstantMovementEffect");

	Params::ChaosMoverSimulation_K2_QueueInstantMovementEffect Parms{};

	Parms.EffectAsRawData = EffectAsRawData;

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;
}


// Function ChaosMover.ChaosMoverSimulation.FindMovementModeByName
// (Final, RequiredAPI, Native, Public, HasOutParams, BlueprintCallable, BlueprintPure, Const)
// Parameters:
// const class FName&                      Name_0                                                 (ConstParm, Parm, OutParm, ZeroConstructor, ReferenceParm, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// const class UBaseMovementMode*          ReturnValue                                            (ConstParm, ExportObject, Parm, OutParm, ZeroConstructor, ReturnParm, InstancedReference, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

const class UBaseMovementMode* UChaosMoverSimulation::FindMovementModeByName(const class FName& Name_0) const
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("ChaosMoverSimulation", "FindMovementModeByName");

	Params::ChaosMoverSimulation_FindMovementModeByName Parms{};

	Parms.Name_0 = Name_0;

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function ChaosMover.ChaosMoverSimulation.GetCurrentMovementMode
// (Final, RequiredAPI, Native, Public, BlueprintCallable, BlueprintPure, Const)
// Parameters:
// const class UBaseMovementMode*          ReturnValue                                            (ConstParm, ExportObject, Parm, OutParm, ZeroConstructor, ReturnParm, InstancedReference, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

const class UBaseMovementMode* UChaosMoverSimulation::GetCurrentMovementMode() const
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("ChaosMoverSimulation", "GetCurrentMovementMode");

	Params::ChaosMoverSimulation_GetCurrentMovementMode Parms{};

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function ChaosMover.ChaosMoverSimulation.GetLocalSimInput
// (Final, RequiredAPI, Native, Public, BlueprintCallable, BlueprintPure, Const)
// Parameters:
// const struct FMoverDataCollection       ReturnValue                                            (ConstParm, Parm, OutParm, ReturnParm, ReferenceParm, NativeAccessSpecifierPublic)

const struct FMoverDataCollection UChaosMoverSimulation::GetLocalSimInput() const
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("ChaosMoverSimulation", "GetLocalSimInput");

	Params::ChaosMoverSimulation_GetLocalSimInput Parms{};

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


SDK_NAMESPACE_END
