Exemplo n.º 1
0
        private void ReadInputAction_V1(ControlScheme scheme, XmlNode node)
        {
            string       name    = ReadAttribute(node, "name", "Unnamed Axis");
            InputAction  action  = scheme.CreateNewAction(name);
            InputBinding binding = action.CreateNewBinding();

            foreach (XmlNode child in node.ChildNodes)
            {
                switch (child.LocalName)
                {
                case "description":
                    action.Description = child.InnerText;
                    break;

                case "positive":
                    binding.Positive = InputBinding.StringToKey(child.InnerText);
                    break;

                case "negative":
                    binding.Negative = InputBinding.StringToKey(child.InnerText);
                    break;

                case "deadZone":
                    binding.DeadZone = ReadAsFloat(child);
                    break;

                case "gravity":
                    binding.Gravity = ReadAsFloat(child, 1.0f);
                    break;

                case "sensitivity":
                    binding.Sensitivity = ReadAsFloat(child, 1.0f);
                    break;

                case "snap":
                    binding.Snap = ReadAsBool(child);
                    break;

                case "invert":
                    binding.Invert = ReadAsBool(child);
                    break;

                case "type":
                    binding.Type = InputBinding.StringToInputType(child.InnerText);
                    break;

                case "axis":
                    binding.Axis = ReadAsInt(child);
                    break;

                case "joystick":
                    binding.Joystick = ReadAsInt(child);
                    break;
                }
            }

            if (binding.Type == InputType.Button || binding.Type == InputType.DigitalAxis)
            {
                XmlNode      altPositiveNode = SelectSingleNode(node, "altPositive");
                XmlNode      altNegativeNode = SelectSingleNode(node, "altNegative");
                InputBinding secondary       = action.CreateNewBinding(binding);
                secondary.Positive = InputBinding.StringToKey(altPositiveNode.InnerText);
                secondary.Negative = InputBinding.StringToKey(altNegativeNode.InnerText);
            }
        }
Exemplo n.º 2
0
        private void ReadInputBinding_V2(InputAction action, XmlNode node)
        {
            InputBinding binding = action.CreateNewBinding();

            foreach (XmlNode child in node.ChildNodes)
            {
                switch (child.LocalName)
                {
                case "Positive":
                    binding.Positive = InputBinding.StringToKey(child.InnerText);
                    break;

                case "Negative":
                    binding.Negative = InputBinding.StringToKey(child.InnerText);
                    break;

                case "DeadZone":
                    binding.DeadZone = ReadAsFloat(child);
                    break;

                case "Gravity":
                    binding.Gravity = ReadAsFloat(child, 1.0f);
                    break;

                case "Sensitivity":
                    binding.Sensitivity = ReadAsFloat(child, 1.0f);
                    break;

                case "Snap":
                    binding.Snap = ReadAsBool(child);
                    break;

                case "Invert":
                    binding.Invert = ReadAsBool(child);
                    break;

                case "Type":
                    binding.Type = InputBinding.StringToInputType(child.InnerText);
                    break;

                case "Axis":
                    binding.Axis = ReadAsInt(child);
                    break;

                case "Joystick":
                    binding.Joystick = ReadAsInt(child);
                    break;

                case "GamepadButton":
                    binding.GamepadButton = InputBinding.StringToGamepadButton(child.InnerText);
                    break;

                case "GamepadAxis":
                    binding.GamepadAxis = InputBinding.StringToGamepadAxis(child.InnerText);
                    break;

                case "GamepadPlayer":
                    binding.GamepadIndex = InputBinding.StringToGamepadIndex(child.InnerText);
                    break;
                }
            }
        }