using System.Net; namespace ET.Server { [Event(SceneType.Process)] public class EntryEvent2_InitServer: AEvent { protected override async ETTask Run(Scene scene, EventType.EntryEvent2 args) { // 发送普通actor消息 Root.Instance.Scene.AddComponent(); // 发送location actor消息 Root.Instance.Scene.AddComponent(); // 访问location server的组件 Root.Instance.Scene.AddComponent(); Root.Instance.Scene.AddComponent(); Root.Instance.Scene.AddComponent(); Root.Instance.Scene.AddComponent(); StartProcessConfig processConfig = StartProcessConfigCategory.Instance.Get(Options.Instance.Process); Log.Debug($"AppType: {Options.Instance.AppType}"); switch (Options.Instance.AppType) { case AppType.Server: { Root.Instance.Scene.AddComponent(processConfig.InnerIPPort); var processScenes = StartSceneConfigCategory.Instance.GetByProcess(Options.Instance.Process); foreach (StartSceneConfig startConfig in processScenes) { await SceneFactory.CreateServerScene(ServerSceneManagerComponent.Instance, startConfig.Id, startConfig.InstanceId, startConfig.Zone, startConfig.Name, startConfig.Type, startConfig); } break; } case AppType.Watcher: { StartMachineConfig startMachineConfig = WatcherHelper.GetThisMachineConfig(); WatcherComponent watcherComponent = Root.Instance.Scene.AddComponent(); watcherComponent.Start(Options.Instance.CreateScenes); Root.Instance.Scene.AddComponent(NetworkHelper.ToIPEndPoint($"{startMachineConfig.InnerIP}:{startMachineConfig.WatcherPort}")); break; } case AppType.GameTool: break; } if (Options.Instance.Console == 1) { Root.Instance.Scene.AddComponent(); } } } }