public override void Run() { Game.Scene.AddComponent <ConfigComponent>(); Options options = Game.Scene.GetComponent <Options>(); StartProcessConfig processConfig = StartProcessConfigCategory.Instance.Get(options.Process); Game.Scene.AddComponent <TimerComponent>(); Game.Scene.AddComponent <OpcodeTypeComponent>(); Game.Scene.AddComponent <MessageDispatcherComponent>(); Game.Scene.AddComponent <CoroutineLockComponent>(); // 发送普通actor消息 Game.Scene.AddComponent <ActorMessageSenderComponent>(); // 发送location actor消息 Game.Scene.AddComponent <ActorLocationSenderComponent>(); // 访问location server的组件 Game.Scene.AddComponent <LocationProxyComponent>(); Game.Scene.AddComponent <ActorMessageDispatcherComponent>(); // 数值订阅组件 Game.Scene.AddComponent <NumericWatcherComponent>(); // 控制台组件 Game.Scene.AddComponent <ConsoleComponent>(); Game.Scene.AddComponent <NetInnerComponent, string>(processConfig.InnerAddress); RunInner().Coroutine(); }
public async ETVoid RunAsync() { Game.Scene.AddComponent <ConfigComponent>(); Options options = Game.Scene.GetComponent <Options>(); StartProcessConfig processConfig = StartProcessConfigCategory.Instance.Get(options.Process); Game.Scene.AddComponent <TimerComponent>(); Game.Scene.AddComponent <OpcodeTypeComponent>(); Game.Scene.AddComponent <MessageDispatcherComponent>(); Game.Scene.AddComponent <CoroutineLockComponent>(); // 发送普通actor消息 Game.Scene.AddComponent <ActorMessageSenderComponent>(); // 发送location actor消息 Game.Scene.AddComponent <ActorLocationSenderComponent>(); // 访问location server的组件 Game.Scene.AddComponent <LocationProxyComponent>(); Game.Scene.AddComponent <ActorMessageDispatcherComponent>(); // 数值订阅组件 Game.Scene.AddComponent <NumericWatcherComponent>(); // 控制台组件 Game.Scene.AddComponent <ConsoleComponent>(); Game.Scene.AddComponent <NetInnerComponent, string>(processConfig.InnerAddress); var processScenes = StartSceneConfigCategory.Instance.GetByProcess(IdGenerater.Process); foreach (StartSceneConfig startConfig in processScenes) { await SceneFactory.Create(Game.Scene, startConfig.SceneId, startConfig.Zone, startConfig.Name, startConfig.Type, startConfig); } }
public async ETTask Handle() { // 发送普通actor消息 Game.Scene.AddComponent <ActorMessageSenderComponent>(); // 发送location actor消息 Game.Scene.AddComponent <ActorLocationSenderComponent>(); // 访问location server的组件 Game.Scene.AddComponent <LocationProxyComponent>(); Game.Scene.AddComponent <ActorMessageDispatcherComponent>(); Game.Scene.AddComponent <RobotCaseDispatcherComponent>(); Game.Scene.AddComponent <RobotCaseComponent>(); Game.Scene.AddComponent <NavmeshComponent>(); StartProcessConfig processConfig = StartProcessConfigCategory.Instance.Get(Game.Options.Process); switch (Game.Options.AppType) { case AppType.Server: { Game.Scene.AddComponent <NetInnerComponent, IPEndPoint, int>(processConfig.InnerIPPort, CallbackType.SessionStreamDispatcherServerInner); var processScenes = StartSceneConfigCategory.Instance.GetByProcess(Game.Options.Process); foreach (StartSceneConfig startConfig in processScenes) { await SceneFactory.Create(Game.Scene, startConfig.Id, startConfig.InstanceId, startConfig.Zone, startConfig.Name, startConfig.Type, startConfig); } break; } case AppType.Watcher: { StartMachineConfig startMachineConfig = WatcherHelper.GetThisMachineConfig(); WatcherComponent watcherComponent = Game.Scene.AddComponent <WatcherComponent>(); watcherComponent.Start(Game.Options.CreateScenes); Game.Scene.AddComponent <NetInnerComponent, IPEndPoint, int>(NetworkHelper.ToIPEndPoint($"{startMachineConfig.InnerIP}:{startMachineConfig.WatcherPort}"), CallbackType.SessionStreamDispatcherServerInner); break; } case AppType.GameTool: break; } if (Game.Options.Console == 1) { Game.Scene.AddComponent <ConsoleComponent>(); } }
public static Process StartProcess(int processId, int createScenes = 0) { StartProcessConfig startProcessConfig = StartProcessConfigCategory.Instance.Get(processId); const string exe = "dotnet"; string arguments = $"App.dll" + $" --Process={startProcessConfig.Id}" + $" --AppType=Server" + $" --StartConfig={Game.Options.StartConfig}" + $" --Develop={Game.Options.Develop}" + $" --CreateScenes={createScenes}" + $" --LogLevel={Game.Options.LogLevel}" + $" --Console={Game.Options.Console}"; Log.Debug($"{exe} {arguments}"); Process process = ProcessHelper.Run(exe, arguments); return(process); }