SceneFactory.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. using System.Net.Sockets;
  2. namespace ET.Client
  3. {
  4. public static class SceneFactory
  5. {
  6. public static async ETTask<Scene> CreateClientScene(int zone, string name, Entity parent)
  7. {
  8. await ETTask.CompletedTask;
  9. Scene clientScene = EntitySceneFactory.CreateScene(zone, SceneType.Client, name, parent);
  10. clientScene.AddComponent<ClientSceneFlagComponent>();
  11. clientScene.AddComponent<CurrentScenesComponent>();
  12. clientScene.AddComponent<ObjectWait>();
  13. clientScene.AddComponent<PlayerComponent>();
  14. Game.EventSystem.Publish(clientScene, new EventType.AfterCreateClientScene());
  15. return clientScene;
  16. }
  17. public static Scene CreateCurrentScene(long id, int zone, string name, CurrentScenesComponent currentScenesComponent)
  18. {
  19. Scene currentScene = EntitySceneFactory.CreateScene(id, IdGenerater.Instance.GenerateInstanceId(), zone, SceneType.Current, name, currentScenesComponent);
  20. currentScenesComponent.Scene = currentScene;
  21. Game.EventSystem.Publish(currentScene, new EventType.AfterCreateCurrentScene());
  22. return currentScene;
  23. }
  24. }
  25. }