예제 #1
0
        public override void StartEngine()
        {
            IsIdle = false;

            _gameEngine = new GameEngine(_id, GameEngineConfig.GetDefaultConfig(), (format, args) =>
            {
                OnEngineOutput(string.Format(format, args));
            });

            _gameEngine.ParseCommand("info");
        }
예제 #2
0
        public void CopyFrom(ViewerConfig config)
        {
            if (null == config)
            {
                throw new ArgumentNullException(nameof(config));
            }

            EngineCommandLine = config.EngineCommandLine;
            EngineType        = config.EngineType;

            HexOrientation = config.HexOrientation;
            NotationType   = config.NotationType;

            PieceStyle  = config.PieceStyle;
            PieceColors = config.PieceColors;

            DisablePiecesInHandWithNoMoves = config.DisablePiecesInHandWithNoMoves;
            DisablePiecesInPlayWithNoMoves = config.DisablePiecesInPlayWithNoMoves;

            HighlightTargetMove     = config.HighlightTargetMove;
            HighlightValidMoves     = config.HighlightValidMoves;
            HighlightLastMovePlayed = config.HighlightLastMovePlayed;

            BlockInvalidMoves       = config.BlockInvalidMoves;
            RequireMoveConfirmation = config.RequireMoveConfirmation;

            AddPieceNumbers   = config.AddPieceNumbers;
            StackPiecesInHand = config.StackPiecesInHand;

            PlaySoundEffects = config.PlaySoundEffects;

            ShowBoardHistory   = config.ShowBoardHistory;
            ShowMoveCommentary = config.ShowMoveCommentary;

            FirstRun           = config.FirstRun;
            CheckUpdateOnStart = config.CheckUpdateOnStart;

            InternalGameEngineConfig = config.InternalGameEngineConfig;
        }
예제 #3
0
 public InternalEngineWrapper(string id, GameEngineConfig gameEngineConfig) : base()
 {
     _id = !string.IsNullOrWhiteSpace(id) ? id.Trim() : throw new ArgumentNullException(nameof(id));
     GameEngineConfig = gameEngineConfig ?? throw new ArgumentNullException(nameof(gameEngineConfig));
 }
예제 #4
0
        protected override void Load(ContainerBuilder builder)
        {
            IGameEngineConfig    config = new GameEngineConfig().LoadConfiguration("test");
            WebSocketServiceHost host   = null;

            builder.RegisterType <ConsoleLoggingService>()
            .InstancePerLifetimeScope()
            .As <ILoggingService>();

            builder.RegisterType <ConsoleRenderer>()
            .SingleInstance()
            .As <IRenderer>();

            builder
            .RegisterType <GameEngineConfig>()
            .SingleInstance()
            .As <IGameEngineConfig>();

            builder
            .RegisterType <InternalWebSocketClient>()
            .SingleInstance()
            .AsSelf();

            builder.RegisterType <WebSocketServer>()
            .SingleInstance()
            .As <WebSocketServer>()
            .WithParameters(new Parameter[]
            {
                new NamedParameter("address", IPAddress.Parse("127.0.0.1")),
                new NamedParameter("port", 2137),
            })
            .OnActivated(args =>
            {
                Type[] allAvailableCommands   = Command.GetAvailableCommands();
                Type[] allAvailableParameters = Command.GetAvailableParameters();

                WebSocketServer instance = args.Instance;
                instance.AddWebSocketService <WebSocketCommandReceiver>("/command", (c) =>
                {
                    c.Initialize(new InputStringCommandResolver(allAvailableCommands, allAvailableParameters), CommandFactory);
                });
                instance.Start();
                instance.WebSocketServices.TryGetServiceHost("/command", out host);
            });

            builder
            .RegisterType <SimpleGameServer>()
            .SingleInstance()
            .As <SimpleGameServer>()
            .OnActivated(a => a.Instance.AddHost(host));


            builder.RegisterAssemblyTypes(AppDomain.CurrentDomain.GetAssemblies())
            .Where(type => type.IsSubclassOf(typeof(GameLogicBehaviour)))
            .As <GameLogicBehaviour>()
            .InstancePerDependency();

            builder.RegisterType <SimpleGameEngine>()
            .SingleInstance()
            .WithParameters(new[]
            {
                new NamedParameter("config", config),
            })
            .AsSelf()
            .OnActivated(engineBuilder => engineBuilder.Instance.Run());
        }
예제 #5
0
 public InternalEngineWrapper(string id) : base()
 {
     _id = !string.IsNullOrWhiteSpace(id) ? id.Trim() : throw new ArgumentNullException("id");
     _gameEngineConfig = GameEngineConfig.GetDefaultConfig();
 }