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; } }