/// <inheritdoc /> public override void AddLayer() { base.AddLayer(); Tileset tileset = this.SelectedTileset.Res; if (tileset == null) { return; } // Decide upon an id for our new layer string autoTileId = TilesetAutoTileInput.DefaultId + (tileset.AutoTileConfig.Count).ToString(); string autoTileName = TilesetAutoTileInput.DefaultName; // Create a new AutoTile using an UndoRedo action TilesetAutoTileInput newAutoTile = new TilesetAutoTileInput { Id = autoTileId, Name = autoTileName }; UndoRedoManager.Do(new AddTilesetConfigLayerAction <TilesetAutoTileInput>( tileset, TilemapsReflectionInfo.Property_Tileset_AutoTileConfig, newAutoTile)); // Select the newly created AutoTile AutoTileInputNode modelNode = this.treeModel .Nodes .OfType <AutoTileInputNode>() .FirstOrDefault(n => n.AutoTileInput == newAutoTile); this.SelectLayer(modelNode); }
protected override void OnLayerSelectionChanged(LayerSelectionChangedEventArgs args) { base.OnLayerSelectionChanged(args); Tileset tileset = this.SelectedTileset.Res; AutoTileInputNode selectedNode = args.SelectedNodeTag as AutoTileInputNode; // Update global editor selection, so an Object Inspector can pick up the AutoTile for editing if (selectedNode != null) { DualityEditorApp.Select(this, new ObjectSelection(new object[] { selectedNode.AutoTileInput })); } else { DualityEditorApp.Deselect(this, obj => obj is TilesetAutoTileInput); } this.TilesetView.Invalidate(); }