コード例 #1
0
ファイル: GameClient.cs プロジェクト: pashcovich/mptanks2d
        private void CreateGame()
        {
            var game = new GameCore(
                new NLogLogger(Logger.Instance),
                Engine.Gamemodes.Gamemode.ReflectiveInitialize("CoreAssets+DeathMatchGamemode"),
                Modding.ModLoader.LoadedMods["core-assets.mod"].GetAsset("abetterplace.json"),
                EngineSettings.GetInstance()
                );

            //game.Timescale = GameCore.TimescaleValue.OneSixteenth;
            game.Authoritative       = true;
            game.FriendlyFireEnabled = true;

            if (IsHost)
            {
                Client = new NetClient(
                    "localhost",
                    33132,
                    new NLogLogger(Logger.Instance),
                    AOTConfig.Password);
                //And set up server, default port
                Server = new Server(new Configuration()
                {
                    MaxPlayers    = 32, //Non-configurable -- use dedicated server for more players
                    Password      = AOTConfig.Password,
                    Port          = 33132,
                    StateSyncRate = TimeSpan.FromMilliseconds(1000)
                }, game, true, new NLogLogger(Logger.Instance));
                //TODO: Remove this DUMMY PLAYER

                /*
                 *
                 *
                 *
                 *
                 *
                 *
                 * Whitespace is here to make this super obvious
                 * We auto add a dummy player, but we NEED to remove it before shipping.
                 *
                 *
                 *
                 *
                 *
                 *
                 *
                 *
                 */
                for (var i = 0; i < 10; i++)
                {
                    Server.AddPlayer(new ServerPlayer(Server, new NetworkPlayer
                    {
                        Username = "******",
                        UniqueId = Guid.NewGuid(),
                        SelectedTankReflectionName = "BasicTankMPCopy",
                        IsReady = true
                    }));
                }
            }
            else
            {
                Client = new NetClient(
                    AOTConfig.Ip,
                    AOTConfig.Port,
                    new NLogLogger(Logger.Instance),
                    AOTConfig.Password);
            }

            Client.GameInstance.GameChanged += delegate
            {
                GameRenderer.Game = Client.GameInstance.Game;
                SoundPlayer.Game  = Client.GameInstance.Game;
            };
            GameRenderer.Game = Client.GameInstance.Game;
            SoundPlayer.Game  = Client.GameInstance.Game;
            //And initialize the debug system
            DebugDrawer?.Dispose();
            DebugDrawer = new DebugDrawer(this, Client);
        }