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