コード例 #1
0
        //处理请求
        public void HandleRequest(ControllerCode controllerCode, RequestCode requestCode, string data, Client client)
        {
            //TODO根据这里添加需求即可
            BaseCtrlService service;
            bool            isGet = serviceDict.TryGetValue(controllerCode, out service);

            if (!isGet)
            {
                Console.WriteLine("Cant Get " + requestCode + " Handler");
                return;
            }
            //使用反射获取方法
            string     methodName = Enum.GetName(typeof(RequestCode), requestCode);
            MethodInfo mi         = service.GetType().GetMethod(methodName);

            if (mi == null)
            {
                Console.WriteLine("[warning]no method:<" + service.GetType() + "." + methodName + ">");
            }
            Console.WriteLine(data);
            object[] parameters = new object[] { data, client, server };
            object   o          = mi.Invoke(service, parameters);

            if (o == null || string.IsNullOrEmpty(o as string))
            {
                return;
            }
            server.SendResponse(client, requestCode, o as string);
        }
コード例 #2
0
 public void ReadMessage(int newDataAmount, Action <ControllerCode, RequestCode, string> processDataCallBack)
 {
     dynamicLength += newDataAmount;
     while (true)
     {
         if (dynamicLength <= 4)
         {
             return;
         }
         int count = BitConverter.ToInt32(data, 0);
         if (dynamicLength - 4 >= count)
         {
             ControllerCode controllerCode = (ControllerCode)BitConverter.ToInt32(data, 4);
             RequestCode    requestCode    = (RequestCode)BitConverter.ToInt32(data, 8);
             string         s = Encoding.UTF8.GetString(data, 12, count - 8);
             processDataCallBack(controllerCode, requestCode, s);
             Array.Copy(data, count + 4, data, 0, dynamicLength - 4 - count);
             dynamicLength -= count + 4;
         }
         else
         {
             return;
         }
     }
 }
コード例 #3
0
    public bool GetControllerButton(ControllerCode buttonCode, int gamePadIndex, ButtonStateType buttonState = ButtonStateType.Down)
    {
        string buttonName = GetGamePadControllerCodeName(buttonCode, gamePadIndex);

        if (ControllerMap.ContainsKey(buttonName))
        {
            ControllerMappedInput mappedInput = ControllerMap[buttonName];
            if (!mappedInput.IsAxis)
            {
                if (mappedInput.Key != KeyCode.None)
                {
                    switch (buttonState)
                    {
                    case ButtonStateType.Down:
                        return(Input.GetKeyDown(mappedInput.Key));

                    case ButtonStateType.Up:
                        return(Input.GetKeyUp(mappedInput.Key));

                    case ButtonStateType.Constant:
                        return(Input.GetKey(mappedInput.Key));
                    }
                }
            }
        }

        return(false);
    }
コード例 #4
0
ファイル: Operation.cs プロジェクト: eznew-net/Demo.Core2.2
        /// <summary>
        /// 保存数据验证
        /// </summary>
        /// <returns></returns>
        protected override bool SaveValidation()
        {
            bool valResult = base.SaveValidation();

            if (!valResult)
            {
                return(valResult);
            }
            if (group.CurrentValue?.IdentityValueIsNone() ?? true)
            {
                throw new Exception($"请设置操作功能:{Name} 的分组");
            }
            if (!operationGroupService.Exist(group.CurrentValue.Id))
            {
                throw new Exception("操作功能设置的分组: {group.CurrentValue.Id} 不存在");
            }
            ActionCode     = ActionCode?.ToUpper() ?? string.Empty;
            ControllerCode = ControllerCode?.ToUpper() ?? string.Empty;
            return(true);
        }
コード例 #5
0
        /// <summary>
        /// 保存数据验证
        /// </summary>
        /// <returns></returns>
        protected override bool SaveValidation()
        {
            bool valResult = base.SaveValidation();

            if (!valResult)
            {
                return(valResult);
            }
            ControllerCode = ControllerCode?.ToUpper() ?? string.Empty;
            ActionCode     = ActionCode?.ToUpper() ?? string.Empty;
            if (group.CurrentValue == null || group.CurrentValue.SysNo <= 0)
            {
                throw new Exception("请设置操作所属分组");
            }
            IQuery groupQuery = QueryManager.Create <AuthorityOperationGroupQuery>(c => c.SysNo == group.CurrentValue.SysNo);

            if (!this.Instance <IAuthorityOperationGroupRepository>().Exist(groupQuery))
            {
                throw new Exception("请设置正确的分组");
            }
            return(true);
        }
コード例 #6
0
ファイル: Server.cs プロジェクト: zgzcir/SRLS
 public void HandleRequest(ControllerCode controllerCode, RequestCode requestCode, string data, Client client)
 {
     controllerManager.HandleRequest(controllerCode, requestCode, data, client);
 }
コード例 #7
0
ファイル: Client.cs プロジェクト: zgzcir/SRLS
 private void OnProcessMessage(ControllerCode controllerCode, RequestCode requestCode, string data)
 {
     server.HandleRequest(controllerCode, requestCode, data, this);
 }
コード例 #8
0
 private string GetGamePadControllerCodeName(ControllerCode genericControllerCode, int gamePadIndex)
 {
     return(string.Format("{0}_{1}", genericControllerCode, gamePadIndex + 1));
 }
コード例 #9
0
    public float GetControllerAxis(ControllerCode axisCode, int gamePadIndex)
    {
        string axisName = GetGamePadControllerCodeName(axisCode, gamePadIndex);

        if (ControllerMap.ContainsKey(axisName))
        {
            ControllerMappedInput mappedInput = ControllerMap[axisName];
            if (mappedInput.IsAxis)
            {
                if (!string.IsNullOrEmpty(mappedInput.Axis))
                {
                    if (currentOS == OS.Mac)
                    {
                        if (axisCode == ControllerCode.LeftTriggerAxis)
                        {
                            float leftTriggerAxisValue = Input.GetAxis(mappedInput.Axis);

                            if (LeftTriggerPressed)
                            {
                                leftTriggerAxisValue = MapMacTriggerAxisToPercent(leftTriggerAxisValue);
                            }
                            else
                            {
                                if (leftTriggerAxisValue != 0)
                                {
                                    LeftTriggerPressed   = true;
                                    leftTriggerAxisValue = MapMacTriggerAxisToPercent(leftTriggerAxisValue);
                                }
                            }

                            return(leftTriggerAxisValue);
                        }
                        else if (axisCode == ControllerCode.RightTriggerAxis)
                        {
                            float rightTriggerAxisValue = Input.GetAxis(mappedInput.Axis);

                            if (RightTriggerPressed)
                            {
                                rightTriggerAxisValue = MapMacTriggerAxisToPercent(rightTriggerAxisValue);
                            }
                            else
                            {
                                if (rightTriggerAxisValue != 0)
                                {
                                    RightTriggerPressed   = true;
                                    rightTriggerAxisValue = MapMacTriggerAxisToPercent(rightTriggerAxisValue);
                                }
                            }

                            return(rightTriggerAxisValue);
                        }
                        else
                        {
                            return(Input.GetAxis(mappedInput.Axis));
                        }
                    }
                    else
                    {
                        return(Input.GetAxis(mappedInput.Axis));
                    }
                }
            }
        }

        return(0f);
    }