public override void StartEngine() { IsIdle = false; _gameEngine = new GameEngine(_id, GameEngineConfig.GetDefaultConfig(), (format, args) => { OnEngineOutput(string.Format(format, args)); }); _gameEngine.ParseCommand("info"); }
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; }
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)); }
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()); }
public InternalEngineWrapper(string id) : base() { _id = !string.IsNullOrWhiteSpace(id) ? id.Trim() : throw new ArgumentNullException("id"); _gameEngineConfig = GameEngineConfig.GetDefaultConfig(); }