using CommonAI.Zone;
using CommonAIServer.Connector;
using CommonNetwork.Sockets;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ZeusServerTestClient
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(startWinForm());
        }

        private static FormLauncher startWinForm()
        {
            ClientLoader loader = new ClientLoader();
            TemplateManager.setFactory(new ZeusCommon.Plugin.ZeusZoneFactory());
            loader.Init(new DirectoryInfo(Application.StartupPath + "/mpq"));
            return new FormLauncher(
                "file://H:\\projects\\morefuntek\\Zeus\\GameEditors\\GameEditor\\data\\",
                "test", // player_uuid
                "107", // room_id
                typeof(NetSession).FullName, "127.0.0.1:19999", // connect_driver, connect_string
                33, // update interval
                10, // sync range
                3, 0, 107, // unit_template_id, force, scene_id
                loader, false, false);
        }

        private class ClientLoader : TestClientLoader
        {
            public override CommonAI.ZoneServer.CreateUnitInfoR2B GenUnitInfoR2B(int unitID)
            {
                CommonAI.ZoneServer.CreateUnitInfoR2B ret = new CommonAI.ZoneServer.CreateUnitInfoR2B();
                ret.UnitTemplateID = unitID;
                return ret;
            }
            public override Type ZoneFactoryType
            {
                get { return typeof(ZeusCommon.Plugin.ZeusZoneFactory); }
            }
        }


    }

}