#pragma once

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

// Package: BPI_ItemInterface

#include "Basic.hpp"

#include "BPI_ItemInterface_classes.hpp"
#include "BPI_ItemInterface_parameters.hpp"


SDK_NAMESPACE_START

// Function BPI_ItemInterface.BPI_ItemInterface_C.UpdateCoreDatas
// (Public, BlueprintCallable, BlueprintEvent)
// Parameters:
// const struct FST_ItemCoreDatas&         CoreDatas                                              (ConstParm, BlueprintVisible, BlueprintReadOnly, Parm, HasGetValueTypeHash)

void IBPI_ItemInterface_C::UpdateCoreDatas(const struct FST_ItemCoreDatas& CoreDatas)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = AsUObject()->Class->GetFunction("BPI_ItemInterface_C", "UpdateCoreDatas");

	Params::BPI_ItemInterface_C_UpdateCoreDatas Parms{};

	Parms.CoreDatas = std::move(CoreDatas);

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


// Function BPI_ItemInterface.BPI_ItemInterface_C.SetMeshDatas
// (Public, BlueprintCallable, BlueprintEvent)
// Parameters:
// bool                                    KeepScale                                              (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)

void IBPI_ItemInterface_C::SetMeshDatas(bool KeepScale)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = AsUObject()->Class->GetFunction("BPI_ItemInterface_C", "SetMeshDatas");

	Params::BPI_ItemInterface_C_SetMeshDatas Parms{};

	Parms.KeepScale = KeepScale;

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


// Function BPI_ItemInterface.BPI_ItemInterface_C.PickState
// (Public, BlueprintCallable, BlueprintEvent)
// Parameters:
// bool                                    State                                                  (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
// class ABP_FirstPersonCharacter_Main_C*  Character                                              (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, NoDestructor, HasGetValueTypeHash)
// int32                                   SlotIndex                                              (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)

void IBPI_ItemInterface_C::PickState(bool State, class ABP_FirstPersonCharacter_Main_C* Character, int32 SlotIndex)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = AsUObject()->Class->GetFunction("BPI_ItemInterface_C", "PickState");

	Params::BPI_ItemInterface_C_PickState Parms{};

	Parms.State = State;
	Parms.Character = Character;
	Parms.SlotIndex = SlotIndex;

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


// Function BPI_ItemInterface.BPI_ItemInterface_C.InteractItem
// (Public, BlueprintCallable, BlueprintEvent)

void IBPI_ItemInterface_C::InteractItem()
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = AsUObject()->Class->GetFunction("BPI_ItemInterface_C", "InteractItem");

	AsUObject()->ProcessEvent(Func, nullptr);
}


// Function BPI_ItemInterface.BPI_ItemInterface_C.GetParentCharacter
// (Public, HasOutParams, BlueprintCallable, BlueprintEvent)
// Parameters:
// class ABP_FirstPersonCharacter_Main_C** FirstpersonCharacter                                   (Parm, OutParm, ZeroConstructor, NoDestructor, HasGetValueTypeHash)

void IBPI_ItemInterface_C::GetParentCharacter(class ABP_FirstPersonCharacter_Main_C** FirstpersonCharacter)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = AsUObject()->Class->GetFunction("BPI_ItemInterface_C", "GetParentCharacter");

	Params::BPI_ItemInterface_C_GetParentCharacter Parms{};

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

	if (FirstpersonCharacter != nullptr)
		*FirstpersonCharacter = Parms.FirstpersonCharacter;
}


// Function BPI_ItemInterface.BPI_ItemInterface_C.GetItemInfo
// (Public, HasOutParams, BlueprintCallable, BlueprintEvent)
// Parameters:
// ENUM_HandType*                          HandType                                               (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
// ENUM_ClassType*                         ClassType                                              (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
// bool*                                   NotPickUp                                              (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
// struct FRotator*                        HaveRotation                                           (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor)
// struct FVector*                         Add_Position                                           (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
// bool*                                   IsBoneAttach                                           (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
// ENUM_ItemBindType*                      BindType                                               (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
// class FName*                            BoneName                                               (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
// struct FST_ItemCoreDatas*               CoreDatas                                              (Parm, OutParm, HasGetValueTypeHash)

void IBPI_ItemInterface_C::GetItemInfo(ENUM_HandType* HandType, ENUM_ClassType* ClassType, bool* NotPickUp, struct FRotator* HaveRotation, struct FVector* Add_Position, bool* IsBoneAttach, ENUM_ItemBindType* BindType, class FName* BoneName, struct FST_ItemCoreDatas* CoreDatas)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = AsUObject()->Class->GetFunction("BPI_ItemInterface_C", "GetItemInfo");

	Params::BPI_ItemInterface_C_GetItemInfo Parms{};

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

	if (HandType != nullptr)
		*HandType = Parms.HandType;

	if (ClassType != nullptr)
		*ClassType = Parms.ClassType;

	if (NotPickUp != nullptr)
		*NotPickUp = Parms.NotPickUp;

	if (HaveRotation != nullptr)
		*HaveRotation = std::move(Parms.HaveRotation);

	if (Add_Position != nullptr)
		*Add_Position = std::move(Parms.Add_Position);

	if (IsBoneAttach != nullptr)
		*IsBoneAttach = Parms.IsBoneAttach;

	if (BindType != nullptr)
		*BindType = Parms.BindType;

	if (BoneName != nullptr)
		*BoneName = Parms.BoneName;

	if (CoreDatas != nullptr)
		*CoreDatas = std::move(Parms.CoreDatas);
}


// Function BPI_ItemInterface.BPI_ItemInterface_C.DropItem
// (Public, BlueprintCallable, BlueprintEvent)
// Parameters:
// const struct FVector&                   Force_Vector                                           (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
// const struct FVector&                   CentorPosition                                         (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)

void IBPI_ItemInterface_C::DropItem(const struct FVector& Force_Vector, const struct FVector& CentorPosition)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = AsUObject()->Class->GetFunction("BPI_ItemInterface_C", "DropItem");

	Params::BPI_ItemInterface_C_DropItem Parms{};

	Parms.Force_Vector = std::move(Force_Vector);
	Parms.CentorPosition = std::move(CentorPosition);

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


SDK_NAMESPACE_END
