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

#pragma once

#include "Modules/ModuleManager.h"

class AWheeledVehicle;
class IForceSeatMIPhysXVehicle_ControllerCore;

class ForceSeatMIPhysXVehicle : public IModuleInterface
{
public:
	virtual IForceSeatMIPhysXVehicle_ControllerCore* CreateControllerCore(AWheeledVehicle* vehicle) = 0;

public:
	static inline ForceSeatMIPhysXVehicle& Get()
	{
		return FModuleManager::LoadModuleChecked<ForceSeatMIPhysXVehicle>("ForceSeatMIPhysXVehicle");
	}

	static inline bool IsAvailable()
	{
		return FModuleManager::Get().IsModuleLoaded("ForceSeatMIPhysXVehicle");
	}
};
