SceneFactory.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using ETModel;
  2. namespace ETHotfix
  3. {
  4. public static class SceneFactory
  5. {
  6. public static async ETTask<Scene> Create(Entity parent, string name, SceneType sceneType)
  7. {
  8. return await Create(parent, IdGenerater.GenerateSceneId(), name, sceneType);
  9. }
  10. public static async ETTask<Scene> Create(Entity parent, long id, string name, SceneType sceneType)
  11. {
  12. Scene scene = EntityFactory.CreateScene(id, name, sceneType);
  13. scene.Parent = parent;
  14. scene.AddComponent<MailBoxComponent, MailboxType>(MailboxType.UnOrderMessageDispatcher);
  15. switch (scene.SceneType)
  16. {
  17. case SceneType.Realm:
  18. break;
  19. case SceneType.Gate:
  20. scene.AddComponent<GateSessionKeyComponent>();
  21. break;
  22. case SceneType.Map:
  23. scene.AddComponent<UnitComponent>();
  24. break;
  25. case SceneType.Location:
  26. scene.AddComponent<LocationComponent>();
  27. break;
  28. }
  29. return scene;
  30. }
  31. }
  32. }