AppStart_Init.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435
  1. namespace ET
  2. {
  3. public class AppStart_Init: AEvent<EventType.AppStart>
  4. {
  5. protected override async ETTask Run(EventType.AppStart args)
  6. {
  7. Game.Scene.AddComponent<TimerComponent>();
  8. Game.Scene.AddComponent<CoroutineLockComponent>();
  9. // 加载配置
  10. Game.Scene.AddComponent<ConfigComponent>();
  11. await ConfigComponent.Instance.LoadAsync();
  12. Game.Scene.AddComponent<OpcodeTypeComponent>();
  13. Game.Scene.AddComponent<MessageDispatcherComponent>();
  14. Game.Scene.AddComponent<SessionStreamDispatcher>();
  15. Game.Scene.AddComponent<NetThreadComponent>();
  16. Game.Scene.AddComponent<ZoneSceneManagerComponent>();
  17. Game.Scene.AddComponent<AIDispatcherComponent>();
  18. Game.Scene.AddComponent<RobotCaseDispatcherComponent>();
  19. Game.Scene.AddComponent<RobotCaseComponent>();
  20. var processScenes = StartSceneConfigCategory.Instance.GetByProcess(Game.Options.Process);
  21. foreach (StartSceneConfig startConfig in processScenes)
  22. {
  23. await RobotSceneFactory.Create(Game.Scene, startConfig.Id, startConfig.InstanceId, startConfig.Zone, startConfig.Name, startConfig.Type, startConfig);
  24. }
  25. if (Game.Options.Console == 1)
  26. {
  27. Game.Scene.AddComponent<ConsoleComponent>();
  28. }
  29. }
  30. }
  31. }