61 lines
1.5 KiB
C#
61 lines
1.5 KiB
C#
using System;
|
|
|
|
namespace Rewired.Internal
|
|
{
|
|
public static class ControllerTemplateFactory
|
|
{
|
|
private static readonly Type[] _defaultTemplateTypes = new Type[6]
|
|
{
|
|
typeof(GamepadTemplate),
|
|
typeof(RacingWheelTemplate),
|
|
typeof(HOTASTemplate),
|
|
typeof(FlightYokeTemplate),
|
|
typeof(FlightPedalsTemplate),
|
|
typeof(SixDofControllerTemplate)
|
|
};
|
|
|
|
private static readonly Type[] _defaultTemplateInterfaceTypes = new Type[6]
|
|
{
|
|
typeof(IGamepadTemplate),
|
|
typeof(IRacingWheelTemplate),
|
|
typeof(IHOTASTemplate),
|
|
typeof(IFlightYokeTemplate),
|
|
typeof(IFlightPedalsTemplate),
|
|
typeof(ISixDofControllerTemplate)
|
|
};
|
|
|
|
public static Type[] templateTypes => _defaultTemplateTypes;
|
|
|
|
public static Type[] templateInterfaceTypes => _defaultTemplateInterfaceTypes;
|
|
|
|
public static IControllerTemplate Create(Guid typeGuid, object payload)
|
|
{
|
|
if (typeGuid == GamepadTemplate.typeGuid)
|
|
{
|
|
return new GamepadTemplate(payload);
|
|
}
|
|
if (typeGuid == RacingWheelTemplate.typeGuid)
|
|
{
|
|
return new RacingWheelTemplate(payload);
|
|
}
|
|
if (typeGuid == HOTASTemplate.typeGuid)
|
|
{
|
|
return new HOTASTemplate(payload);
|
|
}
|
|
if (typeGuid == FlightYokeTemplate.typeGuid)
|
|
{
|
|
return new FlightYokeTemplate(payload);
|
|
}
|
|
if (typeGuid == FlightPedalsTemplate.typeGuid)
|
|
{
|
|
return new FlightPedalsTemplate(payload);
|
|
}
|
|
if (typeGuid == SixDofControllerTemplate.typeGuid)
|
|
{
|
|
return new SixDofControllerTemplate(payload);
|
|
}
|
|
return null;
|
|
}
|
|
}
|
|
}
|