private List <KeyValuePair <Keys, ActionTypeBinding> > GetBindings() { string[] bindingCodeLines = KeyboardBindingsContent.Split(';'); Dictionary <Keys, ActionTypeBinding> resultBindings = new Dictionary <Keys, ActionTypeBinding>(); try { for (Int32 i = 0; i < bindingCodeLines.Length; i++) { if (bindingCodeLines[i] != string.Empty) { string[] keyValue = bindingCodeLines[i].Split(':'); ActionTypeBinding actionType = (ActionTypeBinding)Enum.Parse(typeof(ActionTypeBinding), keyValue[0]); Keys key = (Keys)char.ToUpper(keyValue[1].ToCharArray()[1]); resultBindings.Add(key, actionType); } } } catch (ArgumentException ex) { // wrong argument in keybinding.ini throw ex; } catch (Exception ex) { throw ex; } return(resultBindings.ToList()); }
public void SetBindingKeyboardKey(Keys key, ActionTypeBinding actionBinding) { if (playerCamera.GetThirdPersonTarget() != null) { MovableEntity thirdPersonEntity = playerCamera.GetThirdPersonTarget(); Factory_BindActionToKey(key, actionBinding); } }
private void Factory_BindActionToKey(Keys key, ActionTypeBinding actionBinding) { switch (actionBinding) { case ActionTypeBinding.MoveForward: PlayerMoveForward = new Tuple <Action, Keys>(new Action(playerCamera.GetThirdPersonTarget().MoveActorForward), key); keyboard.AllocateKey(key); break; case ActionTypeBinding.MoveBack: break; case ActionTypeBinding.MoveLeft: break; case ActionTypeBinding.MoveRight: break; case ActionTypeBinding.Jump: break; } }