private void GenerateInputDeviceIds(CSTextDocumentBuilder builder, GamepadComponentType type) { CSTextDocumentWriter writer = builder.CreateWriterWithVariablePairs( "CLASS", "Gamepad" + type + "Ids", "TYPE", "Gamepad" + type + "Id" ); writer.Write("static public class ?CLASS", delegate() { components.Narrow(c => c.GetComponentType() == type) .Process(c => c.GenerateIdMember(builder)); writer.Write("static public IEnumerable<?TYPE> GetAll()", delegate() { components.Narrow(c => c.GetComponentType() == type) .Process(c => c.GenerateIdYield(builder)); writer.Write("yield break;"); }); }); }
static public Type GetSystemType(this GamepadComponentType item) { switch (item) { case GamepadComponentType.Axis: return(typeof(GamepadComponent_Axis)); case GamepadComponentType.Button: return(typeof(GamepadComponent_Button)); case GamepadComponentType.Slider: return(typeof(GamepadComponent_Slider)); case GamepadComponentType.Stick: return(typeof(GamepadComponent_Stick)); case GamepadComponentType.MenuAxis: return(typeof(GamepadComponent_MenuAxis)); case GamepadComponentType.MenuStick: return(typeof(GamepadComponent_MenuStick)); } throw new UnaccountedBranchException("item", item); }