public MainEditorPane() { InitializeComponent(); var tilesetModel = new TilesetViewModel(); tileStrip.DataContext = tilesetModel; var brushViewModel = App.Container.Get <TileBrushControlViewModel>(); brushTray.DataContext = brushViewModel; var tilingToolProvider = new CombinedToolProvider(tilesetModel, brushViewModel); stageTileControl.ToolProvider = tilingToolProvider; var layoutEditor = new LayoutEditingViewModel(); layoutToolbar.DataContext = layoutEditor; stageLayoutControl.ToolProvider = layoutEditor; var entityModel = new EntityTrayViewModel(); stageEntitiesControl.ToolProvider = entityModel; entityTray.DataContext = entityModel; }
private void setsListView_SelectionChanged(object sender, SelectionChangedEventArgs e) { // Editor has been notified (inside the tilesets view model selected get), just do grid processing. // Get selected set. TilesetViewModel tilesetViewModel = null; foreach (object o in e.AddedItems) { tilesetViewModel = o as TilesetViewModel; } // No set, return. if (tilesetViewModel == null) { tilesetView.Visibility = Visibility.Hidden; return; } tilesetView.Visibility = Visibility.Visible; // Reconstruct grid and selection grid. ReconstructGrid(editor.Tilesets.FirstOrDefault(t => t.Name == tilesetViewModel.Name)); ReconstructSelectionGrid(); }
public void Update() { if (Tileset?.Tileset != SelectedTileset) { if (SelectedTileset == null) { Tileset = null; } else { Tileset = new TilesetViewModel(SelectedTileset); Tileset.PropertyChangedValue += Tileset_PropertyChangedValue; } } else if (SelectedTileset != null) { Tileset.TileWidth = SelectedTileset.TileWidth; Tileset.TileHeight = SelectedTileset.TileHeight; Tileset.SpritePath = SelectedTileset.SpritePath; } if (!string.IsNullOrEmpty(SelectedTileset?.SpritePath)) { TexData spr = viewer.LoadImage(Tileset.SpritePath); widthBox.Maximum = spr.image.Width; heightBox.Maximum = spr.image.Height; int tileCount = (spr.image.Width / Tileset.TileWidth) * (spr.image.Height / Tileset.TileHeight); SelectedTile = SelectedTile >= tileCount ? tileCount - 1 : SelectedTile; } tilesetPicker.Items.Clear(); foreach (var tileset in ApplicationSettings.Instance.ActiveProject.Tilesets) { tilesetPicker.Items.Add(tileset.Value); } tilesetPicker.Items.Add(null); tilesetPicker.Items.Add(new TilesetDummy { Name = "New Tileset..." }); if (SelectedTileset != null) { tilesetPicker.SelectedValuePath = "Name"; tilesetPicker.SelectedValue = SelectedTileset.Name; } else { tilesetPicker.SelectedIndex = 0; } spriteButton.Content = Tileset?.SpritePath ?? "Select Sprite"; }