using Fantasy; using Fantasy.Async; using Fantasy.Event; using NB.Authentication; using NB.Chat; using NB.Game; using NB.Gate; using NB.Map; namespace NB; public class OnSceneCreate_Init : AsyncEventSystem { protected override async FTask Handler(OnCreateScene self) { var scene = self.Scene; switch (scene.SceneType) { case SceneType.Authentication: { // 用于鉴权服务器注册和登录相关逻辑的组件 scene.AddComponent().UpdatePosition(); // 用于颁发ToKen证书相关的逻辑。 scene.AddComponent(); break; } case SceneType.Gate: { // 用于管理网关所有连接的组件 scene.AddComponent(); // 用于验证JWT是否合法的组件 scene.AddComponent(); break; } case SceneType.Game: { //用于管理玩家的组件 scene.AddComponent(); scene.AddComponent(); break; } case SceneType.Social: { //用于管理玩家的组件 scene.AddComponent(); scene.AddComponent(); scene.AddComponent(); break; } case SceneType.Map: { Log.Info("创建地图场景==="); scene.AddComponent(); var roomManageComponent = scene.AddComponent(); scene.AddComponent(); var room = roomManageComponent.Create(361499030775398402); if (room != null) { roomManageComponent.TestRoomCode = room.Code; Log.Info($"测试房间代码 = {room.Code}"); } break; } } await FTask.CompletedTask; } }