Files
UltimateFishing2020/Assets/Scripts/Assembly-CSharp/Rewired/Internal/ControllerTemplateFactory.cs
2026-03-04 10:03:45 +08:00

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