Exemplo n.º 1
0
        private static void Main(string[] args)
        {
            try
            {
                BsonClassMapRegister.Register();

                Object.ObjectManager.Register("Model", typeof(Game).Assembly);
                Object.ObjectManager.Register("Controller", DllHelper.GetController());

                StartConfig startConfig = Game.Scene.AddComponent <StartConfigComponent, string[]>(args).MyConfig;

                IdGenerater.AppId = startConfig.AppId;

                LogManager.Configuration.Variables["appType"] = startConfig.AppType.ToString();
                LogManager.Configuration.Variables["appId"]   = startConfig.AppId.ToString();

                Log.Info("server start........................");

                Game.Scene.AddComponent <EventComponent>();
                Game.Scene.AddComponent <TimerComponent>();

                InnerConfig innerConfig = startConfig.GetComponent <InnerConfig>();
                Game.Scene.AddComponent <NetInnerComponent, string, int>(innerConfig.Host, innerConfig.Port);
                Game.Scene.AddComponent <MessageDispatherComponent, AppType>(startConfig.AppType);

                // 根据不同的AppType添加不同的组件
                OuterConfig outerConfig = startConfig.GetComponent <OuterConfig>();
                switch (startConfig.AppType)
                {
                case AppType.Manager:
                    Game.Scene.AddComponent <NetOuterComponent, string, int>(outerConfig.Host, outerConfig.Port);
                    Game.Scene.AddComponent <AppManagerComponent>();
                    break;

                case AppType.Realm:
                    Game.Scene.AddComponent <NetOuterComponent, string, int>(outerConfig.Host, outerConfig.Port);
                    Game.Scene.AddComponent <RealmGateAddressComponent>();
                    break;

                case AppType.Gate:
                    Game.Scene.AddComponent <NetOuterComponent, string, int>(outerConfig.Host, outerConfig.Port);
                    Game.Scene.AddComponent <GateSessionKeyComponent>();
                    break;

                case AppType.AllServer:
                    Game.Scene.AddComponent <NetOuterComponent, string, int>(outerConfig.Host, outerConfig.Port);
                    Game.Scene.AddComponent <AppManagerComponent>();
                    Game.Scene.AddComponent <RealmGateAddressComponent>();
                    Game.Scene.AddComponent <GateSessionKeyComponent>();
                    break;

                case AppType.Robot:
                    Game.Scene.AddComponent <RobotComponent>();
                    break;

                default:
                    throw new Exception($"命令行参数没有设置正确的AppType: {startConfig.AppType}");
                }

                while (true)
                {
                    Object.ObjectManager.Update();
                }
            }
            catch (Exception e)
            {
                Log.Error(e.ToString());
            }
        }
Exemplo n.º 2
0
 static EditorInit()
 {
     BsonClassMapRegister.Register();
     EditorApplication.update += Update;
 }