示例#1
0
    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);
        }