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;
        }
Example #2
0
        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();
        }
Example #3
0
        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";
        }