SceneFactory.cs 1.3 KB

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