84 lines
3.7 KiB
C#
Executable File
84 lines
3.7 KiB
C#
Executable File
|
|
|
|
using System.Net;
|
|
|
|
namespace ET
|
|
{
|
|
public static class SceneFactory
|
|
{
|
|
public static async ETTask<Scene> Create(Entity parent, string name, SceneType sceneType)
|
|
{
|
|
long id = Game.IdGenerater.GenerateId();
|
|
return await Create(parent, id, parent.DomainZone(), name, sceneType);
|
|
}
|
|
|
|
public static async ETTask<Scene> Create(Entity parent, long id, int zone, string name, SceneType sceneType, StartSceneConfig startSceneConfig = null)
|
|
{
|
|
Scene scene = EntitySceneFactory.CreateScene(id, zone, sceneType, name);
|
|
scene.Parent = parent;
|
|
|
|
|
|
Log.Debug($"OuterAddress {startSceneConfig?.InnerOuterAddress}");
|
|
|
|
scene.AddComponent<MailBoxComponent, MailboxType>(MailboxType.UnOrderMessageDispatcher);
|
|
|
|
switch (scene.SceneType)
|
|
{
|
|
case SceneType.Realm:
|
|
scene.AddComponent<NetKcpComponent, IPEndPoint>(startSceneConfig.InnerOuterAddress);
|
|
break;
|
|
case SceneType.Gate:
|
|
scene.AddComponent<NetKcpComponent, IPEndPoint>(startSceneConfig.InnerOuterAddress).AddComponent<SessionCountCheckComponent>();
|
|
scene.AddComponent<GateSessionKeyComponent>();
|
|
scene.AddComponent<OnLineComponent>();
|
|
scene.AddComponent<GateUserComponent>();
|
|
scene.AddComponent<PlayerConfigComponent>();
|
|
break;
|
|
case SceneType.Map:
|
|
scene.AddComponent<RunTimeComponent>();
|
|
scene.AddComponent<UserComponent>();
|
|
scene.AddComponent<ActiveComponent>();
|
|
scene.AddComponent<MapUnitComponent>();
|
|
scene.AddComponent<MaintainRewardComponent>();
|
|
scene.AddComponent<MapSceneComponent>();
|
|
scene.AddComponent<StatisticComponent>();
|
|
scene.AddComponent<VoucherLogComponent>();
|
|
scene.AddComponent<YuanBaoLogComponent>();
|
|
scene.AddComponent<TeamComponent>();
|
|
scene.AddComponent<DelaySendSyncAttributeComponent>();
|
|
scene.AddComponent<SkillConfigComponent>();
|
|
scene.AddComponent<SkillOptionFactoryComponent>();
|
|
scene.AddComponent<BuffBrocastComponent>();
|
|
scene.AddComponent<BuffLibComponent>();
|
|
scene.AddComponent<GoodsEffectComponent>();
|
|
scene.AddComponent<OffLinePlayerBuffComponent>();
|
|
scene.AddComponent<ItemComponent>();
|
|
scene.AddComponent<OnlineRewardComponent>();
|
|
scene.AddComponent<TaskComponent>();
|
|
scene.AddComponent<Chat>();
|
|
scene.AddComponent<Shop>();
|
|
scene.AddComponent<ConsignmentComponent>();
|
|
scene.AddComponent<MailComponent>();
|
|
scene.AddComponent<FriendComponent>();
|
|
scene.AddComponent<StoreComponent>();
|
|
scene.AddComponent<Ranking>();
|
|
scene.AddComponent<FamilyComponent>();
|
|
scene.AddComponent<FamilyBossComponent>();
|
|
scene.AddComponent<QuestComponent>();
|
|
break;
|
|
case SceneType.Location:
|
|
scene.AddComponent<LocationComponent>();
|
|
break;
|
|
case SceneType.GameMap:
|
|
|
|
break;
|
|
case SceneType.UserCache:
|
|
var cache=scene.AddComponent<PlayerInfoComponent>();
|
|
break;
|
|
}
|
|
|
|
await ETTask.CompletedTask;
|
|
return scene;
|
|
}
|
|
}
|
|
} |