123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using System.Net;
- using System.Net.Sockets;
- namespace ET.Server
- {
- public static class SceneFactory
- {
- public static async ETTask<Scene> CreateServerScene(Entity parent, long id, long instanceId, int zone, string name, SceneType sceneType, StartSceneConfig startSceneConfig = null)
- {
- await ETTask.CompletedTask;
- Scene scene = EntitySceneFactory.CreateScene(id, instanceId, zone, sceneType, name, parent);
- scene.AddComponent<MailBoxComponent, MailboxType>(MailboxType.UnOrderMessageDispatcher);
- switch (scene.SceneType)
- {
- case SceneType.Router:
-
-
-
- scene.AddComponent<RouterComponent, IPEndPoint, string>(startSceneConfig.InnerIPOutPort,
- startSceneConfig.StartProcessConfig.InnerIP
- );
- break;
- case SceneType.RouterManager:
-
- scene.AddComponent<HttpComponent, string>($"http://+:{startSceneConfig.OuterPort}/");
- break;
- case SceneType.Realm:
- scene.AddComponent<NetServerComponent, IPEndPoint>(startSceneConfig.InnerIPOutPort);
- break;
- case SceneType.Game:
- scene.AddComponent<NetServerComponent, IPEndPoint>(startSceneConfig.InnerIPOutPort);
- scene.AddComponent<GamePlayerComponent>();
- scene.AddComponent<GameSessionKeyComponent>();
-
- scene.AddComponent<GameRoomComponent>();
- break;
- case SceneType.Location:
- scene.AddComponent<LocationComponent>();
- break;
- case SceneType.Robot:
- scene.AddComponent<RobotManagerComponent>();
- break;
- case SceneType.BenchmarkServer:
- scene.AddComponent<BenchmarkServerComponent>();
- scene.AddComponent<NetServerComponent, IPEndPoint>(startSceneConfig.OuterIPPort);
- break;
- case SceneType.BenchmarkClient:
- scene.AddComponent<BenchmarkClientComponent>();
- break;
- }
- return scene;
- }
- }
- }
|