/*
 * Copyright (C) 2012-2026 MotionSystems
 *
 * This file is part of ForceSeatMI SDK.
 *
 * www.motionsystems.eu
 *
 */

#pragma once

#include "IForceSeatMI_API.h"
#include "ForceSeatMI_UStructs.h"

#include "CoreMinimal.h"
#include "Components/ActorComponent.h"
#include "ForceSeatMI_API_BP.generated.h"

UCLASS(ClassGroup = (ForceSeatMI), meta = (BlueprintSpawnableComponent))
class UForceSeatMI_API_BP : public UActorComponent
{
	GENERATED_BODY()
public:
	UForceSeatMI_API_BP();
	virtual ~UForceSeatMI_API_BP();

public:
	UFUNCTION(BlueprintCallable, Category = "ForceSeatMI")
	void Update(const FTopTablePositionPhysicalBP& PhysicalPosition);

public:
	virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;

protected:
	virtual void BeginPlay() override;
	virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;

private:
	IForceSeatMI_API*             Api;
	FSMI_TopTablePositionPhysical Position;
};
