public DebugMessageHandler(Contexts contexts, ServerRoom converter) : base(converter) { _contexts = contexts; room = converter; _handler = new ServerDebugCommandHandler(_contexts); _sessionStateMachine = converter.GetSessionStateMachine(); }
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); }
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(); }
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); }
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); }
public DebugCommandHandler(SessionStateMachine clientSessionStateMachine, Contexts contexts) { _clientSessionStateMachine = clientSessionStateMachine; _contexts = contexts; _clientDebugCommandHandler = new ClientDebugCommandHandler(contexts); }