SceneFactory.cs 1.3 KB

1234567891011121314151617181920212223242526272829
  1. namespace ET
  2. {
  3. public static class SceneFactory
  4. {
  5. public static Scene CreateZoneScene(int zone, string name, Entity parent)
  6. {
  7. Scene zoneScene = EntitySceneFactory.CreateScene(Game.IdGenerater.GenerateInstanceId(), zone, SceneType.Zone, name, parent);
  8. zoneScene.AddComponent<ZoneSceneFlagComponent>();
  9. zoneScene.AddComponent<NetKcpComponent, int>(SessionStreamDispatcherType.SessionStreamDispatcherClientOuter);
  10. zoneScene.AddComponent<CurrentScenesComponent>();
  11. zoneScene.AddComponent<ObjectWait>();
  12. zoneScene.AddComponent<PlayerComponent>();
  13. Game.EventSystem.Publish(new EventType.AfterCreateZoneScene() {ZoneScene = zoneScene});
  14. return zoneScene;
  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(new EventType.AfterCreateCurrentScene() {CurrentScene = currentScene});
  21. return currentScene;
  22. }
  23. }
  24. }