Exemplo n.º 1
0
 public DebugMessageHandler(Contexts contexts, ServerRoom converter) : base(converter)
 {
     _contexts            = contexts;
     room                 = converter;
     _handler             = new ServerDebugCommandHandler(_contexts);
     _sessionStateMachine = converter.GetSessionStateMachine();
 }
Exemplo n.º 2
0
        public string OnDebugMessage(DebugCommand message, SessionStateMachine stateMachine)
        {
            var sb = new System.Text.StringBuilder();

            foreach (var arg in message.Args)
            {
                sb.Append(arg);
                sb.Append(",");
            }
            Logger.InfoFormat("OnDebugMessage {0} with arg {1}", message.Command, sb.ToString());
            var result = string.Empty;

            result += SharedCommandHandler.ProcessGameSettingCommnands(message, stateMachine);
            if (!string.IsNullOrEmpty(result))
            {
                return(result);
            }
            SharedCommandHandler.ProcessHitBoxCommands(message);
            result += SharedCommandHandler.ProcessDebugCommand(message, _contexts);
            if (!string.IsNullOrEmpty(result))
            {
                return(result);
            }
            result += UiModule.ProcessDebugCommand(message);
            if (!string.IsNullOrEmpty(result))
            {
                return(result);
            }

            PlayerEntity self = _contexts.player.flagSelfEntity;

            if (self != null)
            {
                result = SharedCommandHandler.ProcessPlayerCommands(message, _contexts, self, _contexts.session.commonSession, _contexts.session.currentTimeObject);
                SharedCommandHandler.ProcessVehicleCommand(message, _contexts.vehicle, self);
                SharedCommandHandler.ProcessSceneObjectCommand(
                    message,
                    _contexts.sceneObject,
                    _contexts.session.entityFactoryObject.SceneObjectEntityFactory,
                    self);
                SharedCommandHandler.ProcessMapObjectCommand(message, _contexts.mapObject,
                                                             _contexts.session.entityFactoryObject.MapObjectEntityFactory, self);
                result = SharedCommandHandler.ProcessCommands(message, _contexts, self);
            }
            return(result);
        }
Exemplo n.º 3
0
        public ClientRoom(IClientContextInitilizer clientContextInitializer)
        {
            _logger.InfoFormat("Platform Endianness is little = {0}", BitConverter.IsLittleEndian);

            _contexts = clientContextInitializer.CreateContexts();
            _clientDebugCommandHandler = new ClientDebugCommandHandler(_contexts);
            if (SharedConfig.InSamplingMode || SharedConfig.InLegacySampleingMode)
            {
                _clientSessionStateMachine = new ClientProfileSessionStateMachine(_contexts);
            }
            else
            {
                _clientSessionStateMachine = new ClientSessionStateMachine(_contexts);
            }
            SingletonManager.Get <MyProfilerManager>().Contexts = _contexts;

            InitNetworMessageHandlers();
        }
Exemplo n.º 4
0
        public ClientRoom(Contexts contexts)
        {
            _logger.InfoFormat("Platform Endianness is little = {0}", BitConverter.IsLittleEndian);

            _contexts = contexts;

            if (SharedConfig.InSamplingMode || SharedConfig.InLegacySampleingMode)
            {
                _clientSessionStateMachine = new ClientProfileSessionStateMachine(_contexts);
            }
            else
            {
                _clientSessionStateMachine = new ClientSessionStateMachine(_contexts);
            }
            SingletonManager.Get <MyProfilerManager>().Contexts = _contexts;

            _commandHandler = new DebugCommandHandler(_clientSessionStateMachine, _contexts);
        }
 public void OnDebugMessage(ServerRoom room, DebugCommand message, PlayerEntity player, SessionStateMachine sessionStateMachine)
 {
     FreeDebugCommandHandler.Handle(room.ContextsWrapper.FreeArgs, message, player);
     SharedCommandHandler.ProcessGameSettingCommnands(message, sessionStateMachine);
     SharedCommandHandler.ProcessDebugCommand(message, _contexts);
     SharedCommandHandler.ProcessHitBoxCommands(message);
     SharedCommandHandler.ProcessPlayerCommands(message, _contexts, player, _contexts.session.commonSession,
                                                _contexts.session.currentTimeObject);
     SharedCommandHandler.ProcessVehicleCommand(message, _contexts.vehicle, player);
     SharedCommandHandler.ProcessSceneObjectCommand(message, _contexts.sceneObject,
                                                    _contexts.session.entityFactoryObject.SceneObjectEntityFactory, player);
     SharedCommandHandler.ProcessMapObjectCommand(message, _contexts.mapObject,
                                                  _contexts.session.entityFactoryObject.MapObjectEntityFactory, player);
     SharedCommandHandler.ProcessCommands(message, _contexts, player);
 }
Exemplo n.º 6
0
        public static string ProcessGameSettingCommnands(DebugCommand message, SessionStateMachine stateMachine)
        {
            if (message.Command == DebugCommands.SetFrameRate)
            {
                string target    = message.Args[0].ToLower();
                var    frameRate = int.Parse(message.Args[1]);
                if (frameRate == -1)
                {
                    QualitySettings.vSyncCount = 1;
                    return("ok");
                }
                QualitySettings.vSyncCount = 0;
                GameSettingUtility.SetFrameRate(target, frameRate);
                return("ok");
            }
            else if (message.Command == DebugCommands.GetUnityQuality)
            {
                var qualityName = GameSettingUtility.GetQualityName();
                message.Args    = new string[1];
                message.Args[0] = qualityName;
                return(qualityName);
            }
            else if (message.Command == DebugCommands.GetQualityList)
            {
                message.Args = GameSettingUtility.GetQualityNameList();
                return("ok");
            }
            else if (message.Command == DebugCommands.GetQuality)
            {
                var qualityName = SettingManager.GetInstance().GetQuality();
                return(qualityName.ToString());
            }
            else if (message.Command == DebugCommands.SetQuality)
            {
                int levelIndex = int.Parse(message.Args[0]);
                GameSettingUtility.SetQuality(levelIndex);
                return("ok");
            }
            else if (message.Command == DebugCommands.Quality)
            {
                int levelIndex = int.Parse(message.Args[0]);
                SettingManager.GetInstance().SetQuality((QualityLevel)levelIndex);
                return("ok");
            }
            else if (message.Command == DebugCommands.VideoSetting)
            {
                int id = int.Parse(message.Args[0]);

                return(GameQualitySettingManager.GetVideoValue((EVideoSettingId)id));
            }

            else if (message.Command == DebugCommands.LodBias)
            {
                if (message.Args.Length > 0)
                {
                    float val;
                    if (float.TryParse(message.Args[0], out val))
                    {
                        QualitySettings.lodBias = val;
                    }
                    else
                    {
                        return("参数不合法,需要能转为float类型");
                    }
                }
                else
                {
                    return(QualitySettings.lodBias.ToString());
                }

                return("ok");
            }
            else if (message.Command == DebugCommands.TreeDistance)
            {
                if (message.Args.Length > 1)
                {
                    float val;
                    if (float.TryParse(message.Args[0], out val))
                    {
                        SingletonManager.Get <DynamicScenesController>().SetTreeDistance(val);
                    }
                    else
                    {
                        return("参数不合法,需要能转为float类型");
                    }
                    if (float.TryParse(message.Args[1], out val))
                    {
                        SingletonManager.Get <DynamicScenesController>().SetGrassDensity(val);
                    }
                    else
                    {
                        return("参数不合法,需要能转为float类型");
                    }
                }
                else if (message.Args.Length > 0)
                {
                    float val;
                    if (float.TryParse(message.Args[0], out val))
                    {
                        SingletonManager.Get <DynamicScenesController>().SetTreeDistance(val);
                    }
                    else
                    {
                        return("参数不合法,需要能转为float类型");
                    }
                }
                else
                {
                    return(string.Format("tree {0}, grass {1}", SingletonManager.Get <DynamicScenesController>().GetTreeDistance(),
                                         SingletonManager.Get <DynamicScenesController>().GetGrassDensity()));
                }

                return("ok");
            }
            else if (message.Command == DebugCommands.PermitSystem)
            {
                if (stateMachine.PermitSystem(message.Args[0]))
                {
                    return("ok");
                }
                return("wrong path");
            }
            else if (message.Command == DebugCommands.ForbidSystem)
            {
                if (stateMachine.ForbidSystems(message.Args[0]))
                {
                    return("ok");
                }
                return("wrong path");
            }
            else if (message.Command == DebugCommands.ShowSystem)
            {
                var treeNode = stateMachine.GetUpdateSystemTree();
                return(TransSystemTreeToString(treeNode));
            }
            return(String.Empty);
        }
Exemplo n.º 7
0
 public DebugCommandHandler(SessionStateMachine clientSessionStateMachine, Contexts contexts)
 {
     _clientSessionStateMachine = clientSessionStateMachine;
     _contexts = contexts;
     _clientDebugCommandHandler = new ClientDebugCommandHandler(contexts);
 }