public PointerTool(ITrainController gameState, IGameBoard gameBoard, IPixelMapper pixelMapper, ITrackLayout trackLayout) { _gameState = gameState; _gameBoard = gameBoard; _pixelMapper = pixelMapper; _trackLayout = trackLayout; }
public MainPage(IGame game, IPixelMapper pixelMapper, OrderedList <ITool> tools, OrderedList <ILayerRenderer> layers, OrderedList <ICommand> commands, ITrainController trainControls, ITrackParameters trackParameters, ITrackLayout trackLayout, IGameStorage gameStorage) { this.Title("Trains - " + ThisAssembly.AssemblyInformationalVersion); var controlDelegate = new TrainsDelegate(game, pixelMapper); _miniMapDelegate = new MiniMapDelegate(trackLayout, trackParameters, pixelMapper); this.Body = () => { return(new HStack() { new VStack() { new ToggleButton("Configuration", _configurationShown, () => _configurationShown.Value = !_configurationShown.Value), new Spacer(), _configurationShown ? CreateConfigurationControls(layers) : CreateToolsControls(tools, controlDelegate), new Spacer(), _configurationShown ? null : CreateCommandControls(commands), new Spacer(), new DrawableControl(_miniMapDelegate).Frame(height: 100) }.Frame(100, alignment: Alignment.Top), new VStack() { new TrainControllerPanel(trainControls), new DrawableControl(controlDelegate) } }.FillHorizontal()); }; _timer = new GameTimer(); _timer.Interval = 16; _timer.Elapsed += (s, e) => { game.AdjustViewPortIfNecessary(); ThreadHelper.Run(async() => { await ThreadHelper.SwitchToMainThreadAsync(); controlDelegate.Invalidate(); _miniMapDelegate.Invalidate(); }); }; _timer.Start(); _trackLayout = trackLayout; _gameStorage = gameStorage; }
protected TestBase(ITestOutputHelper output) { Storage = new NullStorage(); Timer = new TestTimer(); TrackLayout = new TrackLayout(); GameBoard = new GameBoard(TrackLayout, Storage, Timer); _output = output; }
public static Track GetTrackAt(this ITrackLayout trackLayout, int column, int row) { if (trackLayout.TryGet(column, row, out Track track)) { return(track); } return(null); }
public MiniMapDelegate(ITrackLayout trackLayout, ITrackParameters trackParameters, IPixelMapper pixelMapper) { _trackLayout = trackLayout; _trackParameters = trackParameters; _pixelMapper = pixelMapper; _pixelMapper.ViewPortChanged += (s, e) => _redraw = true; _trackLayout.TracksChanged += (s, e) => _redraw = true; }
public TrackLayoutRenderer(ITrackLayout trackLayout, ITrackRenderer trackRenderer, IPixelMapper pixelMapper, ITrackParameters parameters) { _trackLayout = trackLayout; _trackRenderer = trackRenderer; _pixelMapper = pixelMapper; _parameters = parameters; _trackLayout.TracksChanged += (s, e) => _dirty = true; }
public TrackPreviewer(ITrackLayout trackLayout, ITrackRenderer trackRenderer) { _trackLayout = trackLayout; _trackRenderer = trackRenderer; }
public PointToPoint(int movementSteps) { _movementSteps = movementSteps; _trackLayout = new TrackLayout(); _gameBoard = new GameBoard(_trackLayout, null, null); }
public GetShareCodeCommand(ITrackLayout trackLayout, ITrackCodec trackCodec) { _trackLayout = trackLayout; _trackCodec = trackCodec; }
public HappinessRenderer(ITrackLayout trackLayout, IPixelMapper pixelMapper, ITrackParameters parameters) { _trackLayout = trackLayout; _pixelMapper = pixelMapper; _parameters = parameters; }
public EraserTool(ITrackLayout trackLayout) { _trackLayout = trackLayout; }
public TrainTool(IGameBoard gameBoard, ITrackLayout trackLayout, ITrainController gameState) { _gameBoard = gameBoard; _trackLayout = trackLayout; _gameState = gameState; }
public TrainController(IGameBoard gameBoard, ITrackLayout layout) { _gameBoard = gameBoard; this.BuildMode = !layout.Any(); }
public MainPage(IGame game, IPixelMapper pixelMapper, OrderedList <ITool> tools, OrderedList <ILayerRenderer> layers, OrderedList <ICommand> commands, ITrainController trainControls, ITrackParameters trackParameters, ITrackLayout trackLayout, IGameStorage gameStorage, ITimer gameTimer, Factory <IToolPreviewer> previewerFactory) { this.Title("Trains - " + ThisAssembly.AssemblyInformationalVersion); var controlDelegate = new TrainsDelegate(game, pixelMapper, previewerFactory); _miniMapDelegate = new MiniMapDelegate(trackLayout, trackParameters, pixelMapper); this.Body = () => { return(new HStack() { new VStack() { _configurationShown?null: new Button(trainControls.BuildMode ? "Building" : "Playing", () => SwitchGameMode()), new Spacer(), _configurationShown ? CreateConfigurationControls(layers) : CreateToolsControls(tools, controlDelegate, trainControls.BuildMode.Value), new Spacer(), _configurationShown || !trainControls.BuildMode ? null : CreateCommandControls(commands), new Spacer(), new Button("Configuration", () => _configurationShown.Value = !_configurationShown.Value), new DrawableControl(_miniMapDelegate).Frame(height: 100) }.Frame(100, alignment: Alignment.Top), new VStack() { new TrainControllerPanel(trainControls), new DrawableControl(controlDelegate) } }.FillHorizontal()); }; _gameTimer = gameTimer; _gameTimer.Elapsed += (s, e) => { game.AdjustViewPortIfNecessary(); controlDelegate.FlagDraw(); _miniMapDelegate.FlagDraw(); ThreadHelper.Run(async() => { await ThreadHelper.SwitchToMainThreadAsync(); controlDelegate.Invalidate(); _miniMapDelegate.Invalidate(); }); }; _trackLayout = trackLayout; _gameStorage = gameStorage; void SwitchGameMode() { trainControls.ToggleBuildMode(); if (controlDelegate == null) { return; } controlDelegate.CurrentTool.Value = tools.FirstOrDefault(t => ShouldShowTool(trainControls.BuildMode, t)); } }
public TrackTool(ITrackLayout trackLayout) { _trackLayout = trackLayout; }